完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛扫一扫,分享给好友
|
OSAL系统的计时单位是1ms,如果你需要其它周期的自定义时间,可以启动一个Timer单独做计时。
|
|
|
|
|
|
Hi tony,
给个例子, 如果你用的是32M 的clock, 则每32个"nop" 就是 1 us. void delayUs(uint16 microSecs) [ while(microSecs--) [ /* 32 NOPs == 1 usecs */ asm("nop"); asm("nop"); asm("nop"); asm("nop"); asm("nop"); asm("nop"); asm("nop"); asm("nop"); asm("nop"); asm("nop"); asm("nop"); asm("nop"); asm("nop"); asm("nop"); asm("nop"); asm("nop"); asm("nop"); asm("nop"); asm("nop"); asm("nop"); asm("nop"); asm("nop"); asm("nop"); asm("nop"); asm("nop"); asm("nop"); asm("nop"); asm("nop"); asm("nop"); asm("nop"); asm("nop"); asm("nop"); ] ] |
|
|
|
|
|
怎么启动呢?我只找到osal timer和hal timer。 cyclingsensor profile里面之所以用1/1024是为了计算方便。比如,sensor用32768的时钟,数32个clock就是1/1024秒,不用做算数运算。 这样我就必须找到系统滴答来计数,但是没找到在哪儿。。。 |
|
|
|
|
|
谢谢!但是应用场景不是延时,而是要在两个event之间计数,每1/1024秒计数加1,最后结果乘以1024就是两个event发生的时间间隔 |
|
|
|
|
|
ll_McuPrecisionCount是不是systick的计数器?应该是625us计一次。这样我还得把得到的数据乘以0.64再发送。好别扭 |
|
|
|
|
|
hi 托尼, ll_McuPrecisionCount() 并不是计数器. 你可以看到, 这货只是在空闲的时候通过osal_run_system() 调用osalTimeUpdate() 时被调用到, 所以, 本质上这货做的其实只是在空闲的时候去读一下timer2 的寄存器值, 读出来的值用来判断跟上一次读timer2 的时候过去了多久, 以这种方式提供给上层应用的软件timer 们计时功能. 而且, 这个只是计算过去了多少个 625us. 而timer2 是LL 层专用的计时器, 独占的. 根据你的需求, 如CZ 所建议, 你可以用另外一个系统计时器. 你可以用系统的timer1, 系统时钟32M的话, timer1 可以输出最高 1/32M 秒. 这样你只要计 32000 个就有1/1K 的了. timer1 还可以有8, 32 或者 128 的分频, 你可以试一下. |
|
|
|
|
骑猪去天山 发表于 2018-5-14 08:41 系统timer就是hal_timer吧?hal_timer.c是空的。。。 |
|
|
|
|
|
Hi tony, 系统总共有4个timer, 分别是timer1, timer2, timer3, timer4 其中timer2 被LL 层占用, 不对用户开放, 目前timer2 也为上层应用的软件timer 提供计时, 具体实现就像我前面描述的, 上层只是去读timer2 的计时寄存器去判断时间差. timer1 是个16位的计时器, timer3 和 timer4 都是8位的计时器. 你可以配置这3个计时器去达到你的1/1024 s 的要求. |
|
|
|
|
只有小组成员才能发言,加入小组>>
601 浏览 0 评论
1655 浏览 0 评论
2096 浏览 0 评论
为啥BQ7693003DBTR芯片在和BQ769X0盒子通讯时收不到信号?
1542 浏览 0 评论
DSP 28027F 开发板 XDS100v2调试探针诊断日志显示了 Error -150 (SC_ERR_FTDI_FAIL)如何解决
1387 浏览 0 评论
AT32F407在USART2 DMA发送数据时,接包接到了要发送的数据,程序还是处于等待传输完成的标识判断中,为什么?
1794浏览 29评论
2822浏览 23评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
1748浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
1668浏览 14评论
两个TMP117传感器一个可以正常读取温度值,一个读取的值一直是0,为什么?
1681浏览 13评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-15 14:16 , Processed in 0.963765 second(s), Total 91, Slave 74 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
1686