| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 693 人关注过本帖
标题:AVR单片机定时器使用问题
取消只看楼主 加入收藏
i602313
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2012-8-13
结帖率:66.67%
收藏
已结贴  问题点数:2 回复次数:1 
AVR单片机定时器使用问题
各位好,下面是我编的AVR定时器1的一个应用程序,实现小灯的闪烁,单片机刚上电时可以实现小灯闪烁功能,但是工作一段时间后(大约1~2分钟)小灯就不再闪烁了,好像是定时器不工作了,进入不了中断了;但是复位后上述情况又会重新出现,不知大家以前有没有遇到过类似的情况,望不吝赐教啊!!谢谢了!!
/********定时器1初始化********/
void timer1_init(void)
{
 TCCR1A=0;
 TCCR1B=0x04; // T/C1工作于普通模式,256分频,                                 
                //定时器频率 = 11.0592M/256 =43200Hz
 TCNT1H=0x57;     //定时初值设置,定时时间 =65536-43200=22336,0x5740
 TCNT1L=0x40;
 TIMSK|=(1<<TOIE1);   //使能T1溢出中断
 SREG = 0x80;          //使能全局中断
}
/********主函数********/
void main(void)
{
  //TIMSK|=(1<<TOIE0)|(1<<TOIE1);   //使能T1溢出中断
  //SREG = 0x80;          //使能全局中断
  //timer0_init();
  timer1_init();
  ZLG7290_init();
  while(1)
  {
   ZLG7290_SegOnOff(40,0); //熄灭小灯
   //ZLG7290_SmgOnOff(4,4,0);  
  }
  //while(1);
}

/********定时器1中断服务函数********/
#pragma interrupt_handler timer1_ovf:iv_TIM1_OVF
void timer1_ovf(void)
{  
 
  TCNT1H = 0x57;
  TCNT1L = 0x40;//重装计数初值
  Counter1++;        
 if(Counter1==1)        //定时时间到1S吗?定时中断溢出50次为1S,20ms*50=1000ms=1s(秒)
 {  
  Counter1=0;                    //1S计时变量清零
  ZLG7290_SegOnOff(40,1);//点亮小灯
  }
}
搜索更多相关主题的帖子: 定时器 应用程序 上电 
2013-04-01 12:15
i602313
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2012-8-13
收藏
得分:0 
回复 2楼 尹金魁2031
哦,好的,谢谢你的关注!!
2013-04-01 12:31
快速回复:AVR单片机定时器使用问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020041 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved