「PIC AVR 工作室」サイトの日記的なブログです。
サイトに挙げなかった他愛ないことを日記的に書き残してます。
PIC AVR 工作室 ブログ



掲示板にあるとおり、シバ某さんからご指摘頂いた件を
目下検討中です。

回路図の構想どおりにPB2を/WEのストローブ信号
として使えればいいなぁと思っているので、現在その方向で
山根氏の本を読み返しながら、お勉強的な実験をしている
ところです。

シミュレーターを使って、タイマー1を高速PWMモード
のモード15で使用。カウンタの最大値をOCR1A=4に設定。
OCR1Bに3を入れておくことで、カウンタが0~3はHIGH、
カウンタが4の時はLOWという出力が出来るだろうと考えています。

ただ、なぜだかシミュレーターではまだ上手く動作していません…

これを、タイマー0(8ビットのタイマー)を使ってモード7
で実験すると上手く行くんですが、そもそもタイマー0
はOC0B出力がPD5なのでSRAMへのアドレス指定用
ポートとバッティングしてしまいます。PD5はSRAM
アクセス用4ビットアドレスとして必要なので、
これは変えられません。

タイマー1のOC1B出力(=PB2)であれば、
回路図には全く手を加えずに使えるので、なんとか
タイマー1で動かしたいのですが、私の頭がまだ
追いついていないようで、上手く動いていません。

データシートのErattaまで見直してみたのですが、
タイマー1のPWM関連のErattaは無いようですし…。


なぜタイマー1では、OCR1Aとカウンタが
一致してもカウンタが0に戻ってくれなのか?
なぜOCR1Bと一致してもPB2の出力が反転
しないのか?

今のところ私の頭では原因究明できていません。
うーん。こまった…。

タイマー0のモード7(高速PWM)とタイマー1の
モード15(高速PWM)では何か決定的な違いが
あるのでしょうかねぇ?



コメント ( 0 )
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする



« MEGA644 続、タイマー... »
 
コメント
 
コメントはありません。
コメントを投稿する
 
名前
タイトル
URL
コメント
コメント利用規約に同意の上コメント投稿を行ってください。

数字4桁を入力し、投稿ボタンを押してください。