完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
#include 《 avr/io.h 》#include 《 avr/interrupt.h 》unsigned int CNT = 0;void timer0_init(){TCCR0A = 0x00; //普通模式TCCR0B = 0x00; //停止计数TCNT0 = 0xFA; //计数初值,为了单步时能快点计数溢出,就用0xFA作初值了TIMSK0 = 0x01; //计数溢出使能}int main(void){timer0_init();TCCR0B = 0x01; //计数频率=系统时钟频率sei(); //开启全局中断 while(1) { ;//TODO:: Please write your application code }}ISR(TIMER0_OVF_vect) //中断服务程序{cli();TCNT0 = 0xFA;if(++CNT == 10) CNT = 0;sei();}
#include 《avr/io.h》#include 《avr/interrupt.h》 int main(void){ DDRB |= (1《《PORTB5); //DDRB – The Port B Data Direction Register. Initial Value 0. 设PB5输出(Arduino管脚13) PORTB |= (1《《PORTB5); //PORTB – The Port B Data Register. Initial Value 0. 设PB5高电平 TCNT0 = 0; //TCNT0 – Timer/Counter Register. Initial Value 0. 设计数器初值0 TIMSK0 |= (1《《TOIE0); /*TIMSK0 – Timer/Counter Interrupt Mask Register. Initial Value 0. 允许定时器0溢出中断 TOIE0: Timer/Counter0 Overflow Interrupt Enable. When the TOIE0 bit is written to one, and the I-bit in the status register is set, the Timer/Counter0 overflow interrupt is enabled.*/ TCCR0B |= (1《《CS00)|(1《《CS02); //给定时器设置预分频系数 sei(); while (1) { }} SIGNAL(TIMER0_OVF_vect) //TIMER0_OVF_vect指向定时器0溢出中断地址{ //此添加中断服务程序代码 PORTB ^= (1《《PORTB5); //PB5取反,管脚13输出方波} |
|
|
|
只有小组成员才能发言,加入小组>>
2545 浏览 0 评论
1142浏览 2评论
742浏览 1评论
495浏览 0评论
256浏览 0评论
418浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-18 21:55 , Processed in 1.327853 second(s), Total 80, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号