2017-10-24 16 views
1

私は6段階でPWM LED調光を実装しようとしています。これはタイマーの値を提供します。ピン番号PA0(ボタン)に接続されたSTM32 - TIM2_ETRピン、奇妙な方法でタイマをインクリメント

私は問題を抱えていますが、時にはvalue変数が大きすぎて、ある程度の輝度をスキップすることがあります。たとえば、valueのインクリメント:1,2,3、次に6,7などにジャンプします。

誰かが私が間違っている箇所を特定できます。それは学校の割り当て

+0

難しいと言えます。あなたはたくさんのコードを表示しますが、 '__HAL_TIM_GetCounter'の定義は見当たりません。それは、私が見つけることができる唯一の' value'変数に格納されている値を決定するようです。 – jwdonahue

+0

@jwdonahueは少し上にスクロールします:)私はPA0の初期化が不足しています。 – berendi

+0

ところで、[私はここでこの質問に答えました](https://electronics.stackexchange.com/a/336052/93879) – berendi

答えて

1

あるので、これは接点バウンスのように見える、コードを削除:

// EDIT:ここ コードです。入力がCPUによって処理されるとき、それを解決する簡単な方法は、イベントが検出された後一定期間入力を無効にすることです。ボタンからタイマー入力を直接制御するので、制御があまりないかもしれません。しかし、あなたのケースではsClockSourceConfig.ClockFilterフィールドで設定されているSMCRレジスタのETFフィールドと、CR1レジスタのクロック除数CKD(あなたのコードにhtim2.Init.ClockDivisionのように見える)を試してみます。 (申し訳ありませんが、私はSTMライブラリに精通していません)。

関連する問題