Du meinst nicht zufällig diesen Dau. Das würde ich aber persönlich nehmen.Zitat von radbruch
Das die Zeichen irgendwas bedeuten weiß ich auch aber warum kommen die nach jedem Zeichen und warum nur von einem Controller und nicht von beiden?
Du meinst nicht zufällig diesen Dau. Das würde ich aber persönlich nehmen.Zitat von radbruch
Das die Zeichen irgendwas bedeuten weiß ich auch aber warum kommen die nach jedem Zeichen und warum nur von einem Controller und nicht von beiden?
Den meinte ich, war aber nicht nicht wirklich ernst gemeint. Ich war nur verwundert. Warum die Steuerzeichen mitgesendet werden weiß ich auch nicht. Ich kann mich aber daran erinnern, dass Basic bei Print immer ein LFCR mitsendet. QBasic z.B. sendet bei einem , im Print-Befehl ein TAB und bei einem ; nichts. Vielleicht ist es bei Bascom ähnlich.
Bild hier
Atmel’s products are not intended, authorized, or warranted for use
as components in applications intended to support or sustain life!
Hast recht. In der Bascom-Hilfe stehts drin:Zitat von radbruch
You can use a semicolon to print more than one variable at one line.
When you end a line with a semicolon, no linefeed and carriage return will be added.
Das bedeutet es funzt jetzt?Hast recht.
Die Abkürzungen in dem DAU-Artikel sind ja nett. Beim NTU (Never Trained User) könnte man ja noch was retten, aber beim KpnzG (Kunde passt nicht zum Gerät) kommt wohl jede Hilfe zu spät. Meine persönliche Standartantwort bei unangenehmen Kundenfragen: "Bedienungsfehler"
Glückwunsch an alle für Platz 2 *gg*
mic
Bild hier
Atmel’s products are not intended, authorized, or warranted for use
as components in applications intended to support or sustain life!
Nein, funzen tuts noch nicht aber jetzt weiß ich wo der Fehler liegt und kann weiter machen (hab jetzt noch 1,5 Stunden bis ich pennen geh und werd mich mal etwas ran halten).Zitat von radbruch
Mir gefällt "Problem ist die Stuhl-Tastatur-Schnittstelle".
Gruß
(Der 2te ist der erste Verlierer. Aber die habens verdient.)
Hi,
von mir auch mal wieder was neues.
Leider hab ich noch keine Erfolgsmeldung zu verkunden aber bin wie gesagt aufm richtigen Weg. Momentan bin ich auf Kriegsfuß mit dem Datenempfang beim Bot selbst. Ich versuch seit 2 Tagen dem Bot seine Servopositionen zu übermitteln aber der weigert sich wehement das zu machen was ich möchte. Leider scheitere ich mal wieder an dem Problem das ich keine Ausgabemöglichkeiten beim Bot habe und so nicht weiß was ankommt und wie zusammengesetzt oder nicht ankommt oder verstückelt oder was weiß ich gemacht wird.
Außerdem hats mir glaube einen Servo zerlegt. Wenn dem wirklich so ist, ist das aber schon ner gnazen Weile passiert. Mal sehen obs nur ne durchgebrannte leitung ist oder was anderes.
Gruß
Hi Murdoc_mm
Ich schreibe mal kurz wie ich eine Serie von Daten aus bytes, word und string übermittle
; bewirkt dass der Printbefehl ohne Carriage return ausgeführt wird. (Läßt man ; wird automtisch carriage return angefügt)Code:Dim Volt As Word Dim Kurs As Byte, Mr As Byte , Ml As Byte , C1 As Byte , C2 As Byte Dim Servo As Byte Dim Entf As Word Dim Message As String * 5 $baud = 19200 Do Print "x"; Print Hex(Kurs); Print Hex(volt); Print Hex(c1); Print Hex(c2); Print Hex(servo); Print Hex(mr); Print Hex(ml); Print Hex(entf); Print Message; Print Chr(13); anderer Code loop
"x" gibt bei mir immer den Anfang des Strings an
der übermittelte String ist 1+2+4+2+2+2+2+2+4+5+1 = 27 Byte lang. Das letzte Byte ist Chr(13) und kennzeichnet das Ende und ist wie das "x" in dem übermittelten String einzigartig.
Empfang:
Vielleicht hilft Dir dieses Beispiel weiter. Die Werte sollten möglichst oft übermittelt werden, da auf Empfängerseite die Schleife durch Input solange stoppt bis CHR(13) kommt.Code:Dim Volt As Word Dim Kurs As Byte, Mr As Byte , Ml As Byte , C1 As Byte , C2 As Byte Dim Servo As Byte Dim Entf As Word Dim Message As String * 5 Dim Empf As String * 27 Dim Empf1 As String * 2 Dim Empf2 As String * 4 Dim I as Byte $baud = 19200 do Input Empf : I = Instr(1 , Empf , "x") 'Input wartet bis Chr(13) If I = 1 Then Empf1 = Mid(empf , 2 , 2) : kurs = Hexval(empf1) Empf2 = Mid(empf , 4 , 4) : volt = Hexval(empf2) Empf1 = Mid(empf , 8 , 2) : c1 = Hexval(empf1) Empf1 = Mid(empf , 10 , 2) : c2 = Hexval(emp1) Empf1 = Mid(empf , 12 , 2) : servo = Hexval(empf1) Empf1 = Mid(empf , 14 , 2) : mr = Hexval(empf1) Empf1 = Mid(empf , 16 , 2) : ml = Hexval(empf1) Empf2 = Mid(empf , 18 , 4) : entf = Hexval(empf2) message = Mid(empf , 22 , 5) I = 0 End If anderer Code loop
Grüsse
Christian
Hi,
vielleicht könnt ihr mir helfen. Es ist bestimmt nur ein winziges Detail das ich vergessen habe zu beachten oder drei Buchstaben die nicht in meinem Code stehen.
Gehen wir mal davon aus das ich im Sender wie im Empfänger ne Byte-Variablen Servo_pos habe. Im Sender wird eine Zahl von 0 bis 200 in Servo_pos geschrieben und soll nun an den Empänger gesendet werden. Bis jetzt mache ich das (in Kurzfassung) etwa so:
Sender:
Print Servo_pos;
Empfänger:
if ischarwaiting <> 0 then
Servo_pos = inkey()
end if
Das funzt aber nich. Meine Vermutung ist ja das Print oder inkey() den Inhalt von Servo_pos in irgend ein anderes Format umwandelt und so verändert das eben nicht mehr ne Zahl 0 bis 200 drin steht sondern sonstwelcher Unsinn. Aber sicher bin ich damit gar nicht und überprüfen kann ichs halt auch nicht.
Muss ich vielleicht noch hex() oder bin() oder was anderes bei Print oder Inkey() dranhängen damit es funzt? (Obwohl ich da auch schon ettliche Varianten durchprobiert hab --> ohne Erfolg natürlich.)
Danke für eure Hilfe.
Gruß
hi Murdoc_mm,
macht der Servo gar nichts mehr?
Mechanik; Elektronik?
liebe Grüße,
Klingon77
Der kürzeste Weg zwischen zwei Menschen ist ein Lächeln - http://www.ad-kunst.de
Ach genau, hab ich glatt vergessen. Der Servo ist völlig Kraftlos und lässt die Spannung so lang einbrechen bis ich ihn per Hand auf Position gedreht habe --> scheint ein Kurzer im Motor zu sein.Zitat von Klingon77
Ich werd mal durchmessen welchen Motor-Widerstand der funktionierende und welchen der kaputte hat aber am Ende wird es wohl auf Wicklungsschluss und einen neuen Servo hinaus laufen. Zum Glück flieg ich in ein paar Wochen nach Deutschland, da kann ich auch gleich nen neuen kaufen.
Gruß
Lesezeichen