mikrocontroller.net

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


Autor: Alibaba (Gast)
Datum:

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

Autor: Carsten St. (carsten)
Datum:

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

Autor: Mark de Jong (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Und der Interrupt level / Group level richtig gesetzt.

Autor: Alibaba (Gast)
Datum:

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

Autor: Carsten St. (carsten)
Datum:

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

Autor: Alibaba (Gast)
Datum:

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

Autor: Carsten St. (carsten)
Datum:

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

Autor: Alibaba (Gast)
Datum:

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

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.