タイマー2をCTCモードで構成し、比較一致時にポートピンを切り替え(TCCR2A = 0x42、TCCR2B = 0x02、OCR2A = 0x20)、DDR3を出力に設定しました。したがって、ATmega328Pのドキュメント(158〜163ページ)によると。OC2A(別名PB3)は、比較一致ごとに切り替える必要があります。残念ながら、PORTBではピンの状態を読み取ることができません。これは期待されていますか?ポートが出力として設定されていても、設定値を読み取れると思いました。
2 に答える
3
次の 2 つの問題がありました。
AVR Studio 4.18 では、タイマー 2 にバグがあり、ポート ピンを正しくトグルできないため、シミュレータ 1 を使用しないでください。Simulator 2 または AVR Studio 5 を使用する必要がありました。
PORTB の代わりに PINB を読み取る必要がありました (トグルは出力操作ですが)。
于 2011-06-17T19:37:40.243 に答える
1
その特定のマイクロコントローラーについてはわかりませんが、一部のアーキテクチャでは、ポートピンの変更と更新中のラッチの間に少なくともNOPが必要です (変更を読み取ることができます)。
また、ピンをトグルできる最大周波数もあります (マイクロコントローラの CPU クロックより何倍も遅い)。その周波数を超えないようにしてください。
于 2011-06-16T19:40:46.340 に答える