- void init_tmr0()
- {
- T0CS=0; //TMR0工作于定时器方式
- T0IE=1;//Timer0中断允许
- GIE=1;
- TMR0=0xFF;
- T0IF=0; //清除TMR0的中断标志
- }
- void interrupt compare()
- {
- if(T0IF && T0IE)
- {
- TMR0=0xFF; //对TMR0写入一个调整值。因为写入TMR0后接着的
- //两个周期不能增量,中断需要3个周期的响应时间,
- //以及C语言自动进行现场保护要消耗周期
- T0IF=0; //清除中断标志
- if(++ms==25)
- {
- ms=0;
- if(++s==1000)
- {
- s=0;
- RB3=!RB3;
- }
- }
- }
- }
复制代码
为什么我改变TMR0的值,定时中断并没有改变呢?这个计算公式是什么
此帖出自
小平头技术问答
一周热门 更多>