Brauche Hilfe bei Interrupt

Gast #2522905
Juten Tach,

ich hab da mal so ne Frage, ich möchte mit nem AT89S8253 was bauen, ich 
habe nen IR-Empfänger, nen TSOP un jetz will ich immer dann wenn ich was 
mit der Fernbedinung sende, das mein Controller das mitbekommt, am 
besten wäre es über nen ext. Interrupt, jedoch verstehe ich das nicht 
ganz was im Datenblatt steht, gibt es noch eine andere Möglichkeit 
soetwas zu realisieren?!

(Der TSOP ist schon am ext. Interrupt 0 an Port 3.2 angelötet)

Ich Programmiere in Assembler
Gast #2522950
ist doch richtig so wie du es angeschlossen hast um den Interrupt 
einzuseten. Ohne Int verlierst du womoeglich die Anfangsbits.

Du musst zuerst wissen wie das,was du empfangen willst, aussieht.
Darauf richtest du die int-routine aus.
EXT0 und EA freigeben.

Suche dir Int Routinen im Netz und teste die um zb einen Pegel 
einzulesen .
Mache alles Schrittweise, damit du verstehst was du tust.
Keine Angst INT beisst dich nicht.
Ueben & Probieren !
Gast #2522962
Also, mein TSOP liefert mir dauerhaft ein "high", das heißt die daten 
vom TSOP werden invertiert übertragen und in meinem Programm dann so 
umgeandelt, das sie richtig sind für die weiterverarbeitung.

Dann hab ich noch ne frage, da ich ja mit einem LCD am gleichen 
Controller arbeite, kann man auch z.B. wärend der Übertragung an das LCD 
den Interrupt deaktivieren?
Gast #2522971
Und noch ne frage, da mir von nem Lehrer mal gesagt wurde, das man nen 
Interrupt festlegt und dann wenn der Pin das entsprechende Signal 
bekommt, das er dann in nen Programm abschnitt springt, der festgelgt 
ist, stimmt das?
Gast #2523018
Als ich hab da mal ne weitere Frage, ich les mich da grade durch, EA und 
EX0 hab ich auf 1 geseztz im SFR, jetzt steht da das mal IT0 noch 1 oder 
0 setzen muss, aber ich finde im Datenblatt kein IT0, kann mir bitte 
jemand weiterhelfen??


IT0:
0 bedeutet pegelgesteuerter Interrupt
1 bedeutet flankengesteuerter Interrupt
Gast #2523034
Mhm, ok, ich habe es glaub jetzt verstanden, jedoch finde ich nichts, 
das mir sagt, wie man das was unten steht, was in C geschrieben wurde in 
Assembler schreibt.

void ISR_INT0 (void) interrupt 0
{}


Bei Assembler ist der startpunkt so benannt:

cseg at 0


Kann mir bitte jemand helfen??
Gast #2523115
Kann mir denn keiner helfen??

ich hab jetz so viele Seite gelesen, aber überall wird es nur in C 
erklärt, ich glaube ich habe verstanden, wie das Funktionier, jedoch 
weiß ich nicht, wie ich das mit der "Startadresse" des Interupts 
realisiere...
Gast #2523209
Also kann scheinbar keiner weiterhelfen oder wie sehe ich das?

Immer wenn reti ausgeführt wird, dann beginnt der "PC" bei 0 und wenn 
immer dann wen der "PC" bei 3 ist, dann springt er in "int0-Tsop:" wie 
umgehe ich das?
Gast #2523371
du musst eine Stufe weiter unten anfangen.
Interrupts erst wenn du dir selbst helfen kannst.
learning by doing.

kennst du  www.8052.com  ?
da gibt es ein gutes Tutorial.
Das koennte dir helfen.
ciao

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 14 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.