jianhong_wu 发表于 2014-9-15 22:23:57

在定时中断里这样配置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++;
}

页: [1]
查看完整版本: 在定时中断里这样配置TH0=(65536-45872)/256是不科学的.