mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik USR.RXC rücksetzen?


Autor: xeus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo,

ich frage mit usr.rxc ab, ob etwas am uart ansteht, dass funzt auch so
weit. das problem ist nur, wenn ich etwas empfangen hab spricht die
abfrage des usr.rxc nicht mehr an, anscheinend geht er dann immer davon
aus etwas zu empfangen.er wartet dann so lange bis ich im etwas zu
empfangen gib. Eigentlich sollte er den wert um 1 erhöhen und die
routine wiederholen.

code:

if usr.rxc=1 then
 inputbin x
 print "x"
else
 incr x
loop

gruß

xeus

Autor: Axel R. (axelr) Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
usr.rxc ist das interruptflag. Das musst du etweder selbst löschen oder
die entsprechende Interruptserviceroutine aufrufen. Diese erledigt das
dann für dich. In dieser Interruptserviceroutine kannst du aber mal
auch gleich INPUTBIN x machen.
AxelR.

Autor: xeus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also quasie so,

if usr.rxc=1 then
 inputbin x


stimmt das so? werds mal testen

gruß

xeus

Autor: xeus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Habs jetzt mal getestet,
bevor ich etwas an den mc sende funktioniert es tadellos, er sendet so
lange pakete bis er etwas erhält. aber wenn er dann einmal etwas
empfangen hat, wartet er nur noch, als ob er etwas empfangen würd,
eigentlich sollte er aber an dieser stelle weiter so lange senden bis
etwas kammt.

HILFE, BITTE;(

gruß

Xeus

Autor: AxelR. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Womit programmierst Du?

Autor: xeus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bascom

Autor: AxelR. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
bascom kann ich nicht wirklich, in FastAVR sähe das so aus:
...
$Baud =9600
Dim x As Byte
Declare Interrupt Urxc()
Declare Sub main()
...
Enable Urxc
...
Enable Interrupts
...
Interrupt Urxc(), Save All
InputBin x
End Interrupt

Sub main()
 If x>0 Then
  'mach was mit x
 End If
End Sub

Gruß
AxelR.

Autor: AxelR. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
X noch auf NULL setzten

Sub main()
 If x>0 Then
  'mach was mit x
   x = 0
 End If
End Sub

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.