
|
INFO - FAQ - CC2-Forum - CCPro-Forum |
|
Hallo Dieter, das Problem konnte teilweise gelöst werden. Daten Einlesen geht jetzt. Wichtig war im Befehl OPEN "O",#1,"AUX:" dass ich AUX mit Doppelpunkt (:) versehen hatte. Da hat mir Dein Hinweis sehr geholfen. Danke nochmals dafür. Jedoch habe ich nun ein Problem die Daten in der richtigen Reihenfolge in den String A$ eingelesen und ausgedruckt zu bekommen. Siehe weiter unten! Hast Du eine Idee, wie man das richtig löst? '***RS232_01:BAS ' A=0 START: Cls Clear Close #1 Print "Inp?(1)=";Inp?(1), !174:teilt mit ob von Port1=RS232 ein Byte gelesen werden kann Print "Lof(#1)=";Lof(#1), !41 :liefert die Länge einer Datei in Byte Print "Eof(#1)=";Eof(#1), !40 :Fileende ereicht=0; bei letztem Byte=-1 Print "Loc(#1)=";Loc(#1), !40 :liefert den Abstand des Filepointers zum Dateianfang Print "LEN(A$)=";Len(A$) !77 :liefert die Länge des Strings der angegebenen Variablen ! Print "Val?(A$)=";Val?(A$),!122:ermittelt die Anzahl der Zeichen von Stringanfang Print "Val(A$)=";Val(A$) !121:wandelt die am Stringanfang stehenden Zeichen in numerische Werte IF Inp?(1)=0 Then ! Fragt RS232 Port des Atari ab ob ein Byte gelesen werden kann Print "Inp?(1)= ";Inp?(1) A=A+1 ! Schleifevariable zur Kontrolle ob Schleife durchlaufen wird Print "THEN_A= ";A Else OPEN "O",#1,"AUX:" !hinter AUX muss Doppelpunkt stehen; oeffnet RS232 Port zum lesen von Daten ' Print "LEN(A$)=";Len(A$) !77 :liefert die Länge des Strings der angegebenen Variablen ! ' Print "Val?(A$)=";Val?(A$),!122:ermittelt die Anzahl der Zeichen von Stringanfang ' Print "Val(A$)=";Val(A$) !121:wandelt die am Stringanfang stehenden Zeichen in numerische Werte A$=Input$(32,#1) !Input$(Anzahl,#1):Gfa Basic erfordert eine Zahl im Platzhalter Anzahl; RS232 Daten sollen als String an A$ übergeben werden Print "A$= ";A$ ' Print "Inp(#1)=";Inp(#1) !47 :gibt den ASCCI Wert des Zeichens aus Input #1,U1$,U2$,U3$,U4$,U5$,U6$,U7$,U8$ Print "U1","U2","U3","U4","U5","U6","U7","U8" Print U1$,U2$,U3$,U4$,U5$,U6$,U7$,U8$ Print "Inp?(1)=";Inp?(1), !174:teilt mit ob von Port1=RS232 ein Byte gelesen werden kann Print "Lof(#1)=";Lof(#1), !41 :liefert die Länge einer Datei in Byte Print "Eof(#1)=";Eof(#1), !40 :Fileende ereicht=0; bei letztem Byte=-1 Print "Loc(#1)=";Loc(#1), !40 :liefert den Abstand des Filepointers zum Dateianfang endif Close #1 Pause 1500 goto Start end Ergebnis: Print A$ liefert mit diesem Programm das String in der richtigen Reihenfolge der 8 Messwert! Leider dauert das Einlesen und Ausdrucken von Input (#1),U1$,...,U8$ bis zu 4 Minuten; der Rücksprung zu Print A$ nochmals 1 Minute. Lasse ich jedoch das Einlesen u. Ausdrucken von Input (#1),U1$,...,U8$ aus, dann stimmt die Reihenfolge vom Stringausdruck Print A$ nicht mehr; die Werte kommen nicht in der Reihenfolge U1... U8 sondern U3...U8, U1, U2 Liegt hier ein Timing Problem ev. vor? Was muss ich dabei ändern? Gruesse Joe |
| Antwort schreiben |