独闷闷网

标题: 在定时中断里这样配置TH0=(65536-45872)/256是不科学的. [打印本页]

作者: jianhong_wu    时间: 2014-9-15 22:23
标题: 在定时中断里这样配置TH0=(65536-45872)/256是不科学的.
鸿哥解答:刚刚看到坚鸿51单片机群里有个群友这样写中断程序,我觉得不科学,有隐患。万一编译器不是事先就把结果运算出来,而是程序每次进入中断就进行一次算法运算,那定时中断的效率和时间精度会大大的下降。
群友原来的写法:

void timer0() interrupt 1
{
        TH0=(65536-45872)/256;  //有可能每次进入中断都要进行一次计算,如果是这样,那就会影响定时精度和效率了
        TL0=(65536-45872)%256;
        t++;
}



建议改成这样:
void timer0() interrupt 1
{
        TH0=0x4c;   //直接填写数值,避免程序进行运算。
        TL0=0xd0;
        t++;
}






欢迎光临 独闷闷网 (http://www.dumenmen.com/) Powered by Discuz! X3.2