谁有使用ASF采集两个以上ADC数据的程序?

2019-03-24 20:25发布

Atmel Studio 6.2里提供的例程都是一路的,我试着改配置,在采集完通道0后再采集通道1,怎么也调不过。
代码里单独采集通道0和通道1都能正常读到数据。

最后完全复制一份配置和代码,一份是通道0一份是通道1,通道0配置,读取,通道1配置,读取。也不能正常读到数据。

快被折磨屎了。
此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
8条回答
dcexpert
2019-03-25 06:38


参考函数,这个是SAM R21的,其他型号应该也差不多吧:



  1. uint16_t ADC_get(uint8_t chn)
  2. {
  3.         struct adc_config config_adc;
  4.         struct adc_module adc_instance;
  5.         volatile uint16_t result;

  6.         adc_get_config_defaults(&config_adc);
  7.         config_adc.positive_input = chn;
  8.         config_adc.reference = ADC_REFERENCE_INTVCC1;
  9.         config_adc.gain_factor = ADC_INPUTCTRL_GAIN_DIV2;
  10.         config_adc.clock_prescaler = ADC_CLOCK_PRESCALER_DIV256;
  11.         config_adc.accumulate_samples = ADC_AVGCTRL_SAMPLENUM_8;
  12.         adc_init(&adc_instance, ADC, &config_adc);
  13.         adc_enable(&adc_instance);

  14.         adc_start_conversion(&adc_instance);

  15.         do {
  16.         } while (adc_read(&adc_instance, &result) == STATUS_BUSY);
  17.         adc_disable(&adc_instance);

  18.         return result;
  19. }
复制代码



一周热门 更多>