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.

[参考译文] TMS320F28335:ADC 转换(轮询)

Guru**** 2577155 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1265454/tms320f28335-adc-conversion-polling

器件型号:TMS320F28335
 
我想将 ADC 转换用作轮询方法。

但是、SEQ1ISR_INT 在运行期间发生。
我的 ADC 设置如下:  
空 InitADC()
{
  InitAdc();
  // ADC 时钟设置:15Mhz
  AdcRegs.ADCTRL3.bit.ADCCLKPS = 5;
  AdcRegs.ADCTRL1.bit.cps = 0;
  // ADC 模式设置
   AdcRegs.ADCTRL1.bit.ACQ_PS = 3;
  AdcRegs.ADCTRL1.bit.SEQ_CASC = 1;
  AdcRegs.ADCTRL3.bit.SMODE_SEL = 0;
  AdcRegs.ADCMAXCONV.all = 11;
  // ADC 序列设置
  AdcRegs.ADCCHSELSEQ1.bit.CONV11 = 0;
  AdcRegs.ADCCHSELSEQ1.bit.CONV10 = 1;
  AdcRegs.ADCCHSELSEQ1.bit.CONV09 = 2;
  AdcRegs.ADCCHSELSEQ1.bit.CONV08 = 3;
  AdcRegs.ADCCHSELSEQ1.bit.CONV07 = 4;
  AdcRegs.ADCCHSELSEQ1.bit.CONV06 = 5;
  AdcRegs.ADCCHSELSEQ1.bit.CONV05 = 6;
  AdcRegs.ADCCHSELSEQ1.bit.CONV04 = 7;
  AdcRegs.ADCCHSELSEQ1.bit.CONV03 = 8;
  AdcRegs.ADCCHSELSEQ1.bit.CONV02 = 9;
  AdcRegs.ADCCHSELSEQ1.bit.CONV01 = 10;
  AdcRegs.ADCCHSELSEQ1.bit.CONV00 = 11;
发生源文件(DSP2833x_DefaultIsr.c)中的函数(interrrupt void SEQINT_ISR (void))。
如果您能告诉我为什么会发生这种情况、我将不胜感激。
谢谢~
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [报价 userid="575260" url="~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1265454/tms320f28335-adc-conversion-polling "]
    AdcRegs.ADCCHSELSEQ1.bit.CONV11 = 0;
      AdcRegs.ADCCHSELSEQ1.bit.CONV10 = 1;
      AdcRegs.ADCCHSELSEQ1.bit.CONV09 = 2;
      AdcRegs.ADCCHSELSEQ1.bit.CONV08 = 3;
      AdcRegs.ADCCHSELSEQ1.bit.CONV07 = 4;
      AdcRegs.ADCCHSELSEQ1.bit.CONV06 = 5;
      AdcRegs.ADCCHSELSEQ1.bit.CONV05 = 6;
      AdcRegs.ADCCHSELSEQ1.bit.CONV04 = 7;
      AdcRegs.ADCCHSELSEQ1.bit.CONV03 = 8;
      AdcRegs.ADCCHSELSEQ1.bit.CONV02 = 9;
      AdcRegs.ADCCHSELSEQ1.bit.CONV01 = 10;
      AdcRegs.ADCCHSELSEQ1.bit.CONV00 = 11;
    [/报价]
     // ADC 序列设置
      AdcRegs.ADCCHSELSEQ3.bit.CONV11 = 0;
      AdcRegs.ADCCHSELSEQ3.bit.CONV10 = 1;
      AdcRegs.ADCCHSELSEQ3.bit.CONV09 = 2;
      AdcRegs.ADCCHSELSEQ3.bit.CONV08 = 3;
      AdcRegs.ADCCHSELSEQ2.bit.CONV07 = 4;
      AdcRegs.ADCCHSELSEQ2.bit.CONV06 = 5;
      AdcRegs.ADCCHSELSEQ2.bit.CONV05 = 6;
      AdcRegs.ADCCHSELSEQ2.bit.CONV04 = 7;
      AdcRegs.ADCCHSELSEQ1.bit.CONV03 = 8;
      AdcRegs.ADCCHSELSEQ1.bit.CONV02 = 9;
      AdcRegs.ADCCHSELSEQ1.bit.CONV01 = 10;
      AdcRegs.ADCCHSELSEQ1.bit.CONV00 = 11;
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您是否可以检查 ADCTRL2寄存器、INT_ENA_SEQ 位(位11)和 INT_ENA_SEQ2位(位3)?  ADC 生成 ISR 的唯一方法是这些位中的任何一个被置位。  由于您要进行轮询、请确保两者都是"0"、以便禁用从 ADC 到 PIE 的 INT 信号。

    此致!

    马修