下面這段程序,正常情況下計算值為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);
}
|