Forum: Mikrocontroller und Digitale Elektronik c167 L40M, ISR, Auslösen


von Alibaba (Gast)


Lesenswert?

Hallo, Ich wollte mit einer Schleife den Interrupt ASC0 Receive 
auslösen,
allerdings klappt es nicht so wie ich es gerne wollte?

Muß ich nicht einfach den Enable flag (receive bit) auf eins setzen und 
die Interrupt routine wird dan ausgelöst??

.
.
S0RIE = 1;??
IEN = 1;
.
.

Danke

von Carsten S. (carsten)


Lesenswert?

Mit diesen Einstellungen hast du den Interrupt enabled. Es ist also 
möglich dass die Schnittstelle ein Interrupt auslöst.
Um den Interrupt auch tatsächlich anzufordern muss das Request-Bit 
gesetzt sein (S0RIR). Dies sollte auch von der Hardware gesetzt werden 
wenn du etwas empfangen hast.

von Mark de Jong (Gast)


Lesenswert?

Und der Interrupt level / Group level richtig gesetzt.

von Alibaba (Gast)


Lesenswert?

Das heißt,  das man am besten etwas in den S0RBUF schreiben sollte und 
dann den den Interrupt wie oben enable`n.

S0RBUF = 'a';
S0RIE=1;
IEN =1;

von Carsten S. (carsten)


Lesenswert?

Das S0RBUF ist read only!
Wenn du das Request-Bit setzt solltest du erkennen können das der µC den 
Empfangs-Interrupt auslöst. In das S0RBUF bekommst du die Daten nur über 
die externe Schnittstelle rein (was auch der Sinn der Schnittstelle ist)

von Alibaba (Gast)


Lesenswert?

ich wollte durch einen String z.B. offset[] = {"*1,asdfghj"};
eine Eingabe(*1,asdfghj) durch die erste Serielle schnittstelle 
simulieren um zu gucken wie sich die Ausgabe an meiner zweiten 
seriellen(UART) verhält.
Und da die erste serille bei mir Interrupt gesteuert ist, will ich den 
interruppt manuel bzw in einer schleife 256mal, die im main() 
implementiert ist, auslösen.

Ist das Überhaubt möglich??

von Carsten S. (carsten)


Lesenswert?

Sende doch deinen String von einem PC an den µC. Dann siehst du ob es 
richtig läuft. Und um den Interrupt zu testen kannst du da ja eine LED 
toggeln -> die müsste blinken wenn du Daten empfängst.

von Alibaba (Gast)


Lesenswert?

hab ich ja schon, benutze das Hyperterminal um zu senden und zu 
empfangen es klappt auch, nur der Empfänger den ich an der zweiten sitzt 
will das aus irgend einem Grund nicht akzeptieren, wollte deshalb den 
string den ich schicken will 256mal den Empfänger schicken, um zu gucken 
ob er irgend wann, den String akzeptiert, bzw. was er mir antwortet.

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
Noch kein Account? Hier anmelden.