8-Bit-Nirvana Startseite  
?DISLIKE DISK DRIVE ERROR IN 8000
[ Home | Index | Werbung | Forum | Flohmarkt | Gästebuch | Links | Info ]

8-Bit-Forum

"ATtiny2313 und Interrupt" von LotharK
(23.2.2007, 09:19)

(Dieser Artikel wurde 5443 mal aufgerufen)

Antworten: Re: ATtiny2313 und Interrupt (Sascha Hoogen)

[ Antwort schreiben | Übersicht | Thema ]

Hallo Leute,
seit ein paar Tagen beschäftige ich mich mit Controllern von ATM. Ich habe mir dazu das STK500 gekauft.

Schon bei dem Versuch, den Interrupt eines ATtiny2313 anzusprechen, scheitere ich kläglich. Folgenden Code habe ich mir dazu zusammengesucht.

.NOLIST
.INCLUDE "tn2313def.inc"
.LIST
; Universalregister definieren
.DEF mp = R16

; Reset-Vektor auf Adresse 0000

rjmp main
rjmp Int00 ; Int0-Interrupt
rjmp int01 ; Int1-Interrupt
reti ; TC1-Capture
reti ; TC1-Compare A
reti ; TC1-Compare B
reti ; TC1-Overflow
reti ; Timer/Counter 0 Overflow, mein Sprung-Vektor
reti ; Serial Transfer complete
reti ; UART Rx complete
reti ; UART Data register empty
reti ; UART Tx complete
reti ; Analog Comparator

;Interruptroutine fuer INT0 und INT1

Int00:
in ri,SREG ; Rette den Inhalt des Flag-Registers
ldi mp,0x0 ; Initiate Timer/Counter 0 Vorteiler
ldi mp, 0xF0
OUT PIND, mp ; Zur Kontrolle einige LEDs schalten
out SREG,ri ; Stelle Flag-Register wieder her
reti

Int01:
in ri,SREG ; Rette den Inhalt des Flag-Registers
ldi mp,0x0 ; Initiate Timer/Counter 0 Vorteiler
ldi mp, 0x0F
OUT PIND, mp ; Zur Kontrolle einige LEDs schalten
out SREG,ri ; Stelle Flag-Register wieder her
reti

; Hauptprogramm beginnt hier

main:
ldi mp,LOW(RAMEND) ;Initiate Stackpointer
out SPL,mp ; wegen Interrupts und Unterprogr.


; Interrupts 0 und 1 freigeben

ldi mp, 0b00001010 ; INT0 und INT1 konfigurieren
out MCUCR, mp

ldi mp, 0b11000000 ; INT0 und INT1 aktivieren
out EIFR, mp

sei ; Gib Interrupts im Status-Register frei

loop:
NOP ; Schicke CPU schlafen
rjmp loop

Eigentlich sollte er erst mal nichts anderes tun, als bei Signal an PIND2 und PIND3 auf die Interrupts zu reagieren.

Kann mir mal bitte jemand sagen, wo da der Fehler liegt?

MfG LotharK




Lesezeichen für diesen Beitrag: del.icio.us del.icio.us Bei Mister Wong speichern Mister Wong Seite bei LinkARENA speichern LinkARENA Digg it Digg Slashdot it Slashdot StumbleUpon StumbleUpon


Antwort schreiben

Hier kannst Du auf die angezeigte Nachricht antworten. Beachte bitte die folgenden Punkte:
  • Dieses Forum befasst sich ausschließlich mit 8-Bit-Computern und Videospielen, Artikel zu anderen Themen sind off-topic und unerwünscht (für Computer mit mehr als 8 Bit gibt es hier aber auch ein eigenes Forum). Wenn der Vorschreiber schon vom Thema abweicht und Du unbedingt antworten möchtest, dann schreibe ihm lieber per e-mail.
  • Schreibe bitte so, dass sich niemand beleidigt oder angegriffen fühlt, auch wenn der Vorschreiber sich bereits im Ton vergriffen haben sollte. Solche Sachen löst man eh besser privat per e-mail.
  • Im Eingabefeld wird der komplette Text zitiert. Kürze die Zitate bitte so weit wie möglich, damit unnötiger Ballast vermieden wird. Hinweise zu richtigem und falschem Quoting findest Du hier: learn.to/quote.
Name:
E-mail:
Betreff:
Antwort:
Klicke bitte das Feld links an, falls Du Antworten auf diese Nachricht auch per E-mail bekommen möchtest.


       

Achtung: "SPAMFALLE" heißt nicht ohne Grund so, keinesfalls benutzen!



Mozilla Sidebar Opera Sidebar RSS 0.91 Newsfeed RSS 2.0 Newsfeed Add to Google Add to MyYahoo Spam Poison
Mozilla Sidebar Opera Sidebar RSS 0.91 Feed RSS 2.0 Feed Add to Google My Yahoo! Spam Poison

[ Index | Werbung | Forum | Flohmarkt | Gästebuch | Links | Info | Impressum/Datenschutz | News | Credits | Webmasters | Seitenanfang ]