完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
void tiMER_Delay(TIMER_T *timer, uint32_t u32Usec) //TIMER0,100
{ uint32_t u32Clk = TIMER_GetModuleClock(timer); //#define TIMER0 ((TIMER_T *) TMR01_BASE) uint32_t u32Prescale = 0UL, u32Delay = (SystemCoreClock / u32Clk) + 1UL;//SystemCoreClock为系统时钟源为HXT,频率12MHz; u32Delay = (12/12)+1=2 uint32_t u32Cmpr, u32NsecPerTick; /* Clear current timer configuration */ timer->CTL = 0UL; timer->EXTCTL = 0UL; if(u32Clk <= 1000000UL) /* min delay is 1000 us if timer clock source is <= 1 MHz */ { if(u32Usec < 1000UL) { u32Usec = 1000UL; } if(u32Usec > 1000000UL) { u32Usec = 1000000UL; } } else { if(u32Usec < 100UL) { u32Usec = 100UL; } if(u32Usec > 1000000UL) { u32Usec = 1000000UL; } } if(u32Clk <= 1000000UL) { u32Prescale = 0UL; u32NsecPerTick = 1000000000UL / u32Clk; //若u32Clk为12M,则1*10^9/12*10^6 u32Cmpr = (u32Usec * 1000UL) / u32NsecPerTick; //x*1000/83 } //u32Usec*u32Clk*10^(-6) else { u32Cmpr = u32Usec * (u32Clk / 1000000UL); u32Prescale = (u32Cmpr >> 24); /* for 24 bits CMPDAT */ if (u32Prescale > 0UL) //若u32Cmpr大于16777216则大于0;即u32Clk大于16.7MHz u32Cmpr = u32Cmpr / (u32Prescale + 1UL); //除以2 } timer->CMP = u32Cmpr;//若为12MHz,则每次计数时间为1/12us timer->CTL = TIMER_CTL_CNTEN_Msk | TIMER_ONESHOT_MODE | u32Prescale; 其中u32Usec为输入的时延参数,单位us;u32Clk为时钟频率,单位Hz 函数限制时延必须在100us到1秒之间;频率小的话限制更强 在官方BSP里边的时延函数void TIMER_Delay(TIMER_T *timer, uint32_t u32Usec)里面为什么要通过时钟频率来限制可用时延长短?我测试了在范围外,如10us,结果是真实显示时延有误差。 新手入坑,有没有大佬懂的,请指教。 |
|
相关推荐
1个回答
|
|
|
限制延时时间是为了保证延时的精度。代码执行本身也是要花时间的,如果定时时间短,代码执行的时间就会显得误差比较大
|
|
|
|
|
只有小组成员才能发言,加入小组>>
179浏览 2评论
为什么DSP(数字信号处理)需要Q格式?q31、q15、q7 和 f32 是什么意思呢?
323浏览 2评论
请问NuMicro® Cortex-M0/M4系列可以提供哪些USB器件示例代码?
230浏览 2评论
芯片进入空闲或关机模式后,窗口看门狗定时器 (WWDT) 是否会继续工作呀?
177浏览 2评论
请问Nu-Link 驱动程序可以同时安装在 Keil RVMDK UV4 和 UV5 上吗?
211浏览 2评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 07:00 , Processed in 0.435898 second(s), Total 44, Slave 37 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
713
