| TOP | ホーム | ページ一覧 |

No.14849 への▼返信フォームです。
 
PWMモードについて
   投稿者: tongari    
2022/11/12(土) 19:01
No. 14849 引用
 
  はじめまして。
今年に入ってからBASCOM AVRを触り始めたものです。

ATmega328P(Arduino)でタイマー0割り込みを下記のように記述しています。
しかしながら、割り込み後のルーチンが動きませんので、正常に割込みしていないようです。

Config Timer0 = Pwm , Prescale = 256 , Clear Timer = 1
Set Tccr0B.wgm02
Compare0a = 250 - 1
Compare0b = 150
On Compare0a Tint0a
Enable Compare0a
On Compare0b Tint0b
Enable Compare0b

お手数ですが、設定の不備など問題点をご教授願います。
なお、ヒューズビットは変更しておりません。
Programmerの設定はArduinoにしてUSBケーブルで書き込みしていますが、ProgrammerのLock and Fuse bitsのタブが見あたりません。

 
Re:PWMモードについて  引用
  投稿者: O-Family    ..2022/11/13(日) 07:48  No.14850
  tongariさん、ようこそ。

> しかしながら、割り込み後のルーチンが動きませんので、正常に割込みしていないようです。
個別に設定された、すべての割り込みを許可する、
Enable Interrupts
命令がぬけていませんか?

それとも、割り込み先のプログラムがおかしくて、割り込みが発生していないように見えているだけかも。

> Programmerの設定はArduinoにしてUSBケーブルで書き込みしていますが、ProgrammerのLock and Fuse bitsのタブが見あたりません。
「Arduino」などのブートローダーは、ヒューズの設定を変えてしまうとUSBの通信が出来なくなり、Programmer自体が動作しなくなって操作不能になる可能性があるので、ヒューズを書き換える設定がありません。
書き換えてしまうと、「AVRISPmkII」のようなISP書込器が無いと戻せなくなるからです。
Re:PWMモードについて  引用
  投稿者: tongari    ..2022/11/13(日) 11:53  No.14852
  ご返事ありがとうございます。

Enable Interrupts命令が抜けておりました。
なぜか設定の不備ばかり疑って悩んでおりました。
ありがとうございます。
ヒューズビットの件も承知ました。

この後、割り込みルーチンとメインルーチン内で同じテンポラリー変数を、それぞれ別用途で使っていて、おかしな挙動しましたが、今回はすぐに気づけました。

業務でFAラダーのプログラミングをしておりましたが、マイコンプログラミングは数十年前に学生時代に学んだきりでした。
ラダーでも最近は割り込み機能などがあり、ある程度理解していたつもりでしたが、設定から書き込むとなると理解度も経験も全く足りませんでした。
ひとりで悩まずご相談させていただいて良かったです。
少しずつステップアップしていきたいと思います。
今後とも宜しくお願い致します。
Re:PWMモードについて  引用
  投稿者: O-Family    ..2022/11/13(日) 12:04  No.14853
  解決して良かったです!
思い込んでしまうと、トラップからなかなか抜け出せないこともありますから、遠慮なくお問い合わせください。



名前
Mail   URL
文字色
タイトル   簡単タグ入力
添付   >>お絵かき
フォームに保存  プレビュー      削除キー