mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Interrupt mit mega169


Autor: Charly Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Zusammen,
ich wollte einfach mal einen Interrupt am mega 169 ausprobieren;
Wechsel von „High“ nach „Low“ an PINB.0 (PCINT8) soll einen Interrupt
auslösen und am PORTD.0 den Ausgang „low“ setzen. Leider habe ich
Probleme bei der Maskierung des Interrupts, so dass mein Programm nicht
läuft.
Kann vielleicht jemand mal einen Blick auf das Programm werfen.
Vielen Dank im Vorraus
Charly

;Reset and Interrupt vector
begin:     rjmp    main  ;1   POWER ON RESET
    rjmp  PCINT  ;2   PCINT8-Interrupt
    reti    ;3   Int1-Interrupt
    reti    ;4   TC2 Compare Match
    reti    ;5   TC2 Overflow
    reti    ;6   TC1 Capture
    reti    ;7   TC1 Compare Match A
    reti    ;8   TC1 Compare Match B
    reti    ;9   TC1 Overflow
    reti    ;10  TC0 Overflow
    reti    ;12  UART Rx Complete
    reti    ;13  UART Data Register Empty
    reti    ;14  UART Tx Complete
    reti    ;15  ADC Conversion Complete
    reti    ;16  EEPROM Ready
    reti    ;17  Analog Comparator
    reti    ;18  TWI (I²C) Serial Interface
    reti    ;19  Store Program Memory Ready
;----------------------------------------------------------------------- 
-
;Start, Power ON, Reset
main:  ldi  r16, low(RAMEND)
    out  SPL, r16
    ldi  r16, high(RAMEND)
    out  SPH, r16

    ldi  r16,0b00000000  ;PORTB Eingang
    out  DDRB,r16

    ldi  r16,0b11111111  ;PORTD Ausgang
    out  DDRD,r16

    ldi  r16,0b11111111  ;PORTD abschalten
    out  PORTD,r16


    ldi r16,0b10000000
    sts  EIMSK,r16

    ldi r16,0b00000001
    sts  PCMSK1,r16

    ;ldi r16,0b00000001
    ;sts  EIFR,r16

    sei

    ;Hier Init-Code eintragen.
;----------------------------------------------------------------------- 
-
mainloop:  wdr
    ;Hier den Quellcode eintragen.
    rjmp mainloop
;----------------------------------------------------------------------- 
-
PCINT:  cli
    cbi  PORTD,0
    sei
    reti

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.