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
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 !
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?
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?
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
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??
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...
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?
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