こんにちは、チーム
S32K146 マイクロコントローラを使用していますが、入力キャプチャピンとしていずれかの入力ピンが必要です。どのモジュールで構成すればよいか教えていただけますか?
FTM を信号測定として使用した場合、入力キャプチャ機能を実現できますか?それともic_pal機能を使うべきでしょうか?
サポートをお願いします
ありがとう
シュルティ C
こんにちは、ペトルさん。
INT_SYS_InstallHandler(FTM0_Ch0_Ch1_IRQn, PWM_InputCapture_IRQHandler, NULL);関数はデフォルトのハンドラーを取得しており、このハンドラーFTM0_Ch0_Ch1_IRQnを取得していないため、使用できません。
私の設定は
こんにちは、
はい、それらの機能で十分なはずです。SDK ドライバは FTM チャネル割り込みを有効にするので、起動時から適切なハンドラーを割り当てる必要があると思います。正しくない場合、ハンドラーは FTM0_Ch0_Ch1_IRQHandler になります。
キャプチャされた値を取得するには、FTM_DRV_GetInputCaptureMeasurement が呼び出されます。
BR、ペトル
こんにちは、
最も一般的で効率的な方法は、FTM を入力キャプチャ モードで設定し、FTM 機能を持つピンを使用することです。各 FTM チャネルは入力キャプチャ モードに設定でき、入力信号のエッジ (立ち上がり、立ち下がり、またはその両方) でタイマー値をキャプチャします。これは通常、信号周期、パルス幅、周波数の測定に使用されます。
IC PAL ドライバを使用すると、入力信号を検出し、チャネル入力信号のパルス幅または周期を測定できます。FTM、eMIOS、FLEXPWM、ETIMER をサポートするすべてのプラットフォームと IP 間でポータブルになるように設計されています。
SO、完全な制御とパフォーマンスが必要な場合は、FTM を直接使用してください。よりシンプルなコードと移植性が必要な場合は、IC PAL を使用してください。
BR、ペトル
こんにちは、
直接参照できる SDKs の例があります (ftm_signal_measurement)。
または、問題を示す簡略化されたプロジェクトを共有します。
BR、ペトル
こんにちは、
SDK の例では、直接参照しました (ftm_signal_measurement)。
この例では割り込み方法は使用されず、ポーリング方法が使用され、その後FTM_DRV_GetInputCaptureMeasurementが呼び出されました。
割り込みによる FTM 信号測定を探しています。入力キャプチャが信号を認識すると、割り込みがトリガーされ、 ISR で FTM_DRV_GetInputCaptureMeasurement 関数が呼び出されます。
これのコードを提供してもらえますか
ありがとう
シュルティ C
こんにちは、
ハンドラーを再度インストールする必要がある場合は、
外部void FTM0_Ch0_Ch1_IRQHandler(void);
INT_SYS_InstallHandler(FTM0_Ch0_Ch1_IRQn、FTM0_Ch0_Ch1_IRQHandler、NULL);
BR、ペトル
こんにちは、
はい、その関数は定義されていますが、その後関数呼び出しは無限ループに入り、さらに実行されます。
システム全体が機能しなくなる、
ありがとう
シュルティ C
こんにちは、
サポートありがとうございます。コードスニペットも確認させていただきます。
T&R、
シュルティ C
こんにちは、
割り込み対応FTMピンへの入力を入力キャプチャとして取得できますか?
よろしくお願いします。
シュルティ C
こんにちは、
ドライバはキャプチャ イベント情報に割り込みを使用していますが、例では直接示されていません。
FTM IC 設定を変更して、ワンショット モードを使用し、ドライバ割り込みから呼び出されるコールバックを追加しました。
ftm_signal_measurement_s32k146 デモの変更された main.c については、添付ファイルを参照してください。
BR、ペトル