Xushunfa 发表于 2023-4-26 19:48:50

关于"老梁开源示波器"的请教

请问"老梁开源示波器"的ADC结果是啥方式获取的? 查询方式?中断方式?DMA方式?

梁工 发表于 2023-5-5 10:26:23

定时器定时触发ADC,ADC中断读取。

Xushunfa 发表于 2023-5-5 16:08:29

梁工 发表于 2023-5-5 10:26
定时器定时触发ADC,ADC中断读取。

谢谢"梁工"!
源码中只看到,定时器定时触发ADC,并直接读取ADC_RES值。没看到ADC中断读取。
不知我理解对吗?

梁工 发表于 2023-5-5 16:39:44

Xushunfa 发表于 2023-5-5 16:08
谢谢"梁工"!
源码中只看到,定时器定时触发ADC,并直接读取ADC_RES值。没看到ADC中断读取。
不知我理解 ...

哦,对的,我都记错了,最开始的版本是定时器触发ADC,ADC中断读的,但是采样到500K时时间不够,后来改版如下:
1、等待同步触发:
    如果是标准(普通)触发或单次触发,则一直等待同步条件,条件满足马上触发ADC,同时启动采样定时器。
    如果是自动触发,同步条件满足,或同步超时,马上触发ADC,同时启动采样定时器。
2、定时器中断先读出ADC,再触发ADC,保存刚才读出的ADC值,采样未够则退出中断,采样够则停止采样,关闭采样定时器。

Xushunfa 发表于 2023-5-5 19:37:57

梁工 发表于 2023-5-5 16:39
哦,对的,我都记错了,最开始的版本是定时器触发ADC,ADC中断读的,但是采样到500K时时间不够,后来改版 ...

再次谢谢"梁工"!
这就对了,比较器“过零”中断触发启动ADC及T0,然后由T0中断读取ADC结果,并继续。
您的解答排除了我的疑惑。也学到了新的ADC应用方法。

梁工 发表于 2023-5-5 21:29:18

Xushunfa 发表于 2023-5-5 19:37
再次谢谢"梁工"!
这就对了,比较器“过零”中断触发启动ADC及T0,然后由T0中断读取ADC结果,并继续。
您 ...

也可以用PWM自动定时触发ADC,ADC中断读取。由于要使用高级PWM,担心对初学者造成困难,所以我还是使用定时器中断采样,这样简单。示波器重在数据采样处理。
页: [1]
查看完整版本: 关于"老梁开源示波器"的请教