Japanino ArduinoISPで ATtiny13 で デジタル入力 - PWM波形計測 (9) (9/7)
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
で、SWを押すと割り込みを起こす方法をやってみる。
BASCOM-AVRの割り込みはマイコンの特徴をよく調べておかないとちょっと難しい。
割り込みは一瞬なので、確実に発生したかを調べるのにオシロスコープがあると助かる。
なのでだいぶ前にソフトオシロの「ハンディオシロスコープ」と手作りプローブ、矩形波を発生するPWMのプログラムで動作確認する。
ソフトウェアオシロスコープ3種 (12/04)
ソフトオシロに100均イヤホンで苦戦(8/13)
Japanino ArduinoISPで ATtiny13 で PWM (5) - BASCOM-AVR (8/25)
MIC入力に差して以下のように黒のプローブを①に、赤のプローブを②につなぐ。
回路はGND -①- 180Ω抵抗 --- (カソード短い) --- LED --- (アノード長い) -②- PB0。
$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
オシロスコープを立ち上げると図の下のように表示されるので、右端のチェックボックスFFTをONにすると上の波形も表示される。
こちらのサイト様で、ソフトオシロを使うときのプローブの注意がある。それによると直流3Vが流れるとの事。マイコンは6~8Vまで耐性電圧があるから、間違って抵抗180Ωをはさまないでつないで(回路では①より右にプローブをつなぐ)もLEDがまぶしく光るだけでなんとかなるが、やはりコンデンサで直流成分をカットし、高周波成分であるPWMのみ通すようにする工作をした方がよい。
うれし?とほほ?ソフトオシロを見つけちゃった(^^; - Youtube 3:45~53辺り