This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

ADC触发采样问题



现在想实现一个程序,发PWM波之前采用软件触发,发PWM 波之后用PWM触发采样,应该怎么实现呢

  • 先设置软件触发采样,然后配置PWM触发采样,在两者中间加入启动PWM发波/计数的语句(TBCTL.bit.CTRMODE).

  • PWM触发采样必须要进AD中断中读数吗?

    只是想pwm触发ADsoc后,

    不用中断直接读ADresult可以不?

     

  • 当然不必要,触发完直接读数就行了

  • 同问一下,如果触发之后就立即读,那有没有可能读书还没有获取,或者是正在获取。这种情况下,读到的数是什么值啊?

    是上一次值还是0,?

  • 并不是每次AD转换都必须产生中断,完全可以随意设置在任何一个EOC之后产生,也可以使用其它中断读取或者使用查询方式。简单来说,AD转换和AD结果的读取两者之间没有必然联系。

    唯一要说明的是时间(请参考数据手册ADC部分的时序图以及ADC UG里的说明):

    起始时间:任何一个SOC对应的AD转换结果,在(ACQPS+1)个ADCCLK的采样保持,加上6个ADCCLK转换时间后,就可以通过触发AD中断信号读取了(注意,并不一定必须响应中断),也可以晚一点(13个ADCCLK)到该转换真正完成时触发AD中断信号读取,所以,只要你触发了AD中断信号,就可以读到正确的AD结果。

    结束时间:在同一个SOC转换完成的下一次到来之前,对应SOC的结果寄存器里的值始终保留,如果同一个SOC进行了另一次ADC转换,则结果寄存器里的值将在上面描述的时间之后被覆盖。