微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > ATMEGA16的定时计数器问题,谢谢!

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

时间:10-02 整理:3721RD 点击:
我写了一段程序,用定时器计数器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);
   
}

补充一下,我把触发方式,改为内部时钟计数,就可连续触发中断,为什么用外部脉冲计数就只能触发一次呢?,大侠们快来啊,谢谢

别沉啊,求指教啊

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top