This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

2812 interrupt program. help me plz !

What is the mistake in this program? The PIECTRL register is showing the vector ID of the generated interrupt but is not able to ma to the ISR


.data
WDCR .set 0x7029
WDKEY .set 0x7025
GPTCONA .set 0x7400
T1CNT .set 0x7401
T1CMPR .set 0x7402
T1PR .set 0x7403
T1CON .set 0x7404
COMCONA .set 0x7411
ACTRA .set 0x7413
CMPR1 .set 0x7417
CMPR2 .set 0x7418
CMPR3 .set 0x7419
PLLCR .set 0x7021
PCLKCR .set 0x701C
EXTCONA .set 0x7409
GPAMUX .set 0x70C0
GPADAT .set 0x70E0
GPBMUX .set 0x70C4
DBTCONA .set 0x7415
EVAIER .set 0x7426
EVAIFR .set 0x742F
HISPCP .set 0x701A
LOSPCP .set 0x701B
GPADIR .set 0x70C1
EVAIMRA .set 0x742C
PIECTRL .set 0x00000CE0
NORMAL .set 0x061B
; Pie acknowledge register
PIEACK .set 0x00000CE1

; Pie Interrupt Enable Registers
PIEIER1 .set 0x00000CE2
PIEIER2 .set 0x00000CE4
PIEIER3 .set 0x00000CE6
PIEIER4 .set 0x00000CE8
PIEIER5 .set 0x00000CEA
PIEIER6 .set 0x00000CEC
PIEIER7 .set 0x00000CEE
PIEIER8 .set 0x00000CF0
PIEIER9 .set 0x00000CF2
PIEIER10 .set 0x00000CF4
PIEIER11 .set 0x00000CF6
PIEIER12 .set 0x00000CF8

; Pie Interrupt flag registers
PIEIFR1 .set 0x00000CE3
PIEIFR2 .set 0x00000CE5
PIEIFR3 .set 0x00000CE7
PIEIFR4 .set 0x00000CE9
PIEIFR5 .set 0x00000CEB
PIEIFR6 .set 0x00000CED
PIEIFR7 .set 0x00000CEF
PIEIFR8 .set 0x00000CF1
PIEIFR9 .set 0x00000CF3
PIEIFR10 .set 0x00000CF5
PIEIFR11 .set 0x00000CF7
PIEIFR12 .set 0x00000CF9
.bss EMPTY, 1
.sect "reset"
.long INIT ; RESET Vector
.sect "vectors"

.long ERROR ; ISR1 not implemented
.long ERROR ; ISR2 not implemented
.long ERROR ; ISR3 not implemented
.long ERROR ; ISR4 not implemented
.long ERROR ; ISR5 not implemented
.long ERROR ; ISR6 not implemented
.long ERROR ; ISR7 not implemented
.long ERROR ; ISR8 not implemented
.long ERROR ; ISR9 not implemented
.long ERROR ; ISR10 not implemented
.long ERROR ; ISR11 not implemented
.long ERROR ; ISR12 not implemented
.long ERROR ; ISR13 not implemented
.long ERROR ; ISR14 used by Timer2

.sect "pievt"
PIEVT: .long ERROR
.long ERROR ;ISR1_2
.long ERROR ;ISR1_3
.long ERROR ;ISR1_4
.long ERROR ;ISR1_5
.long ERROR ;ISR1_6
.long ERROR ;ISR1_7
.long ERROR ;ISR1_8
.long ERROR ;ISR2_1
.long ERROR ;ISR2_2
.long ERROR ;ISR2_3
.long SINE ;ISR2_4 ;ʼþ¹ÜÀíÆ÷A¨Ê±Æ÷ÖÜÆÚÖÐÏT1PINT
.long ERROR ;ISR2_5 ;ʼþ¹ÜÀíÆ÷A¨Ê±Æ÷±È½ÏÖÐÏT1CINT
.long ERROR ;ISR2_6
.long ERROR ;ISR2_7
.long ERROR ;ISR2_8
.long ERROR ;ISR3_1
.long ERROR ;ISR3_2
.long ERROR ;ISR3_3
.long ERROR ;ISR3_4
.long ERROR ;ISR3_5
.long ERROR ;ISR3_6
.long ERROR ;ISR3_7
.long ERROR ;ISR3_8
.long ERROR ;ISR4_1
.long ERROR ;ISR4_2
.long ERROR ;ISR4_3
.long ERROR ;ISR4_4
.long ERROR ;ISR4_5
.long ERROR ;ISR4_6
.long ERROR ;ISR4_7
.long ERROR ;ISR4_8
.long ERROR ;ISR5_1
.long ERROR ;ISR5_2
.long ERROR ;ISR5_3
.long ERROR ;ISR5_4
.long ERROR ;ISR5_5
.long ERROR ;ISR5_6
.long ERROR ;ISR5_7
.long ERROR ;ISR5_8
.long ERROR ;ISR6_1
.long ERROR ;ISR6_2
.long ERROR ;ISR6_3
.long ERROR ;ISR6_4
.long ERROR ;ISR6_5
.long ERROR ;ISR6_6
.long ERROR ;ISR6_7
.long ERROR ;ISR6_8
.long ERROR ;ISR7_1
.long ERROR ;ISR7_2
.long ERROR ;ISR7_3
.long ERROR ;ISR7_4
.long ERROR ;ISR7_5
.long ERROR ;ISR7_6
.long ERROR ;ISR7_7
.long ERROR ;ISR7_8
.long ERROR ;ISR8_1
.long ERROR ;ISR8_2
.long ERROR ;ISR8_3
.long ERROR ;ISR8_4
.long ERROR ;ISR8_5
.long ERROR ;ISR8_6
.long ERROR ;ISR8_7
.long ERROR ;ISR8_8
.long ERROR ;ISR9_1
.long ERROR ;ISR9_2
.long ERROR ;ISR9_3
.long ERROR ;ISR9_4
.long ERROR ;ISR9_5
.long ERROR ;ISR9_6
.long ERROR ;ISR9_7
.long ERROR ;ISR9_8
.long ERROR ;ISR10_1
.long ERROR ;ISR10_2
.long ERROR ;ISR10_3
.long ERROR ;ISR10_4
.long ERROR ;ISR10_5
.long ERROR ;ISR10_6
.long ERROR ;ISR10_7
.long ERROR ;ISR10_8
.long ERROR ;ISR11_1
.long ERROR ;ISR11_2
.long ERROR ;ISR11_3
.long ERROR ;ISR11_4
.long ERROR ;ISR11_5
.long ERROR ;ISR11_6
.long ERROR ;ISR11_7
.long ERROR ;ISR11_8
.long ERROR ;ISR12_1
.long ERROR ;ISR12_2
.long ERROR ;ISR12_3
.long ERROR ;ISR12_4
.long ERROR ;ISR12_5
.long ERROR ;ISR12_6
.long ERROR ;ISR12_7
.long ERROR ;ISR12_8
.def _c_int00
.text
_c_int00:
.c28_amode


