糖尿病康复,内容丰富有趣,生活中的好帮手!
糖尿病康复 > NRF24LE1定时器中断(1ms 5ms 10ms 20ms)

NRF24LE1定时器中断(1ms 5ms 10ms 20ms)

时间:2022-11-09 18:44:06

相关推荐

NRF24LE1定时器中断(1ms 5ms 10ms 20ms)

根据开发板例程修改定时器中断时间

#define D1 P00 // 指示灯 D1/*Timer0定时器定时20ms TIMER0_VALUE=26666Timer0定时器定时10ms TIMER0_VALUE=13333Timer0定时器定时5ms TIMER0_VALUE=6666Timer0定时器定时1ms TIMER0_VALUE=1333*/#define TIMER0_VALUE 13333 //10ms时的取值uint16_t count_ms=0; //软件计数变量Tms计数+1uint16_t count_s=0; //软件计数变量1s计数+1void 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();//配置 IOTimer0Init();//Timer0 初始化while(1);//死循环,等待 Timer0 溢出中断}void Timer0_irq() interrupt INTERRUPT_T0{TH0=(65536-TIMER0_VALUE)/256; //写入初值TL0=(65536-TIMER0_VALUE)%256;count_ms++;//软件计数器加1if(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 指示灯状态取反}}

如果觉得《NRF24LE1定时器中断(1ms 5ms 10ms 20ms)》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。