硬汉嵌入式论坛

 找回密码
 立即注册
查看: 2713|回复: 8
收起左侧

[ADC] 关闭adc看门狗失败的问题

[复制链接]

4

主题

12

回帖

24

积分

新手上路

积分
24
发表于 2019-3-24 12:40:19 | 显示全部楼层 |阅读模式
最近在移植硬汉哥的示波器到H7上,大部分内容都还ok,但是在普通触发这块遇到了一些问题。
      在进入看门狗中断之后,在判断上升沿之后应该关闭看门狗中断,打开定时器开始计时。但是看门狗一直不能正常关闭。一开始使用的是这个办法:
                AnalogWDGConfig_1.ITMode = DISABLE;
                HAL_ADC_AnalogWDGConfig(&ADC3_Handler, &AnalogWDGConfig_1);        

但是这个是不可以的,因为他需要判断ADC的转换状态(在HAL_ADC_AnalogWDGConfig中)
if(ADC_IS_CONVERSION_ONGOING_REGULAR_INJECTED(hadc) == RESET)
这就十分的尴尬,因为不一定恰好转换完成,之后我想算了,直接用寄存器把,控制看门狗中断的是
Snipaste_2019-03-24_12-32-22.png Snipaste_2019-03-24_12-32-30.png
于是直接                        ADC3->IER &= 0xFFFFFF7F;   //AWD1EN为置零
但是还是存在问题,只有ADSTART=0 且 JADSTART=0 时才可以改变上面寄存器,但是我想的是无论何时都可以停止看门狗的中断
F4的寄存器ADC_CR1的AWDIE可以直接关闭中断,但是H7没有啊!!!但是我不知道具体怎么写了
希望能得到各位的帮助,实在是谢谢各位了。(卡在这里好几天没有头绪)
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106745
QQ
发表于 2019-3-24 12:53:09 | 显示全部楼层
这个好弄,直接关闭ADC的NVIC
回复

使用道具 举报

4

主题

12

回帖

24

积分

新手上路

积分
24
 楼主| 发表于 2019-3-25 21:35:02 | 显示全部楼层
eric2013 发表于 2019-3-24 12:53
这个好弄,直接关闭ADC的NVIC

谢谢硬汉哥,直接关闭确实好用,但是程序可能还是有一点其他问题。我在研究研究
回复

使用道具 举报

4

主题

12

回帖

24

积分

新手上路

积分
24
 楼主| 发表于 2019-3-25 22:08:06 | 显示全部楼层
本帖最后由 Paprika 于 2019-3-25 22:11 编辑

经过硬汉哥的指导之后,确实可以正常的进入中断。但是不知道为什么触发一直很不稳定。是上面的这种情况,看到这种情况不知道硬汉哥有没有遇到过能否给一点思路。实在是万分感谢。 adc.c (22.98 KB, 下载次数: 2) 手机QQ视频_20190325215604.gif




手机QQ视频_20190325215604.gif
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106745
QQ
发表于 2019-3-26 03:14:02 | 显示全部楼层
Paprika 发表于 2019-3-25 22:08
经过硬汉哥的指导之后,确实可以正常的进入中断。但是不知道为什么触发一直很不稳定。是上面的这种情况,看 ...

当前是看门狗触发触发配置?
回复

使用道具 举报

4

主题

12

回帖

24

积分

新手上路

积分
24
 楼主| 发表于 2019-3-26 09:15:37 | 显示全部楼层
本帖最后由 Paprika 于 2019-3-26 10:27 编辑
eric2013 发表于 2019-3-26 03:14
当前是看门狗触发触发配置?

图片中是配置看门狗触发的情况,但是看到波形不稳定。理解的普通触发是也应该是稳定波形的,比如输入一个正弦波,是不是应该随着触发电压的变化,屏幕波形正中间的电压随之变化。不知道我这样的理解是不是对的。还是说得低频的时候波形才是稳定的(我看展示的视频一开始方波频率较高的时候也好像也在左右动。。)看到硬汉哥大概四点的时候还在回我,实在是感动。。谢谢。。
回复

使用道具 举报

4

主题

12

回帖

24

积分

新手上路

积分
24
 楼主| 发表于 2019-3-26 12:09:02 | 显示全部楼层
发现进入看门狗对应的adc值是不对的,比如设置的是1241进入之后读取的adc可能是70\78\90\112这样
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106745
QQ
发表于 2019-3-27 15:26:55 | 显示全部楼层
Paprika 发表于 2019-3-26 12:09
发现进入看门狗对应的adc值是不对的,比如设置的是1241进入之后读取的adc可能是70\78\90\112这样

你读出的估计是后几次的采集值了。可以把附近的几个点都读出来。
回复

使用道具 举报

4

主题

12

回帖

24

积分

新手上路

积分
24
 楼主| 发表于 2019-3-27 22:15:33 | 显示全部楼层
eric2013 发表于 2019-3-27 15:26
你读出的估计是后几次的采集值了。可以把附近的几个点都读出来。

先谢谢硬汉哥的指导,我把看门狗的部分单独拿出来建了一个工程,并且把引起中断的电眼前后50个adc值读取出来。发现差不多有20%的情况是不对的, Snipaste_2019-03-27_22-09-28.png Snipaste_2019-03-27_22-08-22.png

上面几张是正确或者不正确的,加入偶尔出现错误还可以理解,但是感觉这样实在是有点频繁。很奇怪。
不知道大家对此有什么经验,希望能得到指导。" /> 实验20 ADC实验.rar (26.53 MB, 下载次数: 17)
Snipaste_2019-03-27_22-02-21.png
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-3 15:23 , Processed in 0.318487 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表