刚在这个地方掉进坑里好久了,汗颜,用了PIC那么久居然现在才发现这个坑。
unsigned long int TEMP[6];
TEMP[1] = TMR1_Save_Ptr*1000*16/(SYS_CLOCK/1000);
死活TEMP[1]到了65536就上内不去。
后面才发现, TMR1_Save_Ptr定义为int的后,编译器编译时,计算结果是按int的形式强制进行转换计算的。
所以应该加上强制转换符
TEMP[1] = (unsigned long int)TMR1_Save_Ptr*1000*16/(SYS_CLOCK/1000);
数据计算类型要统一。 |
|