mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Interrupt will nicht


Autor: Marcus Gerlach (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: Marcus Gerlach (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Marcus Gerlach (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hab das Datenblatt schon durchgewälzt, aber leider finde ich nichts
darüber :-(

Autor: Alexander __ (bastlwastl)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Peter Dannegger (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Marcus Gerlach (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.