Frage zum JTAG-Debuging AVR Studio4 und IRQ's

Gast #465050
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 ?????

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren