体重と今日食べたもの

k1segawa.exblog.jp

ダイエット

ブログトップ

Japanino ArduinoISPで ATtiny13 で デジタル入力 - PWM波形計測 (9) (9/7)

デジタル入力として、Debounceは、デフォルトで25ms後に同じ値(0)が得られたら入力があったと判定している。

Debounce Pinb.4 , 0 , G_pinstat , Sub
(前記事の回路の通り、入力のPB4 を内部プルアップしてるので、SWを押すと0になる)

それってこの命令じゃなくても普通に、
If  Pinb.4 = 0 then
Waitms 25
If Pinb.4 = 0 then
W = 1
Endif
Endif
なので内部で25ms必ず待ってるので処理速度が必要ならネックになる。

で、SWを押すと割り込みを起こす方法をやってみる。
BASCOM-AVRの割り込みはマイコンの特徴をよく調べておかないとちょっと難しい。
割り込みは一瞬なので、確実に発生したかを調べるのにオシロスコープがあると助かる。

なのでだいぶ前にソフトオシロの「ハンディオシロスコープ」と手作りプローブ、矩形波を発生するPWMのプログラムで動作確認する。
ソフトウェアオシロスコープ3種 (12/04)
ソフトオシロに100均イヤホンで苦戦(8/13)
Japanino ArduinoISPで ATtiny13 で PWM (5) - BASCOM-AVR (8/25)
MIC入力に差して以下のように黒のプローブを①に、赤のプローブを②につなぐ。
回路はGND -①- 180Ω抵抗 --- (カソード短い) --- LED --- (アノード長い) -②- PB0。
a0034780_02033608.jpg
ソースはPrescale=1→64に変更する。
$regfile = "attiny13.dat"
$crystal = 9600000
$hwstack = 32
$swstack = 8
$framesize = 16
Config Portb.0 = Output
Config Timer0 = Pwm , Prescale = 64 , Compare A Pwm = Clear Down
Dim I As Byte
Do
For I = 0 To 255
Incr Pwm0a
Waitms 10
Next I
Loop
End
ハンディ・オシロスコープはここからダウンロード、Window10 64bitでもインストール・動作可能。
オシロスコープを立ち上げると図の下のように表示されるので、右端のチェックボックスFFTをONにすると上の波形も表示される。
a0034780_01525664.jpg
そしてその上のスライドバーで高さを拡大(-13)し、左下のスライドバーで横幅を拡大(13)、PWMらしい波形にする。右下のP-Trig(I)ボタンを押すと波形が停止する。停止しづらい時はチェックボックスO-TriggerをONにして、波形を停止解除し、スライドバーで横幅を調整したのち、再度P-Trigボタンを押す。
a0034780_01533073.jpg
これでオシロスコープの使い方が分かったので、割り込みプログラムをデバッグしていこう。

こちらのサイト様で、ソフトオシロを使うときのプローブの注意がある。それによると直流3Vが流れるとの事。マイコンは6~8Vまで耐性電圧があるから、間違って抵抗180Ωをはさまないでつないで(回路では①より右にプローブをつなぐ)もLEDがまぶしく光るだけでなんとかなるが、やはりコンデンサで直流成分をカットし、高周波成分であるPWMのみ通すようにする工作をした方がよい。
うれし?とほほ?ソフトオシロを見つけちゃった(^^; - Youtube 3:45~53辺り
a0034780_01115547.jpg
a0034780_01122494.jpg

a0034780_03251995.gif


[PR]
by k1segawa | 2016-09-08 00:23 | arduino, AVR | Comments(0)