ATMEGA16的定时计数器问题,谢谢!

2019-07-15 21:29发布

我写了一段程序,用定时器计数器T0,外部计数六个下降沿,触发中断,放PORTA反向一次,但是这个程序为什么只能执行一次??中断出发后,标志位清零,再有五个下降沿不还能触发吗??但为什么只能出发一次呢?望大侠指教!谢谢。下面是我的代码
#include <mega16.h>
interrupt [tiM0_OVF] void time0()//中断服务函数,PORTA反向
{
    PORTA=~PORTA;  
}
void main()
{   
   
    DDRA=0xff;       //把端口A设置为输出端口
    PORTA=0xff;      //端口A赋初值
    TCCR0=0x06;      //T0控制寄存器,触发方式外部下降沿
    TCNT0=250;       //T0计数寄存器赋初值
    SREG=0x80;       //中断总开关
    TIFR=0x01;       //中断标志寄存器
    TIMSK=0x01;      // 中断屏蔽寄存器,中断分开关
    while(1);
   
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。