www.openedv.com
您好,欢迎您!    会员注册 | 登入 
公告:欢迎访问www.openedv.com开源电子网,开源共享共同进步,祝您新年快乐,万事如意!
设为首页 | 加入收藏
论坛首页 » AVR单片机 前往: 
我的AVR资料[程序篇] AVR的TIM1(16位定时器)应用(源码3)
发表人 内容
[Down] [Up]
[楼主位] 正点原子


等级:NO
注册时间:
2010/12/02 10:41
文章: 8089
来自: 湖南
在线

    这是一个AVR的TIM1定时器应用例程,使用TIM1的定时中断,来控制PORTD的输出取反.每隔0.5秒,PORTD取反一次.
源码如下:
#include <mega16.h>
unsigned int t;
// Timer 1 overflow interrupt service routine
interrupt [TIM1_OVF] void timer1_ovf_isr(void)
{
// Reinitialize Timer 1 value
TCNT1H=0x63;//40000
TCNT1L=0xBF;
t++;
 if(t>100){t=0;PORTD=~PORTD;}//0.5s 
}

void main(void)
{
 DDRD=0XFF;
 PORTD=0XFF;
 
TCCR1A=0x00;
TCCR1B=0x01;//1024 dec

TCNT1H=0x63;//40000
TCNT1L=0xBF;
 
TIMSK=0x04;//set interrupt 1 
#asm("sei")

while (1); 
}
       代码十分简单,希望对使用codevision avr的朋友一个参考.




我的淘宝小店:http://shop62103354.taobao.com
[加为好友] 回复 引用回复
 
前往: 

Powered by ALIENTEK工作室 © 粤ICP备12000418号-1