INIT:
CLRC AMODE
SETC OBJMODE
DINT AND IFR,#0x0000
OR IER,#0x0000
AND IFR, #0x0000
MOV @SP,#0x400
MOVW DP,#51
EALLOW
MOV @36,#0x0008
MOV @32,#0x01
MOV @33,#0x0ff
MOVW DP,#448
OR IER, #0x0002
CLRC INTM
EALLOW

MOV @41,#0x0068

MOV @37,#0x0055
MOV @37,#0x00AA
MOV @33,#0Ah
MOV @26,#0x0001
MOV @27,#0x0002
MOV @28,#0x5D09
EDIS

MOVW DP,#451
EALLOW


MOV @0,#0x00FF

MOV @1,#0x0000
EDIS

MOVW DP,#464
EALLOW

MOV @0,#0x6049
MOV @4,#0x0842
MOV @17,#0xA600
MOV @19,#0x0666
MOV @21,#0x0000
MOV @1,#0x0000

MOV @3,#0x1388

MOV @23,#0x0C00
MOV @24,#0x0C00
MOV @25,#0x0C00


MOV @47,#0x0ffff
MOV @44,#0x0080
EDIS
MAIN:
MOVW DP,#448
EALLOW
MOV @41,#0x0068

MOV @37,#0x0055
MOV @37,#0x00AA
BCND MAIN, UNC




ERROR:
NOP
NOP
NOP
CLRC INTM ;¿ª×ÜÖÐÏ£ÒòΪÒ"½øÈëÖÐÏ£Ó²¼þ×Ô¯¹ØÁË×ÜÖÐÏ
MOV DP,#033H
MOV @PIEACK,#0FFH ;ÇåEVAʼþ¹ÜÀíÆ÷Ó¦´ðÐźţÒòΪÕâ¸ö±êÖ¾Ò"½øÈëÖÐϾͱ"Ó²¼þ×Ô¯ÖÃ1£ËùÒÔÐèҪдÈë1À´ÇåÁã
MOV DP,#1D0H
MOV @47,#0FFH ;ÇåEVAʼþ¹ÜÀíÆ÷ÖÐϱêÖ¾£Õâ¸ö±êÖ¾ÐèÒªÊÖ¯Çå³ý
MOV @48,#0FFH ;ÇåEVAʼþ¹ÜÀíÆ÷ÖÐϱêÖ¾£Õâ¸ö±êÖ¾ÐèÒªÊÖ¯Çå³ý
MOV @49,#0FFH ;ÇåEVAʼþ¹ÜÀíÆ÷ÖÐϱêÖ¾£Õâ¸ö±êÖ¾ÐèÒªÊÖ¯Çå³ý
NOP
IRET

SINE:

MOV AL, #0x0050
;¿ª×ÜÖÐÏ£ÒòΪÒ"½øÈëÖÐÏ£Ó²¼þ×Ô¯¹ØÁË×ÜÖÐÏ
MOV DP,#033H
EALLOW
MOV @PIEACK,#0x0002 ;ÇåEVAʼþ¹ÜÀíÆ÷Ó¦´ðÐźţÒòΪÕâ¸ö±êÖ¾Ò"½øÈëÖÐϾͱ"Ó²¼þ×Ô¯ÖÃ1£ËùÒÔÐèҪдÈë1À´ÇåÁã
MOV DP,#1D0H
MOV @47,#80H ;ÇåEVAʼþ¹ÜÀíÆ÷ÖÐϱêÖ¾£Õâ¸ö±êÖ¾ÐèÒªÊÖ¯Çå³ý
CLRC INTM
IRET
I am just loading a value into the accumulator during an interrupt, just to test the ISR