私は6段階でPWM LED調光を実装しようとしています。これはタイマーの値を提供します。ピン番号PA0(ボタン)に接続されたSTM32 - TIM2_ETRピン、奇妙な方法でタイマをインクリメント
私は問題を抱えていますが、時にはvalue
変数が大きすぎて、ある程度の輝度をスキップすることがあります。たとえば、value
のインクリメント:1,2,3、次に6,7などにジャンプします。
誰かが私が間違っている箇所を特定できます。それは学校の割り当て
私は6段階でPWM LED調光を実装しようとしています。これはタイマーの値を提供します。ピン番号PA0(ボタン)に接続されたSTM32 - TIM2_ETRピン、奇妙な方法でタイマをインクリメント
私は問題を抱えていますが、時にはvalue
変数が大きすぎて、ある程度の輝度をスキップすることがあります。たとえば、value
のインクリメント:1,2,3、次に6,7などにジャンプします。
誰かが私が間違っている箇所を特定できます。それは学校の割り当て
あるので、これは接点バウンスのように見える、コードを削除:
// EDIT:ここ コードです。入力がCPUによって処理されるとき、それを解決する簡単な方法は、イベントが検出された後一定期間入力を無効にすることです。ボタンからタイマー入力を直接制御するので、制御があまりないかもしれません。しかし、あなたのケースではsClockSourceConfig.ClockFilterフィールドで設定されているSMCRレジスタのETFフィールドと、CR1レジスタのクロック除数CKD(あなたのコードにhtim2.Init.ClockDivisionのように見える)を試してみます。 (申し訳ありませんが、私はSTMライブラリに精通していません)。
難しいと言えます。あなたはたくさんのコードを表示しますが、 '__HAL_TIM_GetCounter'の定義は見当たりません。それは、私が見つけることができる唯一の' value'変数に格納されている値を決定するようです。 – jwdonahue
@jwdonahueは少し上にスクロールします:)私はPA0の初期化が不足しています。 – berendi
ところで、[私はここでこの質問に答えました](https://electronics.stackexchange.com/a/336052/93879) – berendi