Atmega168 external interrupt int0/int1

Gast #2757723
Lesenswert?

Hey liebe Leute,

Ich lerne zur Zeit die AVR-Programmierung und als übung wollte ich mal 
mit Intterupts arbeiten. Ich habe wie im Datenblatt beschrieben alle 
notwendingen Resgister gesetzt um den Interrupt zu aktivieren. Trotzdem 
kann ich ihn nicht zum auslösen bringen.
Ich hoffe ihr könnt mir weiterhelfen.

 .def temp = r16
 .org 0x000
 jmp main
 .org 0x002
 jmp INT0_Handler


 main:
 ;Stackpointer initialisieren
 ldi temp, HIGH(RAMEND)
 out SPH, temp
 ldi temp, LOW(RAMEND)
 out SPL, temp
 ;INT0 interrupt aktivieren
 ldi temp, (1 << ISC01)
 sts EICRA, temp
 ldi temp, (1 << INT0)
 out EIMSK, temp
 sei
 ;Portein-, Portausgänge initialisieren
 ldi temp, 0x00
 out DDRD, temp
 ldi temp, 0xff
 out PORTD, temp;interne pullups aktivieren
 out DDRB, temp
 out PORTB, temp

 loop:
 in temp, 0xFF
 out PORTB, temp
 rjmp loop

 INT0_Handler:
 in temp, 0x00
 out PORTB, temp
 reti

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