Interrupt deklarieren: 4640/ C00D22 : 4640/ C00D22 : ; demo: externer interrupt an Pin P2.7 4641/ C00D22 : 4642/ C00D22 : E6 12 03 00 mov CC2_KSCCFG,#3 ; load CAPCOM2 Kernel state configuration 4643/ C00D26 : ; CC2 Kernel einschalten 4644/ C00D26 : 4645/ C00D26 : 4646/ C00D26 : E0 44 mov r4,#0004 ; load CAPCOM2 I/O control register 4647/ C00D28 : F6 F4 66 F0 mov CC2_IOC,r4 4648/ C00D2C : 4649/ C00D2C : 4E 97 bclr SCU_ISSR_ISS4 ; CC2 channel 20 interrupt is selected 4650/ C00D2E : 4651/ C00D2E : E6 F0 4E E8 mov r0,#P2_IOCR07 ; P2.7 4652/ C00D32 : E0 21 mov r1,#02h ; Eingang mit pull-up 4653/ C00D34 : B8 10 mov [r0],r1 4654/ C00D36 : 4655/ C00D36 : E6 92 01 00 mov CC2_M5,#2 ; Fallende Flanke 4656/ C00D3A : 4657/ C00D3A : 4658/ C00D3A : ;Interrupt 4659/ C00D3A : E0 54 mov r4,# 00 0001 01b ; Priorität 4660/ C00D3C : F6 F4 C8 F1 mov CC2_CC20IC,r4 4661/ C00D40 : 4662/ C00D40 : F2 F4 C8 F1 mov r4,CC2_CC20IC ; Bitmanipulation nicht möglich 4663/ C00D44 : 7E F4 bclr r4.7 ; Interrupanforderung löschen 4664/ C00D46 : F6 F4 C8 F1 mov CC2_CC20IC,r4 4665/ C00D4A : 4666/ C00D4A : F2 F4 C8 F1 mov r4,CC2_CC20IC ; Bitmanipulation nicht möglich 4667/ C00D4E : 6F F4 bset r4.6 ; Interrupt zulassen 4668/ C00D50 : F6 F4 C8 F1 mov CC2_CC20IC,r4 4669/ C00D54 : Interrupt Einsprung: 94/ C0004C : org main0start + 4ch ;CC3INT (CAPCOM Register 19) 95/ C0004C : EA 00 62 05 jmp eru_request_19 96/ C00050 : ;-- 97/ C00050 : org main0start + 50h ;CC4INT (CAPCOM Register 20) 98/ C00050 : EA 00 70 05 jmp eru_request_20 99/ C00054 : ;-- 100/ C00054 : org main0start + 54h ;CC5INT (CAPCOM Register 21) 101/ C00054 : EA 00 7E 05 jmp eru_request_21 Interrupt weiterleiten: 3605/ C00562 : ;--- 3606/ C00562 : 3607/ C00562 : 8A 03 04 60 eru_request_19 jb errorTopFirmware,no_eru_request_19 ;CC19INT (CAPCOM Register 19) 3608/ C00566 : 8A 06 02 B0 jb firmWareLoad,no_eru_request_19 3609/ C0056A : DA C1 96 03 calls top_cc3_int 3610/ C0056E : FB 88 no_eru_request_ 19 reti 3611/ C00570 : 3612/ C00570 : ;--- 3613/ C00570 : 3614/ C00570 : eru_request_20 ;jb errorTopFirmware,no_eru_request_20 ;CC20INT (CAPCOM Register 20) 3615/ C00570 : ;jb firmWareLoad,no_eru_request_20 3616/ C00570 : DA C0 04 0E calls eru_request_20_do 3617/ C00574 : FB 88 no_eru_request_20 reti 3618/ C00576 : 3619/ C00576 : ;--- Interrupt bearbeiten: 4904/ C00E12 : 4905/ C00E12 : 4906/ C00E12 : eru_request_20_do section eru_request_20_do 4907/ C00E12 : 4908/ C00E12 : ; Demo-Routine bei Interrupt-Request durch P2.7 4909/ C00E12 : 4910/ C00E12 : 4911/ C00E12 : F2 F4 47 1E mov r4,CC2_CC20IC_IR ; Bitmanipulation nicht möglich 4912/ C00E16 : 7E F4 bclr r4.7 ; Interrupanforderung löschen 4913/ C00E18 : F6 F4 47 1E mov CC2_CC20IC_IR,r4 4914/ C00E1C : 4915/ C00E1C : E6 F0 54 E9 mov r0,#P10_IOCR10 ; P10.10 4916/ C00E20 : E6 F1 80 00 mov r1,#80h ; auf normalen Ausgang stellen 4917/ C00E24 : B8 10 mov [r0],r1 4918/ C00E26 : 4919/ C00E26 : E6 F0 4E E9 mov r0,#P10_IOCR07 ; P10.7 4920/ C00E2A : E6 F1 80 00 mov r1,#80h ; auf normalen Ausgang stellen 4921/ C00E2E : B8 10 mov [r0],r1 4922/ C00E30 : 4923/ C00E30 : 7F DB bset P10_OUT_P7 ; Portwackler 4924/ C00E32 : CC 00 nop 4925/ C00E34 : 7E DB bclr P10_OUT_P7 4926/ C00E36 : 4927/ C00E36 : 4928/ C00E36 : 4929/ C00E36 : 4930/ C00E36 : DB 00 rets 4931/ C00E38 : 4932/ C00E38 : 4933/ C00E38 : [ERU_REQUEST_20_DO] endsection 4934/ C00E38 : 4935/ C00E38 : 4936/ C00E38 : 4937/ C00E38 :