下面这段程序,正常情况下计算值为1239*1024/249(AD值)=5095,但是单片机串口打印输出结果时显示94。调试过程中发现,10*1024可以正常显示10240,但是改成100*1024就输出异常,不知道怎么回事了。另外在局部变量定义中赋值j = 102400串口也能正常打印输出。估计问题点在j计算那里,求各位大神指导一下。谢谢。
void ShowResult()
{
unsigned int i;
unsigned long j;
SendData(GetADCResult()); //显示ADC高8位结果
i = GetADCResult();
i = i * 4 + ADC_LOW2;
j = 1239*1024 / i;
printf("%lu\r\n",j);
}
|