Samp_PingPongプログラムの変更箇所
(1)高精度IC温度センサLM61BIZ制御プログラムの追加
アナログ入力は4個が使用可能ですが、下記コードではAI1=E_AHI_ADC_SRC_ADC_1を使用しました。
case 'i'://***変更2
vfPrintf(&sSerStream,"ADC-TEST\r\n");//TEST表示
if (!bAHI_APRegulatorEnabled())//REGULATORがOFFの場合
{
//REGULATOR許可、割込み無し、サンプリング間隔2、500KHz、内部クロックを設定
vAHI_ApConfigure(E_AHI_AP_REGULATOR_ENABLE, E_AHI_AP_INT_DISABLE,E_AHI_AP_SAMPLE_2,E_AHI_AP_CLOCKDIV_500KHZ,E_AHI_AP_INTREF);
while(!bAHI_APRegulatorEnabled());//REGULATORがON待ち
}
//シングルショット、レンジ0からVref、AI1を設定
//AI1=E_AHI_ADC_SRC_ADC_1,AI2=E_AHI_ADC_SRC_ADC_3,AI3=E_AHI_ADC_SRC_ADC_2,AI4=E_AHI_ADC_SRC_ADC_4
vAHI_AdcEnable(E_AHI_ADC_SINGLE_SHOT,E_AHI_AP_INPUT_RANGE_1,E_AHI_ADC_SRC_ADC_1);
vAHI_AdcStartSample();//測定開始
while(bAHI_AdcPoll());//AD変換待ち
uint16 ADC=u16AHI_AdcRead();//結果読み込み
vfPrintf(&sSerStream,"ADC=%d\r\n",ADC);//結果出力
long T=(ADC*872)/688-600;//x0.1℃
vfPrintf(&sSerStream,"Temperature(x0.1Degree)=%d\r\n",T);//温度出力
break;
*App_TweLiteでは、vAHI_ApConfigure(E_AHI_AP_REGULATOR_ENABLE, E_AHI_AP_INT_ENABLE,E_AHI_AP_SAMPLE_2,E_AHI_AP_CLOCKDIV_500KHZ,E_AHI_AP_INTREF);
REGULATOR許可、割込み許可、サンプリング間隔2、500KHz、内部クロックの設定を利用しています。
*今回のコードでは、割込みを使用せずにwhile(bAHI_AdcPoll());//AD変換待ちを使用しました。(この方がわかりやすいです!!)
*温度変換式は高精度IC温度センサLM61BIZのカタログ値を適用しました。