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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.