Forum: Mikrocontroller und Digitale Elektronik Interrupt mit mega169


von Charly Peter (Gast)


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

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.