www.mikrocontroller.net

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


Autor: Christof Rieger (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 ?????

Autor: Christof Rieger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Na, kennt keiner das Problem, bin ich alleine doof

Autor: A.K. (Gast)
Datum:

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

Autor: Christof Rieger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Halleluja,

Typischer Fall von "Change User"

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


Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.