Interrupt will nicht

Gast #224837
Lesenswert?

Hallo,
ich habe gerade versucht mit dem Interrupt an meinem AT89S8252 zu
arbeiten, aber es klappt nicht so ganz.
Ich habe den ASM Code aus dem Anhang hineingeschrieben.
Ich wollte das wenn ein Interrupt an Int0 auf Port P3.2 ausgelöst wird,
eine LED an Port P2.0 aus geht, also nicht mehr leuchtet. An Port 2 ist
ein ULN2803 angeschlossen der als inverter eingesetzt wird.
Was ich beobachten konnte, war das die LED ohne auch nur einen
Interrupt  ausgelöst zu bekommen aus ging. Warum ist das so? Ist an
meinem Code was nicht richtig? Ich hoffe da kann jemand licht ins
dunkel bringen.
Gruß Marcus
Angehängte Dateien:
Gast #224839
Lesenswert?

schau mal bei Atmel, die haben Datenblätter für ihre Prozessoren - da
stehen u.a. bestimmt auch die Vektoren drin....
Ich benutze die nicht, deshalb kann ich die auch keine direkte Antwort
geben.
#224841
Lesenswert?

So ein ähnliches Problem hab ich auch.

Bei mir ist's der ATmega8.

Egal was ich mache, sobald ich die Interupts wie im AVR-Tutorial
http://www.mikrocontroller.net/tutorial/interrupts
im Beispiel extinttest.asm gezeigt verwende, werden die B-Ports auf low
gesetzt und ich kan an den Tasten herumdrücken ohne dass etwas
passiert.

Ich bin auch immer noch am Suchen.
Eventuell hast du den gleichen Fehler wie ich.

mfg Alex
Gast #224842
Lesenswert?

Ein 8051-Programm startet an der Adresse 00000h und nicht an 01000h.

Es läuft also durch die leeren 0FFh durch und führt brav das CLR P2.0
aus. Und danach läuft es in den Wald (wohin zufällig R6,R7 zeigt).


Wenn Du schon weißt, daß der Vector 00003h heißt, warum schreibst Du
dann 000A8h ?
Da kannst Du nämlich lange auf einen Interrupt warten.


Peter

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