我想在定时器中断的理中改变中断触发条件,但是行不通,请问有什么办法可以解决吗
- void timer0Isr(void)
- {
- flagALL = TMR32B0MCR;
- if(flagALL == 0x01)
- {
- TMR32B0IR=0x0f; //清除中断标志位
- flag30s=flag30s+1;
- TMR32B0MCR = 0x01;
- if(flag30s==5)
- {
- TMR32B0MCR=0x01<<3;//记满150s后转换成匹配通道1匹配中断
- }
- if(flag30s==119)
- {
- TMR32B0MCR=0x01<<6;//记满3570s后转换成匹配通道2匹配中断
- }
- }
- if(flagALL == 0x08)
- {
- TMR32B0IR=0x0f; //清除中断标志位
- flag30s=flag30s+1;
- flag3min=flag3min+1;
- TMR32B0MCR=0x01;//记满180s后转换成匹配通道0匹配中断
- }
- if(flagALL == 0x40)
- {
- TMR32B0IR=0x0f; //清除中断标志位
- flag30s=flag30s+1;
- flag1h=flag1h+1;
- TMR32B0MCR=0x01;//记满3600s后转换成匹配通道0匹配中断
- }
- TMR32B0TCR=0x02; //复位定时器
- return;
- }
复制代码
此帖出自
小平头技术问答
另外看你捕获的周期很长啊。最短的也有150s,这样其实用个定时器,1毫秒或者0.5毫秒扫描一下也可以的,这么长的捕获周期估计精度也不会要求太高了吧。
一周热门 更多>