今回は、LPCXpressoでのADC(ADコンバータ)の使い方を取りあげたいと思います。
ここでは、ADC用のドライバとして、サンプルプログラムに付属している下記のものを使用します。
adc.c
adc.h
なお、サンプルプログラムをインポートしていない場合は、この記事を参照してプログラムをインポートして下さい。adcプロジェクト下のdriverディレクトリに上記のファイルがあります。
まず、adc.hをインクルードし、VIN電圧とADCのビット数を定義しておきます。
1 2 3 |
#include "adc.h" #define SUPPLY_VOLTAGE 3300 //VIN=3300mV #define ADC_COUNT_MAX 1023 //10bit ADC |
実際に使う際には、下記の様なコードを使用します。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
ADCInit( ADC_CLK ); //ADC initialization uint32_t adc_val_0; //Code of ADC0 //Read ADC0 ADCRead( 0 ); adc_val_0 = ADCValue[0]; while ( !ADCIntDone ); ADCIntDone = 0; //Voltage value of ADC0 double adc_voltage_0; adc_voltage_0 = SUPPLY_VOLTAGE*adc_val_0/ADC_COUNT_MAX; |
まず、ADCInitで初期化します。この時に使用しているADC_CLKは、ドライバファイル中で定義されているので、改めて定義する必要はありません。その後、//Read ADC〜以降で、ADCの測定値を、変数adc_val_0に格納します。最後に、ADCの測定値を電圧値に変換しているのが、//Voltage value of ADC0〜以降の処理になります。
Sponsored Link