Hallo ich versuche mit inkey() (Bascom) Zeichen aus dem Buffer zu lesen. dim Name as byte (string habe ich auch schon versucht) Do Name = Inkey() If Err = 0 Then Print Name End If Wait 1 Loop Beim Compilieren meldet der Compiler Fehler 338 as erwartet in der Zeile -> Name= inkey() Weiß jemand warum bzw was ich falsch mache. Gruß Günter
Versuche mal: If Name > 0 then print Name. Nur dann, wenn im Puffer ein Zeichen liegt, dann gib auch das Zeichen aus. MfG Paul
hallo benenn die variable um. "name" als variablen-name ist nicht zulaessig gß rsz
korrekt, name darf nicht sein, desweiteren ist der Wert als Byte zu dimensionieren also dim xbyte as byte. ausserdem ist inkey ne dumme funktion, kannste auch gleich das UDR-Register auslesen, also xbyte=udr
Marko wrote: > > ausserdem ist inkey ne dumme funktion, kannste auch > gleich das UDR-Register auslesen, also > xbyte=udr Welche Funktion wäre besser ? Im Moment probiere ich gerade mit GET herum, was auch ganz gut funktioniert, solange es etwas zu "getten" gibt. Wenn aber keine Datem kommen, wartet der Mega8 bis er schwarz ist (ist er zwar sowieso schon ;-)) und ist für nichts anderes mehr zu gebrauchen. Hintergrund: Ich möchte mit dem AVR SMS aus einem Nokia 6210 auslesen, um daraufhin Schaltfunktionen auszulösen. Allerdings soll der AVR auch seine Eingänge abfragen, um im Fall des Falles eine Meldung über das Handy absetzten zu können. Gruß Günter
wie gesagt, anstatt INKEY einfach direkt das UDR Register auslesen, also dann: xybyte = UDR
Hallo Ich habe das mit dem UDR einlesen mal probiert. Funktioniert in der Simulation auch ganz gut. In der Realität liest mir das Programm immer das letzte Zeichen erneut ein, selbst wenn ich das serielle Kabel abziehe. Muss ich da irgendeinen Puffer löschen ? a = udr B = chr(a) Gruß Günter
UART verfügt über ein Register, in dem ein Bit gesetzt wird, wenn ein neues Zeichen eingetroffen ist. Dies kann man prüfen. Oder man nimmt gleich den Interrupt, der für RX vorhanden istl. Nähere Informationen findet man im Datenblatt. ...
Vielen Dank Es funktioniert :-))) If usr.rcx = 1 then a=udr else was anderes end if Gruß Günter
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.