完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
根据开发板例程修改定时器中断时间
#define D1 P00 // 指示灯 D1 /*Timer0定时器定时20ms TIMER0_VALUE=26666 Timer0定时器定时10ms TIMER0_VALUE=13333 Timer0定时器定时5ms TIMER0_VALUE=6666 Timer0定时器定时1ms TIMER0_VALUE=1333 */ #define TIMER0_VALUE 13333 //10ms时的取值 uint16_t count_ms=0; //软件计数变量Tms计数+1 uint16_t count_s=0; //软件计数变量1s计数+1 void IO_Init(void) { P0DIR &= ~0x01;//配置 P0.0 为输出 D1 = 1;//设置 D1 初始状态为熄灭 } void Timer0Init(void) { TMOD = 0x01; //16位定时器 TH0 = (65536-TIMER0_VALUE)/256; //写入初值 TL0 = (65536-TIMER0_VALUE)%256; ET0 = 1; //使能Timer0溢出中断 EA = 1; //使能全局中断 TR0 = 1; //启动Timer0 } void main(void) { IO_Init();//配置 IO Timer0Init();//Timer0 初始化 while(1);//死循环,等待 Timer0 溢出中断 } void Timer0_irq() interrupt INTERRUPT_T0 { TH0=(65536-TIMER0_VALUE)/256; //写入初值 TL0=(65536-TIMER0_VALUE)%256; count_ms++; //软件计数器加1 if(count_ms%100==0) //1s定时 :20ms时为50,10ms:100,5ms:200;1ms:1000 { count_s++; } if(count_s==2) //2S定时 { count_s=0; count_ms=0; //软件计数器清零 D1 = ~D1; //D1 指示灯状态取反 } } |
|
|
|
只有小组成员才能发言,加入小组>>
2555 浏览 0 评论
1155浏览 2评论
758浏览 1评论
509浏览 0评论
270浏览 0评论
443浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-25 11:15 , Processed in 1.118512 second(s), Total 47, Slave 40 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号