您尚未登录。

楼主 # 2024-07-20 14:52:12

jjwly
会员
注册时间: 2022-08-12
已发帖子: 9
积分: 14

请教V3S Linux下实现准确的300us硬件定时?

项目要求实现准确的300us间隔,读取AD数据。可如何实现呢?
1、HRtimer
可实现基于ns的定时,但不准确,参考文章,文章结论,在系统负载大时,定时不准确:
https://blog.csdn.net/qq_33406883/article/details/99641461

2、基于内核定时器
只能ms级定时

3、看设备树,V3S的3个内部定时器都占用。是不是自己的驱动就不能用这3个定时器了?

4、V3S内部有个HS timer,似乎可以用?但没搜到用法。

5、设置一个周期300us的PWM信号,接到Gpio接口上,用GPIO中断来实现?

大佬们有什么建议?

离线

#1 2024-07-21 23:51:54

4610
会员
注册时间: 2022-10-09
已发帖子: 98
积分: 84

Re: 请教V3S Linux下实现准确的300us硬件定时?

参考a20手册看看,有寄存器描述,v3s和a20的HSTMR都是在0x01c60000
a20 hstmr主线支持

最近编辑记录 4610 (2024-07-21 23:52:03)

离线

楼主 #2 2024-07-22 16:33:31

jjwly
会员
注册时间: 2022-08-12
已发帖子: 9
积分: 14

Re: 请教V3S Linux下实现准确的300us硬件定时?

4610 说:

参考a20手册看看,有寄存器描述,v3s和a20的HSTMR都是在0x01c60000
a20 hstmr主线支持

现在,已经让hstmr跑起来了 ,但在Request_isr时,不知如何确定中断号?

手册里写的84,应该是硬件中断号, 用到Linux里不行,注册失败.

离线

楼主 #3 2024-07-22 16:58:15

jjwly
会员
注册时间: 2022-08-12
已发帖子: 9
积分: 14

Re: 请教V3S Linux下实现准确的300us硬件定时?

在V3S 4.13版本中,HRtimer代码失败. 可能内核不支持,需重新编译内核

经检查,没有这个内核选项.

在Ubuntu中可运行,但V3S不行.

最近编辑记录 jjwly (2024-07-22 17:10:15)

离线

#4 2024-07-23 16:47:16

wupaul2001
会员
注册时间: 2019-09-30
已发帖子: 282
积分: 255

Re: 请教V3S Linux下实现准确的300us硬件定时?

linux实现不了吧,就算你硬件准确,中断也只是把任务加入到队列中吧,但任务什么时候执行是个不确定量

离线

#5 2024-07-23 16:51:01

memory
会员
注册时间: 2021-08-11
已发帖子: 423
积分: 399

Re: 请教V3S Linux下实现准确的300us硬件定时?

RT-Linux ?

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn