AVR单片机四个定时器同时工作

AVR单片机四个定时器同时工作

ID:37708790

大小:35.50 KB

页数:5页

时间:2019-05-29

AVR单片机四个定时器同时工作_第1页
AVR单片机四个定时器同时工作_第2页
AVR单片机四个定时器同时工作_第3页
AVR单片机四个定时器同时工作_第4页
AVR单片机四个定时器同时工作_第5页
资源描述:

《AVR单片机四个定时器同时工作》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、定时器1和3使用溢出中断方式,定时0和定时器2使用CTC模式比较输出中断。其中的寄存器相关说明:定时器/计数器中断屏蔽寄存器TIMSKOCIE2TOIE2TICE1OCIE1AOCIE1BTOIE1OCIE0TOIE0定时器/计数器2Bit7OCIE2和状态寄存器的全局中断使能位I都为“1”时,T/C2的输出比较匹配中断使能。当T/C2的比较匹配发生,即TIFR中的OCF2置位时,中断服务程序得以执行。Bit6TOIE2溢出中断使能当TOIE2和状态寄存器的全局中断使能位I都为“1”时,T/C2的溢出中断使能。当T/C2发生溢出,即TIF

2、R中的TOV2位置位时,中断服务程序得以执行。定时器/计数器1TICE1输入捕捉中断使能OCIE1A输出比较A匹配中断使能OCIE1B输出比较B匹配中断使能TOIE1溢出中断使能定时器/计数器0OCIE0输出比较匹配中断使能TOIE0溢出中断使能扩展的定时器/计数器中断屏蔽寄存器ETIMSKTICE3OCIE3AOCIE3BTOIE3OCIE3COCIE1C定时器/计数器3TICE3输入捕捉中断使能OCIE3A输出比较A匹配中断使能OCIE3B输出比较B匹配中断使能TOIE3溢出中断使能OCIE3C输出比较C匹配中断使能定时器/计数器3O

3、CIE1C输出比较C匹配中断使能#include#include#defineuintunsignedint#defineucharunsignedcharuchardogtime,dog=1,doggtime;uchartime2,time0;//定时器0初始化函数voidtime0_init(){TCCR0=0x0b;//配置CTC模式64分频器OCR0=0XFF;//设定输出比较寄存器的值}//定时器2初始化函数voidtime2_init(){TCCR2=0x0b;//配置CTC模式64分

4、频器OCR2=100;//设定输出比较寄存器的值}//定时器1初始化函数voidtime1_init(){DDRC

5、=0xff;PORTC

6、=0xff;TIMSK=0X86;//配置定时器/计数器2输出比较匹配中断使能,定时器/计数器1溢出中断使能。定时器/计数器0输出比较匹配中断使能。TCNT1H=0XE9;//计算的公式(65536-X)*64/7372800(中断计数)TCNT1L=0X80;TCCR1A=0X00;TCCR1B=0X03;//配置普通模式64预分频器SEI();//开启总中断}//定时器3初始化函数voidtime

7、3_init(){ETIMSK=0X04;//使能定时器/计数器3溢出中断TCNT3H=0XE9;TCNT3L=0X80;TCCR3A=0X00;TCCR3B=0X03;//配置普通模式64预分频器}//50msinterruptoncetime#pragmainterrupt_handlertimer1_ovf_isr:15voidtimer1_ovf_isr(void){TCNT1H=0XE9;TCNT1L=0X80;dogtime++;if(dogtime>20){dogtime=0;PORTC

8、=(1<<5);}else{if(d

9、ogtime>2)PORTC&=~(1<<5);}if(dog==1){dog=0;if((PINC&0x04)==0x04){PORTC&=~(1<<2);//kickdog}else{PORTC

10、=(1<<2);//kickdog}}}//50msinterruptoncetime#pragmainterrupt_handlertimer3:30voidtimer3(void){TCNT3H=0XE9;TCNT3L=0X80;doggtime++;if(doggtime>20){doggtime=0;PORTC

11、=(1<<7);}el

12、se{if(doggtime>2)PORTC&=~(1<<7);}if(dog==1){dog=0;if((PINC&0x04)==0x04){PORTC&=~(1<<2);//kickdog}else{PORTC

13、=(1<<2);//kickdog}}}//4.5msinterruptoncetime#pragmainterrupt_handlertimer2:10voidtimer2(void){OCR2=100;time2++;if(time2>250){time2=0;PORTC

14、=(1<<4);}else{if(time2>25

15、)PORTC&=~(1<<4);}}//4.5msinterruptoncetime#pragmainterrupt_handlertimer0:16voidtimer0(void){OCR0

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。