Forum: Mikrocontroller und Digitale Elektronik Frage zum JTAG-Debuging AVR Studio4 und IRQ's


von Christof Rieger (Gast)


Lesenswert?

AD-Wandler im Polling mit JTAG-Debuging verfolgen geht!

;**** includes ****
.include "m32def.inc"

.CSEG
.ORG 0x00
    rjmp  RESET ; Reset Handler
    reti ;EXT_INT0 ; IRQ0 Handler
    reti ;EXT_INT1 ; IRQ1 Handler
    reti ;EXT_INT2 ; IRQ2 Handler
    reti ;TIM2_COMP ; Timer2 Compare Handler
    reti ;TIM2_OVF ; Timer2 Overflow Handler
    reti ;TIM1_CAPT ; Timer1 Capture Handler
    reti ;TIM1_COMPA ; Timer1 CompareA Handler
    reti ;TIM1_COMPB ; Timer1 CompareB Handler
    reti ;TIM1_OVF ; Timer1 Overflow Handler
    reti ;TIM0_COMP ; Timer0 Compare Handler
    reti ;TIM0_OVF ; Timer0 Overflow Handler
    reti ;SPI_STC ; SPI Transfer Complete Handler
    reti ;USART_RXC ; USART RX Complete Handler
    reti ;USART_UDRE ; UDR Empty Handler
    reti ;USART_TXC ; USART TX Complete Handler
        reti bzw.  rjmp  ADCC ; ADC Conversion Complete Handler
    reti ;EE_RDY ; EEPROM Ready Handler
    reti ;ANA_COMP ; Analog Comparator Handler
    reti ;TWI ; Two-wire Serial Interface Handler
    reti ;SPM_RDY ; Store Program Memory Ready Handler
.ORG 0x25
RESET:           ldi r16,high(RAMEND) ; Main program start
    out SPH,r16 ; Set Stack Pointer to top of RAM
    ldi r16,low(RAMEND)-16
    out SPL,r16

    ;Referenzspannung 5V
    ;Eingang Pin 35
    ldi r16, 1<<REFS0|0b00101
    out ADMUX,r16
    ;Bittakt 125kHz
    ;Interrup Enabele
    ;AD-Aktivieren
    ldi r16, 1<<ADEN|1<<ADIE|6
    out ADCSRA,r16

MAIN:           in r16,PINB
    sbic ADCSRA,ADSC
    rjmp MAIN
    sbi ADCSRA,ADSC ;Brakepoint
    rjmp MAIN

Mit Interrupt aber nicht. Die IR-Routine wird nie aufgerufen. Setze ich 
das ADIF Bit per Hand flipt das Programm ganz aus, als wäre der Stack 
fehlerhaft.

.ORG 0x25
RESET:           ldi r16,high(RAMEND) ; Main program start
    out SPH,r16 ; Set Stack Pointer to top of RAM
    ldi r16,low(RAMEND)-16
    out SPL,r16

    ;Referenzspannung 5V
    ;Eingang Pin 35
    ldi r16, 1<<REFS0|0b00101
    out ADMUX,r16
    ;Bittakt 125kHz
    ;Interrup Enabele
    ;AD-Aktivieren
    ldi r16, 1<<ADEN|1<<ADIE|6
    out ADCSRA,r16

    sei
    sbi ADCSRA,ADSC

MAIN:           in r16,PINB
    rjmp MAIN

;**************
;* Interrupts *
;**************

ADCC:           sbi ADCSRA,ADSC ;Brakepoint
    reti

Kann man Interrups nicht Debugen ?????

von Christof Rieger (Gast)


Lesenswert?

Na, kennt keiner das Problem, bin ich alleine doof

von A.K. (Gast)


Lesenswert?

Die Vektoren sind beim Mega32 4 Bytes lang, RETI/RJMP aber nur 2.

von Christof Rieger (Gast)


Lesenswert?

Halleluja,

Typischer Fall von "Change User"

Wer lesen kann und will ist halt klar im Vorteil, ich danke Dir.


Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.