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.

在使用TMS320F28069的AD模块碰到的问题

Other Parts Discussed in Thread: TMS320F28069

在使用TMS320F28069的AD模块碰到这么一个问题,通过对ad模块寄存器的设置,28069能够进入ad中断1,这个说明ad中断1的中断标志位可以被置位的,但是我当我没有给ad中的地址时而是用查询法莱判断ad模块转换是否结束(即判断中断标志位是否被置位)时,发现这个中断标志位始终不能置位,也就是说始终为0这是什么原因;还有就是怎么实现不同的soc对同一个adin口采样呢?我只用一个soc采样一个adin口可以,但多个soc采样同一个adin口好像不对,这又是什么原因?

  • 你先查一下手册    确保中断标志位是否需要手动清除

    如果是软件自动清除的话     在什么时候清除

    你的查询方式能否跟上?

  • 外设中断都是要手动清除的,而且AdcRegs.INTSEL1N2.bit.INT1CONT  = 0;这位这么设置就必须在手动清除ad中断标志位后才能在EOC的到来触发ad中断脉冲(No further ADCINTy pulses are generated until ADCINTy flag (in ADCINTFLG register) is cleared by user),所以查询法应该能跟踪的

  • 1.关于查询方式,为什么中断标志位不能置位

       1)要确定ADC能够产生中断,类似下面的代码

          EALLOW;

          AdcRegs.INTSEL1N2.bit.INT1SEL = 1; //Connect ADCINT1 to EOC1

          AdcRegs.INTSEL1N2.bit.INT1E  =  1; //Enable ADCINT1

       2) 在查询后要清除标志位

    //Wait for end of conversion.
    while(AdcRegs.ADCINTFLG.bit.ADCINT1 == 0){} //Wait for ADCINT1
    AdcRegs.ADCINTFLGCLR.bit.ADCINT1 = 1; //Clear ADCINT1

       3)如果上述你程序中都有添加,那就要确认一下是否有ADC的触发源触发ADC转换。

    2. 不同的SOC对同一个ADCIN采样时没有问题的,只要配置成相同的触发源。

        建议你在例程的基础上进行测试。

        在ADC的说明文档中,要注意采样窗某些特定值不能设置。

    Eric