Yim_Hom 发表于 2024-8-31 21:28:15

DebugLab 发表于 2024-8-31 13:45
8H8K64U有DMA呀,用DMA



通过转换ADC step check状态决定ADC转换,用DMA也得他的状态返回ok,然后进DMA拿结果,并不冲突,
现在的问题是卡在step2,要一直等返回是1,但实际上他的转换函数只能返回0,所以就只能卡在这。

前行者 发表于 2024-8-31 22:42:12

是不是定时器的100us没有清零

ldc521 发表于 2024-9-2 09:01:42

Yim_Hom 发表于 2024-8-31 20:22
好像有点问题吧?




return 0 是没转换完,等下一次定时器周期来了在检查一遍,现在的问题是不管等多久,都转换不完了

Lkck8210 发表于 2024-9-2 09:21:38

Yim_Hom 发表于 2024-8-31 20:22
好像有点问题吧?




return 1;就会跳出函数,不会继续运行到return 0;

Yim_Hom 发表于 2024-9-2 09:35:51

ldc521 发表于 2024-9-2 09:01
return 0 是没转换完,等下一次定时器周期来了在检查一遍,现在的问题是不管等多久,都转换不完了 ...

你的函数能返回1吗

ldc521 发表于 2024-9-2 09:42:59

Yim_Hom 发表于 2024-9-2 09:35
你的函数能返回1吗

转换成功就返回1

ldc521 发表于 2024-9-3 19:06:32

找到问题了,adc_check_step = 0的时候,这一句启动转换没有成功,ADC_CONTR = (ADC_CONTR & 0xF0) | 0x40 | channel;    //启动 AD 转换
出问题之后是ADC_START这一位没置位,也就表示上面那句执行完了寄存器没写成功,不明白什么原因;
页: 1 [2]
查看完整版本: 求助,ADC转化不成功,卡死