YTM32B1MD1的调试问题
-
以下是最近调试YTM32B1MD1遇到的两个调试问题
1、如果设置两个DMA通道的触发都是外部中断PORTA,但具体的GPIO口不同,这种情况会出现误触发么? 比如DMA CH0 设置的PIN_A0, DMA_CH1设置的PIN_A1,那A0触发时会误触发DMA_CH1么?
2、ADC内的FIFO按手册上,是32bit*16 深度的,而ADC目前支持队列长度最长只有8,那在队列转换完成后,FIFO是只有前8个有存入转换值么? 那下一次转换完成的数据,是跟在上一次的8个值之后,还是会在读取后重置FIFO的序列,从零开始写入? 这个FIFO -
另再补充一个,
我设置ADC结果为DMA读取,SEQLEN = 7,TRIGMD = 1,WM = 1,DMAEN =1
就是队列长度=8,硬件触发转换,每次转换都DMA读取结果。
初始化完成后 ADSTART =1 置位。
但现在发现DMA读取的结果偏了,就比如说第二次触发DMA读取的结果,不是当前转换的结果,而是上一次转换的结果,这个是那个设置不对导致的么? -
以上DMA读取偏了的问题,补充一下,这个偏导致我现在DMA读取缓存的结果也是偏移的,比如我现在设置的队列顺序是0 1 2 3,实际读取到DMA缓存的结果顺序是3 0 1 2,这个偏是固定的,只偏一个。
除了这个偏,ADC和DMA读取其他功能都正常,这个可能是哪个设置导致的么? -
我尝试了没有使用调试器观察,就程序正常运行
我在程序中按此前测试情况设置了偏移,此时读取的结果才是正确的,也就是实际DMA在无调试器观察时,读取的值也是偏了的。
发帖前请查看
帮助没办法联网的电脑使用YCT
帮助改进和优化YT CONFIG TOOL,有机会抽取YTM32B1ME0 EVB哦...