今回は、LPCXpressoでのADC(ADコンバータ)の使い方を取りあげたいと思います。
ここでは、ADC用のドライバとして、サンプルプログラムに付属している下記のものを使用します。
adc.c
adc.h
なお、サンプルプログラムをインポートしていない場合は、この記事を参照してプログラムをインポートして下さい。adcプロジェクト下のdriverディレクトリに上記のファイルがあります。
まず、adc.hをインクルードし、VIN電圧とADCのビット数を定義しておきます。
#include "adc.h"
#define SUPPLY_VOLTAGE 3300 //VIN=3300mV
#define ADC_COUNT_MAX 1023 //10bit ADC
実際に使う際には、下記の様なコードを使用します。
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