完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
如果在低频LIRC下无法使用Timer0_Delay函数,可能是因为LIRC的频率过低,无法提供稳定的时钟信号。解决方法可以尝试使用其他定时器来代替Timer0_Delay函数,或者修改代码使用延时的方式来实现。
关于Timer0_Delay函数的详细说明,可以参考下面的代码: void Timer0_Delay(uint32_t freq, uint32_t prescaler, uint32_t delay_ms) { uint32_t ticks = freq / (prescaler * 1000); TCCR0A = 0; //使用CTC 模式 TCNT0 = 0; OCR0A = ticks - 1; TIMSK0 = (1 << OCIE0A); sei(); while (delay_ms > 0) { delay_ms--; _delay_ms(1); } TIMSK0 = 0; } 上述代码中,freq代表要使用的主时钟频率,prescaler代表分频系数,delay_ms代表需要延时的毫秒数。在函数内部,首先计算出每个tick需要的时间,然后将Timer0配置成CTC模式,设置计时器中断比较值为需要的ticks数,然后等待需要的毫秒数,最后关闭Timer0中断。 需要注意的是,在使用Timer0_Delay函数的时候,需要先开启中断使能函数sei()。 |
|
|
|
只有小组成员才能发言,加入小组>>
720 浏览 0 评论
1122 浏览 1 评论
2501 浏览 5 评论
2840 浏览 9 评论
移植了freeRTOS到STMf103之后显示没有定义的原因?
2683 浏览 6 评论
使用eim外接fpga可是端口一点反应都没有有没有大哥指点一下啊
664浏览 9评论
679浏览 7评论
请教大神怎样去解决iMX6Q在linux3.0.35内核上做AP失败的问题呢
792浏览 6评论
640浏览 5评论
681浏览 5评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-28 11:16 , Processed in 1.048616 second(s), Total 81, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号