こんにちは、チームの皆様。
S32K5 ADCのポーリングモードの場合について質問してもよろしいでしょうか?
ADCポーリングモードの実装を試みている。
シーケンスは、Adc_StartConversion -> Adc_GetGroupStatus を使用中 -> ADC_COMPLETED の場合、Adc_ReadGroup() を呼び出す、です。
しかし、うまくいかなかった。
Adc_StartConversionの直後、状態はADC_BUSYに変わり、EOCフラグとECHフラグも正しく1に設定されます。
私の理解では、ECH = 1 の場合、要求されたすべてのグループの変換が完了したことを意味します。
しかし、Adc_axGroupStatus内のグループ状態には全く変化がありません。
(0x4213C010がLPE_ADCの割り込みレジスタアドレスであることを確認しました。)
私が調査した限りでは、グループの状態はAdc_Ipw_Adc2EndNormalChainNotification関数によってCOMPLETEDに変更されるはずですが、この関数が呼び出されていないことが問題の原因であると思われます。
ポーリングモードの設定に必要な項目はどれか確認していただけますか?
よろしくお願いします。
こんにちは、 @Luke_Chun さん。
以前、「割り込みなし」を有効にする場合、ユーザーは Adc_GetStatus() を呼び出す必要はありません。この関数では、Adc ステータスが ADC_COMPLETED に更新されないためです。代わりに、「割り込みなし」を有効にすると、正しいシーケンス呼び出しは次のようになります。
Adc_StartGroupConversion(AdcGroup_0);
// 成功するまでReadGroupをポーリングする
する {
status = Adc_ReadGroup(AdcGroup_0, ResultBuffer);
} while (status != E_OK);
Adc_ReadGroup() は、「変換データ」レジスタから直接データを読み取ります。
よろしくお願いいたします。
ダン