お役立ち関数・クラス(AD変換)

対象マイコン:Atmega88シリーズ
引数:なし
返り値:なし
説明:AD変換を右寄せで初期化する関数
  1. //ADC設定の初期化
  2. void adc_init(void){
  3. ADMUX = 0b01000000; //AVCCを基準、右寄せ、ADC0(PC0)に接続
  4. //変換器を有効、
  5. //16分周(1MHz/16=62.5kHz)AD変換には13クロックかかるため62.5kHz/13=約5kHz
  6. ADCSRA = 0b10000100;
  7. _delay_ms(5); //分周器の動作安定待ち
  8. }
  9.  

対象マイコン:Atmega88シリーズ
第1引数:AD変換器に接続するピン番号(0~5)
返り値:AD変換の結果
説明:AD変換を実行する関数
  1. //AD変換を行う関数
  2. uint16_t adc(int pin){
  3. ADMUX = ADMUX & 0b11110000 ; //ピンセレクトを初期化
  4. ADMUX = ADMUX | pin; //ピンセレクト
  5. ADCSRA = ADCSRA | 0b01000000; //AD変換器起動
  6. while(ADCSRA & 0b01000000); //AD変換完了待ち
  7. return ADC;
  8. }
  9.