PSoCの12ビットAD変換器を使う。

関連、PGAについても:s.h.log: PSoC Designer – CY8C29466の6bit ADコンバータ

■Device Editor

ADCINC12とPGA(Programmable AMP)の設定

CY8C29466 ADCINC12CY8C29466 ADCINC12

ADCINC12をPGAを通してPort_0_7に結線する

CY8C29466 ADCINC12



■Application Editor

プログラムを書く。まずADCINCを動かす

// ADC init
PGA_1_Start(3);
ADCINC12_1_Start(3);
ADCINC12_1_GetSamples(0);
M8C_EnableGInt;

アナログ値を読み取る。

iGetDataは12ビットの正負(2048~-2048)を返してくるので、正の値に直す。

int ad
while(!ADCINC12_1_fIsDataAvailable());
ADCINC12_1_ClearFlag();
ad = ADCINC12_1_iGetData()+2048;

ついでにAD値をString化してPCにシリアル通信で送るには

// UART init
UART_1_CmdReset();
UART_1_IntCntl(UART_1_ENABLE_RX_INT); // enable receive interrupt
UART_1_Start(UART_1_PARITY_NONE);
char buf[6];
UART_1_CPutString("ad=");
UART_1_PutString(itoa(buf, ad, 6));
UART_1_PutCRLF();

intは6桁まで。