Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Ответить

STM8S + ADC + Multichanel

Пт фев 15, 2019 14:08:25

День добрый.

Имеем STM8S105. Есть необходимость считать несколько каналов ADC, конкретно AIN2, AIN3, AIN4, AIN5.

в main.c пишу:
Код:
   ADC1_DeInit();
   ADC1_Init(ADC1_CONVERSIONMODE_CONTINUOUS, ADC1_SCHMITTTRIG_CHANNEL5, ADC1_PRESSEL_FCPU_D8, ADC1_EXTTRIG_GPIO, DISABLE, ADC1_ALIGN_RIGHT, ADC1_SCHMITTTRIG_ALL, DISABLE);
   ADC1_ITConfig(ADC1_IT_EOCIE ,ENABLE);
   ADC1_DataBufferCmd(ENABLE);
   ADC1_Cmd(ENABLE);
   ADC1_ScanModeCmd(ENABLE);
   ADC1_StartConversion();
   enableInterrupts();


в stm8s_it.c
Код:
 INTERRUPT_HANDLER(ADC1_IRQHandler, 22)
 {
   adc1_0=ADC1_GetBufferValue(ADC1_CHANNEL_0);
   adc1_1=ADC1_GetBufferValue(ADC1_CHANNEL_1);
   adc1_2=ADC1_GetBufferValue(ADC1_CHANNEL_2);
   adc1_3=ADC1_GetBufferValue(ADC1_CHANNEL_3);
   adc1_4=ADC1_GetBufferValue(ADC1_CHANNEL_4);
   adc1_5=ADC1_GetBufferValue(ADC1_CHANNEL_5);
   ADC1_ClearITPendingBit(ADC1_IT_EOC);
}


Не считывается AIN5, до него все ОК, 5 нет!

в main.c делаю замену ADC1_PRESSEL_FCPU_D8 -> ADC1_PRESSEL_FCPU_D6 - могу читать и 5 канал?!
Путем несложный переборов выяснил, что AIN5 читается при ADC1_PRESSEL_FCPU_D3 и ADC1_PRESSEL_FCPU_D6, во всех остальных случаях нет.

Собственно вопрос - почему так?!

Re: STM8S + ADC + Multichanel

Сб фев 16, 2019 18:36:47

Всё более чем просто:


Достаточно прочитать мануал на чип

Re: STM8S + ADC + Multichanel

Вс фев 17, 2019 08:36:04

Спасибо, буду разбираться :beer:
Ответить