KEIL C51中对常数的宏定义计算错误

2020-02-05 08:56发布

#define                Fosc 22118400
#define                Tim1num2        940//xxus延时   1ms中断,也是1ms时间基准       
#define                Tim1Temp2TH1   (uchar)((65535-(uint)(Tim1num2*Fosc/1000000))/256) //
#define                Tim1Temp2TL1   (uchar)((65535-(uint)(Tim1num2*Fosc/1000000))%256)       

       
TH1=Tim1Temp2TH1;
                TL1=Tim1Temp2TL1; //T1计数xms

软件仿真得到的TH1=0X02; TL1=0XAA
而我的计算值本来为0XAE 0XC8
请教各位应该如何写这种关系式计算
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
9条回答
hailing
2020-02-06 02:01
明白了,原来是这样。
在数字后面加UL,L等编译器知道含义,但是我试了下UC,C,I等想表示char int等编译器好像不认。但是U也认的。
to 3L,我使用的的STC的1T模式。
另外昨天使用PL2303线对STC下载时发现一个有趣的现象:默认的最高和最低波特率无法下载。两个都设为2400是能下载,但是速度很慢,把两个都设为115200反而能下载了,成功率很高,不能下载的话把连片子的串口插拔下再上电就能下载了。

一周热门 更多>