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
Hallo, weis denn vielleicht jemand die Einsprungadresse für den Externen Interrupt vom AT89S8252? Also im 8051 ist es ja die Adresse 0003h, aber im At89S8252 ist sie glaube ich anders. Hilfe
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.
Hab das Datenblatt schon durchgewälzt, aber leider finde ich nichts darüber :-(
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
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
Hi, falls es jemandem der auch dieses Problem hat/hatte/haben wird weiter hilft ist hier ein funktionierender code angehängt. Es klappt jetzt endlich. Danke für den Tip Peter
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.