Hallo zusammen, Ich gebe mit Print einen String im ASCII-Format aus. Möchte diesen aber als Zahlenwert (1 = 1) ausgeben und nicht ASCII 1. Wer kann mir helfen, da ich gar nicht weiß, wo ich anfangen soll. Kann mir jemand helfen? Codeausschnitt: Dim Stopzeit As Byte Dim Strstopzeit As String * 3 Dim Strsekunden As String * 2 Dim Strminuten As String * 2 'Ausgabe '*********************************************************************** ******** Sub Ausgeben '*********************************************************************** ******** 'Ausgeben der Stopzeit auf das LCD Display 'Hundertstel Sekunden formatieren Strstopzeit = Str(stopzeit) If Len(strstopzeit) = 1 Then Strstopzeit = "0" + Strstopzeit 'Sekunden formatieren Strsekunden = Str(sekunden) If Len(strsekunden) = 1 Then Strsekunden = "0" + Strsekunden 'Minuten formatieren Strminuten = Str(minuten) If Len(strminuten) = 1 Then Strminuten = "0" + Strminuten 'Auf dem Display ausgeben Lcdtext Strminuten , 20 , 30 , 2 , 0 , 0 Lcdtext ":" , 50 , 30 , 2 , 0 , 0 Lcdtext Strsekunden , 60 , 30 , 2 , 0 , 0 Lcdtext ":" , 90 , 30 , 2 , 0 , 0 Lcdtext Strstopzeit , 100 , 30 , 2 , 0 , 0 'Ausgeben der Stopzeit auf Grossdisplay Print Strminuten ; ":" ; Strsekunden ; ":" ; Strstopzeit ; 'Dieser String soll nicht im ASCII übertragen werden 'Aber wie !!!!!!!!!!!!! Cursor Off End Sub Return Gruss trinity4711
Michael Hamacher schrieb: > Hallo zusammen, > Ich gebe mit Print einen String im ASCII-Format aus. Möchte diesen aber > als Zahlenwert (1 = 1) ausgeben und nicht ASCII 1. > Wer kann mir helfen, da ich gar nicht weiß, wo ich anfangen soll. Kann > mir jemand helfen? Das ist ganz einfach. Du drückst in BASCOM auf F1 oder gehst alternativ zu Tante Google und gibst "BASCOM Online Hilfe" ein oder hast dir gleich in deinem Browser einen Link drauf http://avrhelp.mcselec.com/ bei den Favoriten gesetzt. In der Hilfe gehst du links in der blauen Leiste auf "BASCOM Language Reference", klappst den Punkt auf und suchst dir in der LIste erst mal den PRINT Befehl - deinen Ausgangspunkt. Entweder du liest dir dessen Beschreibung mal durch und findest im Abschnitt 'Siehe auch' eine Referenz auf einen Befehl namens PRINTBIN oder du hast beim Suchen des PRINT Befehls bemerkt, dass der nächste Befehl gleich darunter PRINTBIN heisst. Und das BIN (wie binär) in PRINTBIN klingt erst mal interessant genug, dass man sich die Beschreibung dieses Befehls erst mal reinzieht. Und siehe da: Bingo! Du hast Doku zur Verfügung. Benutze sie!
Hallo, danke erstmals, aber printbin mag keine Strings. Gruss trinity4711
Michael Hamacher schrieb: > Hallo, > danke erstmals, aber printbin mag keine Strings. Na was jetzt. Willst du Zahlen in ihrer Binärform ausgeben oder willst du das nicht? Du musst dich schon entscheiden ob du jetzt Strings hast oder ob du keine Strings hast.
Karl Heinz Buchegger schrieb > Na was jetzt. > Willst du Zahlen in ihrer Binärform ausgeben oder willst du das nicht? > Du musst dich schon entscheiden ob du jetzt Strings hast oder ob du > keine Strings hast. Also mein Problem zur Weiterverarbeitung sind ja die Stringvariablen. Ich möchte diese gern umwandeln, das diese mit meinem Grossdisplay (7-Segmentanzeigen)weiterverarbeitet werden können. Ich weis nicht ob binär geeignet ist ! Gruss trinity4711
Michael Hamacher schrieb: > Also mein Problem zur Weiterverarbeitung sind ja die Stringvariablen. > Ich möchte diese gern umwandeln, das diese mit meinem Grossdisplay > (7-Segmentanzeigen)weiterverarbeitet werden können. Ich weis nicht ob > binär geeignet ist ! Dann gib mal einen Link zum Display. Ehe man einem Gerät etwas schicken kann, muss man doch erst mal genau wissen, was das Teil überhaupt haben will.
Da war doch noch was: http://bascom-forum.de/showthread.php?5083-Probleme-mit-6-stellige-7Segmentanzeige-im-Multiplexbetrieb
Fox Mulder schrieb: > Da war doch noch was: > > http://bascom-forum.de/showthread.php?5083-Problem... Ja, dieser Beitrag stammt auch von mir. Aber helfen konnte mir keiner; deshalb habe ich in diesem Forum gepostet. Gruß trinity4711
Karl Heinz Buchegger schrieb: > Dann gib mal einen Link zum Display. > Ehe man einem Gerät etwas schicken kann, muss man doch erst mal genau > wissen, was das Teil überhaupt haben will. Leider kann ich dir keinen Link schicken, weil das Display Eigenbau ist. Es funktioniert mit festen Zahlen als Test im Display. das Listing steht unter http://bascom-forum.de/showthread.php?5083-Probleme-mit-6-stellige-7Segmentanzeige-im-Multiplexbetrieb/page2&s=4f81e62c9eed40af938779038bab469d
Ein Blick in die Bascon Hilfe bringt der Befehl x = VAL(s) Details nachlesen kannst Du ja selbst.
Michael Hamacher schrieb: > weil das Display Eigenbau ist Da ja der Empfänger sicher auch ein Controller ist und Du dafür zugriff auf die Software hast ist es doch Wurscht was Du überträgst. Musst ja ohnehin im Empfänger das für 7Segment entsprechend codieren.
Sorry, musste mal weg Michael Hamacher schrieb: > Karl Heinz Buchegger schrieb: > >> Dann gib mal einen Link zum Display. >> Ehe man einem Gerät etwas schicken kann, muss man doch erst mal genau >> wissen, was das Teil überhaupt haben will. > > Leider kann ich dir keinen Link schicken, weil das Display Eigenbau ist. Wie? Du baust selber ein Display, programmierst selber die Empfangsroutine vom Display und schaffst es dann nicht, auf der Senderseite das richtige auf den Weg zu schicken? > Es funktioniert mit festen Zahlen als Test im Display. das Listing steht > unter > http://bascom-forum.de/showthread.php?5083-Probleme-mit-6-stellige-7Segmentanzeige-im-Multiplexbetrieb/page2&s=4f81e62c9eed40af938779038bab469d Na ja. Das ist aber noch nicht sehr viel.
Spinn ich? Du empfängst doch als String
1 | STRG = Inkey() |
2 | |
3 | Zeit = STRG 'Zerlegen des empfangenen Strings |
4 | |
5 | 1_sek = Mid(zeit , 8 , 1) |
6 | 10_sek = Mid(zeit , 7 , 1) |
7 | |
8 | 1_min = Mid(zeit , 5 , 1) |
9 | 10_min = Mid(zeit , 4 , 1) |
10 | |
11 | 1_std = Mid(zeit , 2 , 1) |
12 | 10_std = Mid(zeit , 1 , 1) |
13 | |
14 | Zl_sekunde = Val(1_sek) |
15 | Zh_sekunde = Val(10_sek) |
16 | |
17 | Zl_minute = Val(1_min) |
18 | Zh_minute = Val(10_min) |
19 | |
20 | Zl_stunde = Val(1_std) |
21 | Zh_stunde = Val(10_std) |
nur dass du mit INKEY keinen String empfängst, sondern ein einzelnes Zeichen. Aber ASCII ist ASCII. Fang halt mal damit an, dass du dir ein Endezeichen definierst, an dem der EMpfänger erkennen kann "Jetzt ist der String zu ende". Der Empfänger holt sich dann Zeichen um Zeichen von der Seriellen bis er die Ende-Kennung sieht und damit weiß, dass der String vollständig ist. Und das testest du mal, in dem du von einem Terminal aus an dein Display Kommandos schickst, um die anzuzeigende Zeit einzustellen! Oder wenn du besser damit zurecht kommst, dann eben in kleineren Happen. Sagt ja kein Mensch, dass du zum Einstellen der Zeit den String "15:37:00" zum Displayy schicken musst. Du kannst ja auch den String "H15;" schicken und das heißt dann: stelle die Stunden auf 15 Und "M37;" heißt: Minuten auf 37 stellen. Der Buchstabe sagt dem Display welcher WErt zu verändern ist. Nach dem Buchstaben kommen die Ziffern und wenn das Display den ';' empfängt weiß es, dass jetzt die 'Zahl' vollständig übertragen wurde und dass es die interne Variable jetzt mit dem Wert updaten soll. Dein Sendecode für den AVR in diesem Thread, den legst du erst mal zur Seite. Das hat doch keinen Sinn da jetzt einen 2 Frontenkrieg zu führen, wenn dein Display-Code noch nicht mal fertig ist! Die Sache wird doch nicht einfacher, indem du noch eine Baustelle und noch eine Baustelle aufmachst. Und lies die Doku von INKEY. Das ist doch lächerlich, dass man den BASCOM Leuten das immer wieder sagen muss!
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.