Hallo,
bei mir tritt der Fehler auf, dass bei {$NOSHADOW} _ACCBLO und _ACCBHI nicht gesichert werden.
Gruß
Thomas.AC
Interrupt PORTD_INT0;
begin
ASM;
// hallodu
ENDASM;
if Bit(PIND,1) then // no card
USARTE0DATA := byte('a');
else
USARTE0DATA := byte('b');
endif;
INTFLAGSD := BIT0_bm; //clear flag
end;
SYSTEM.$INTERRUPT_PORTD_INT0:
CLI
PUSH _ACCCLO
PUSH _ACCCHI
PUSH _ACCB
PUSH _ACCA
IN _ACCA, SREG
PUSH _ACCA
IN _ACCA, EIND
PUSH _ACCA
CALL dactest.INTERRUPT_PORTD_INT0
POP _ACCA
OUT EIND, _ACCA
POP _ACCA
OUT SREG, _ACCA
POP _ACCA
POP _ACCB
POP _ACCCHI
POP _ACCCLO
SEI
RETI
.FUNC INTERRUPT_PORTD_INT0, 0024Ah, 00020h
dactest.INTERRUPT_PORTD_INT0:
.RETURNS -1
.BLOCK 587
.ASM
// hallodu
.endasm
.LINE 591
LDI _ACCBLO, PIND AND 0FFh
LDI _ACCBHI, PIND SHRB 8
LDI _ACCA, 001h
CALL SYSTEM.TestBit8
TST _ACCA
.BRANCH 4,dactest._L1807
BRNE dactest._L1807
.BRANCH 20,dactest._L1805
JMP dactest._L1805
dactest._L1807:
.BLOCK 593
.LINE 593
LDI _ACCA, 061h
STS USARTE0DATA, _ACCA
.ENDBLOCK 597
.BRANCH 20,dactest._L1806
JMP dactest._L1806
dactest._L1805:
.BLOCK 597
.LINE 597
LDI _ACCA, 062h
STS USARTE0DATA, _ACCA
.ENDBLOCK 598
dactest._L1806:
.LINE 599
LDI _ACCA, 001h
STS INTFLAGSD, _ACCA
.ENDBLOCK 600
dactest.INTERRUPT_PORTD_INT0_X:
.LINE 600
.BRANCH 19
RET
.ENDFUNC 600
bei mir tritt der Fehler auf, dass bei {$NOSHADOW} _ACCBLO und _ACCBHI nicht gesichert werden.
Gruß
Thomas.AC
Code
Interrupt PORTD_INT0;
begin
ASM;
// hallodu
ENDASM;
if Bit(PIND,1) then // no card
USARTE0DATA := byte('a');
else
USARTE0DATA := byte('b');
endif;
INTFLAGSD := BIT0_bm; //clear flag
end;
Code
SYSTEM.$INTERRUPT_PORTD_INT0:
CLI
PUSH _ACCCLO
PUSH _ACCCHI
PUSH _ACCB
PUSH _ACCA
IN _ACCA, SREG
PUSH _ACCA
IN _ACCA, EIND
PUSH _ACCA
CALL dactest.INTERRUPT_PORTD_INT0
POP _ACCA
OUT EIND, _ACCA
POP _ACCA
OUT SREG, _ACCA
POP _ACCA
POP _ACCB
POP _ACCCHI
POP _ACCCLO
SEI
RETI
Code
.FUNC INTERRUPT_PORTD_INT0, 0024Ah, 00020h
dactest.INTERRUPT_PORTD_INT0:
.RETURNS -1
.BLOCK 587
.ASM
// hallodu
.endasm
.LINE 591
LDI _ACCBLO, PIND AND 0FFh
LDI _ACCBHI, PIND SHRB 8
LDI _ACCA, 001h
CALL SYSTEM.TestBit8
TST _ACCA
.BRANCH 4,dactest._L1807
BRNE dactest._L1807
.BRANCH 20,dactest._L1805
JMP dactest._L1805
dactest._L1807:
.BLOCK 593
.LINE 593
LDI _ACCA, 061h
STS USARTE0DATA, _ACCA
.ENDBLOCK 597
.BRANCH 20,dactest._L1806
JMP dactest._L1806
dactest._L1805:
.BLOCK 597
.LINE 597
LDI _ACCA, 062h
STS USARTE0DATA, _ACCA
.ENDBLOCK 598
dactest._L1806:
.LINE 599
LDI _ACCA, 001h
STS INTFLAGSD, _ACCA
.ENDBLOCK 600
dactest.INTERRUPT_PORTD_INT0_X:
.LINE 600
.BRANCH 19
RET
.ENDFUNC 600
