pacer_one,
Dein Programm hat keine offensichtlichen Fehler. Unsicher bin ich nur an einer Stelle: Ich weiss nicht sicher, ob Du die ".org"-Direktive in demselben Segment zweimal verwenden darfst. Versuchsweise könntest Du den Platz zwischen "rjmp Init" und der Adresse 0x000D mit "reti"-Anweisungen füllen. Z.B. so:
Code:
.CSEG
.ORG $0000
;*------------------------------------
;
; Reset- and Interrupttabelle
;
rjmp INIT ; 1 - Reset/Init-Routine
reti; IINT0 2 - External Interrupt Request 0
reti; IINT1 3 - External Interrupt Request 1
reti; T2_CMP 4 - Timer/Counter2 Compare match
reti; T2_OVF 5 - Timer/Counter2 Overflow
reti; T1_CPT 6 - Timer/Counter1 Capture event
reti; T1_CMPA 7 - Timer/Counter1 Compare A match
reti; T1_CMPB 8 - Timer/Counter1 Compare B match
reti; T1_OVF 9 - Timer/Counter1 Overflow
reti; T0_OVF 10 - Timer/Counter0 Overflow
reti; SPI_STC 11 - Serial Transfer Complete
reti; RX_FULL 12 - UART Rx char available
reti; TX_EMPT 13 - UART Tx data register empty
rjmp serout; TX_DONE 14 - UART Tx complete
reti; ADC_DONE 15 - ADC conversion complete
reti; EE_RDY 16 - EEPROM Ready
reti; ANA_CMP 17 - Analog comparator
reti; TWI_INT 18 - Two-wire Interface
reti; IINT2 19 - External Interrupt Request 2
reti; T0_CMP 20 - Timer/Count0 Compare match
reti; SPM_RDY 21 - Store Program Memory ready
rjmp INIT ; falls das Programm jemals hier ankommt, ...
; .. dann ist was schief gegangen.
Dann bist Du sicher, dass es nicht an der zweiten "org"-Direktiven lag.
Sonst fällt mir an Deinem Programm wirklich nichts auf.
Hat's geholfen?
mare_crisium
Lesezeichen