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);
   
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
拾荒皇子
1楼-- · 2019-07-16 03:13
补充一下,我把触发方式,改为内部时钟计数,就可连续触发中断,为什么用外部脉冲计数就只能触发一次呢?,大侠们快来啊,谢谢
拾荒皇子
2楼-- · 2019-07-16 05:13
别沉啊,求指教啊
1141864167
3楼-- · 2019-07-16 07:29
{:1:}

一周热门 更多>