0

私はこれがばかげていることを知っていますが、私は本当に混乱しました.

Atmega16 で 3 つのモードで PWM パルスを作成したい: 1- 1Khz デューティ サイクル 100% 2- 4Khz デューティ サイクル 100% 3- 1Khz デューティ サイクル 50%

AVR から 2 年近く離れていて、すべてを忘れていたので、簡単な方法でタイマー 1 の計算が必要です。私が読んだものは何でも私をより混乱させます。私を助けることができる何かがありますか?Codevision AVR を使用しています。

4

2 に答える 2

3

デューティ サイクル 100% の 1 ~ 1Khz

デューティ サイクル 100% の 2 ~ 4Khz

は同じことです。実際の PWM はまったくありません。出力は常に高く、周波数は関係ありません。

デューティ サイクル 50% の 3 ~ 1Khz

実際にはPWMです。選択できるタイプはいくつかありますが、デューティ サイクルが正確に 50% になる場合は、トグルを使用してこれを実現する簡単な方法があります。説明書より、

各比較一致 (COM1A1:0 = 1) でその論理レベルをトグルするように OC1A を設定することにより、高速 PWM モードでの周波数 (50% のデューティ サイクル) 波形出力を実現できます。これは、OCR1A を使用して TOP 値を定義する場合 (WGM13:0 = 15) にのみ適用されます。

つまり、TCCR1A の COM1A1 ビットと COM1A0 ビットを に設定し、TCCR1A と TCCR1B の01すべての WGM ビットを に設定します1。OCR1A と TCCR1B の CSx プリスカラー ビットを選択して、OCR1A が 0.5 ms ごとに到達するようにします。

于 2017-01-05T07:52:33.430 に答える