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 |
|
解決して良かったです! 思い込んでしまうと、トラップからなかなか抜け出せないこともありますから、遠慮なくお問い合わせください。
|
|
|