人気ブログランキング |

体重と今日食べたもの

k1segawa.exblog.jp

ダイエット

ブログトップ

Japanino ArduinoISPで ATtiny13 で 外部割込み (17) (9/19)

外部割込みの拡張外部割込みPCINTxを行う。
INT0はピンが決まっているが、PCINTxは複数のPinに割り当てられ、別のPinに割込みを切り替えることができる。
そのため直接I/Oレジスタを設定しなければならない。
下記のURLで
Const Used_pcint = &B00000011
Pcmsk = Used_pcint 'Einschalten pcint0 pcint1 (portb.0 portb.1)
となっており、PCMSKが下位0~7ビットでPCINT0~7を表している(ATtiny13は最大5までだが)。
http://www.makerconnect.de/index.php?threads/pcint-pin-abfragen.2963/

ソース:
'****************************************
' Copyright (c) 2016 k1segawa
' License : free
' Program : External Interrupt Control (PCINTx)
'****************************************

$regfile = "attiny13.dat"
$crystal = 9600000
$hwstack = 32
$swstack = 8
$framesize = 16

Config Portb.4 = Output
Config Portb.3 = Input
Set Portb.3

Enable Interrupts
Enable Pcint0
On Pcint0 Isr_pcint
Pcmsk = &B00001000 'PCINT3 mask

Do
Loop

End

Isr_pcint:
Portb.4 = 1
Waitms 10
Portb.4 = 0
Return
' History
' [2016/09/19]
' CONFIG INTx(external Interrupt), 0-4:OK

割込み名はPCINT0で記述しPCMSKでピンを切り替える。立ち上がり立ち下がりを指定することは出来ない。注意点として、動作確認時は書込みの線を外す事(VCCとGNDのみにする)。
by k1segawa | 2016-09-19 20:53 | arduino, AVR | Comments(0)