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


von xeus (Gast)


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

von Axel R. (Gast)


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.

von xeus (Gast)


Lesenswert?

Also quasie so,

if usr.rxc=1 then
 inputbin x


stimmt das so? werds mal testen

gruß

xeus

von xeus (Gast)


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

von AxelR. (Gast)


Lesenswert?

Womit programmierst Du?

von xeus (Gast)


Lesenswert?

Bascom

von AxelR. (Gast)


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.

von AxelR. (Gast)


Lesenswert?

X noch auf NULL setzten

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

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.