Po pierwsze PCINT3 w PCMSK0 to bit 3 bo liczymy od zera czyli PCINT0 to bit 0.
Po drugie na poprzednio zamieszczonym przeze mnie screenie masz pinout. To nieskomplikowane spojrzeć.
PCINT0-PCINT7 to PORTA i PCMSK0
PCINT8-PCINT15 to PORTB i PCMSK1
PCINT16-PCINT23 to PORTC i PCMSK2
PCINT24-PCINT31 to PORTD i PCMSK3
Wszystko jest zebrane w plikach DAT Bascoma.
Otwierasz plik m644PAdef.dat i masz:
; ***** EXTERNAL_INTERRUPT ***********
; EICRA - External Interrupt Control Register A
ISC00 = 0 ; External Interrupt Sense Control Bit
ISC01 = 1 ; External Interrupt Sense Control Bit
ISC10 = 2 ; External Interrupt Sense Control Bit
ISC11 = 3 ; External Interrupt Sense Control Bit
ISC20 = 4 ; External Interrupt Sense Control Bit
ISC21 = 5 ; External Interrupt Sense Control Bit
; EIMSK - External Interrupt Mask Register
INT0 = 0 ; External Interrupt Request 0 Enable
INT1 = 1 ; External Interrupt Request 1 Enable
INT2 = 2 ; External Interrupt Request 2 Enable
; EIFR - External Interrupt Flag Register
INTF0 = 0 ; External Interrupt Flag 0
INTF1 = 1 ; External Interrupt Flag 1
INTF2 = 2 ; External Interrupt Flag 2
; PCICR - Pin Change Interrupt Control Register
PCIE0 = 0 ; Pin Change Interrupt Enable 0
PCIE1 = 1 ; Pin Change Interrupt Enable 1
PCIE2 = 2 ; Pin Change Interrupt Enable 2
PCIE3 = 3 ; Pin Change Interrupt Enable 3
; PCIFR - Pin Change Interrupt Flag Register
PCIF0 = 0 ; Pin Change Interrupt Flag 0
PCIF1 = 1 ; Pin Change Interrupt Flag 1
PCIF2 = 2 ; Pin Change Interrupt Flag 2
PCIF3 = 3 ; Pin Change Interrupt Flag 3
; PCMSK3 - Pin Change Mask Register 3
PCINT24 = 0 ; Pin Change Enable Mask 24
PCINT25 = 1 ; Pin Change Enable Mask 25
PCINT26 = 2 ; Pin Change Enable Mask 26
PCINT27 = 3 ; Pin Change Enable Mask 27
PCINT28 = 4 ; Pin Change Enable Mask 28
PCINT29 = 5 ; Pin Change Enable Mask 29
PCINT30 = 6 ; Pin Change Enable Mask 30
PCINT31 = 7 ; Pin Change Enable Mask 31
; PCMSK2 - Pin Change Mask Register 2
PCINT16 = 0 ; Pin Change Enable Mask 16
PCINT17 = 1 ; Pin Change Enable Mask 17
PCINT18 = 2 ; Pin Change Enable Mask 18
PCINT19 = 3 ; Pin Change Enable Mask 19
PCINT20 = 4 ; Pin Change Enable Mask 20
PCINT21 = 5 ; Pin Change Enable Mask 21
PCINT22 = 6 ; Pin Change Enable Mask 22
PCINT23 = 7 ; Pin Change Enable Mask 23
; PCMSK1 - Pin Change Mask Register 1
PCINT8 = 0 ; Pin Change Enable Mask 8
PCINT9 = 1 ; Pin Change Enable Mask 9
PCINT10 = 2 ; Pin Change Enable Mask 10
PCINT11 = 3 ; Pin Change Enable Mask 11
PCINT12 = 4 ; Pin Change Enable Mask 12
PCINT13 = 5 ; Pin Change Enable Mask 13
PCINT14 = 6 ; Pin Change Enable Mask 14
PCINT15 = 7 ; Pin Change Enable Mask 15
; PCMSK0 - Pin Change Mask Register 0
PCINT0 = 0 ; Pin Change Enable Mask 0
PCINT1 = 1 ; Pin Change Enable Mask 1
PCINT2 = 2 ; Pin Change Enable Mask 2
PCINT3 = 3 ; Pin Change Enable Mask 3
PCINT4 = 4 ; Pin Change Enable Mask 4
PCINT5 = 5 ; Pin Change Enable Mask 5
PCINT6 = 6 ; Pin Change Enable Mask 6
PCINT7 = 7 ; Pin Change Enable Mask 7
Widać że ta Atmega ma trzy zwykłe przerwania zewnętrzne INT0-INT2 włączane w rejestrze EIMSK i cztery przerwania typu Pin Change PCIE0-PCIE3 włączane w rejestrze PCICR.
Jeśli chciałbyś włączyć przerwanie PCIE3 na rejestrach to by trzeba napisać
I to robi polecenie
To jest po prostu składnia Bascoma. Moze powinni to opisać inaczej na przykład Enable PCIE3, ale jest tak a nie inaczej i tylko tyle.