- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 10 von 19

Thema: Senden & Empfangen via VB Programm "Auswertung"

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    17.09.2004
    Alter
    40
    Beiträge
    647
    Er kann die Geschwindigkeiten:

    4800
    9600
    19200
    38400

    verwenden. Diese haben alle einen Fehler von 0,16% bei 16Mhz. Ich denke damit kann man Leben.

    Jetzt müsste man nurnoch wissen, wie lang eine Übertragung ist.
    Unser Sommer ist ein grün angestrichener Winter. Das einzige reife Obst, das wir haben, sind gebratene Äpfel. [Heinrich Heine]

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von Vitis
    Registriert seit
    06.01.2005
    Ort
    Südpfalz
    Alter
    51
    Beiträge
    2.253
    Ja, das dacht ich auch schon mal ... "Ach was mit dem kleinen Fehler kann man leben ..."
    Hab da auch schon Lehrgeld bezahlt

    Bei der Länge, die er alle 100ms rüber schieben will plus der Umwandlung der Strings in Integer ... sportlich.
    Das puffernd im Ringpuffer würd ich bleiben lassen und direkt "inline" umwandeln, sprich immer wenn ein Abschnitt komplett ist direkt.
    Ginge recht einfach ... per uart-interrupt Zeichen einlesen.
    Wenn ist Trennzeichen Pointer zurücksetzen, dann die nachfolgenden Zeichen in Puffer, beim nächsten
    Trennzeichen den Puffer kopieren, Parametercounter erhöhen,
    die Kopie umrechnen lassen und Ergebnis in Array mit Stelle des Parameterzählers speichern.
    Am Ende der Zeichenfolge dann ein End-Zeichen um den Parameterzähler zurückzusetzen (CR-LF z.B.)

    Der Haken dabei ist halt, für nen Integer kanns dann mal locker 5 Zeichen werden um 2 Bytes zu übertragen.

    Bei sagen wir mal 20 Parametern die er übertragen möchte sind das dann 100 Zeichen plus 20 Trenner, also 120 Zeichen.
    8 Bit, plus Start, plus Stopbit sind dann 1200 Baud mal 10, weil ja alle 100ms sind das dann Minimum 12000 Baud/s, die er erreichen muss.

    oder andersrum 19200 Baud / 1200 = 16
    1/16 = 0,0625 -> 62,5ms bräuchte in dem Falle bei 19200 die Übertragung mindestens. 4800 und 9600 kannst Du ergo schonmal abhaken.
    Vor den Erfolg haben die Götter den Schweiß gesetzt

  3. #3
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    17.09.2004
    Alter
    40
    Beiträge
    647
    Ja deswegen würde ich das Byteweise machen.

    Also das erste Byte ist Wert1, usw.
    Dadurch spart man sich alle Trennzeichen. Durch Start und Stop bits wird der Parameterzähler resetet und controlliert. Wenn er sich beim Stopbit verzählt hat, zählt der gesamte Durchgang nicht und es wird auf den nächsten gewartet.
    Zudem brauchst du nichts mehr umrechnen und keine Strings zerlegen. Das einzige Problem, wäre wenn einer der Werte > 255 ist. Dann musst du 2 Bytes verwenden und die dann passend zusammenrechnen. Mit 2 Bytes kommst du erstmal bis 65535. Bei 3Bytes bis 16,7mio.

    Wenn alle Werte in ein Byte passen, solltest du schon mit 4800Baud auskommen. Ich würde aber mindestens 9600 oder 19200 nehmen.

    Achja zu deinem Problem mit dem Fusen, um den Controller auf 16Mhz laufen zu lassen, würde ich mal die Suche oder eine Suchmaschine befragen. Du bist nicht der erste der das Problem hat und es gibt viele gute Anleitungen dazu.

    Gruß Daniel
    Unser Sommer ist ein grün angestrichener Winter. Das einzige reife Obst, das wir haben, sind gebratene Äpfel. [Heinrich Heine]

  4. #4
    Erfahrener Benutzer Robotik Einstein Avatar von Vitis
    Registriert seit
    06.01.2005
    Ort
    Südpfalz
    Alter
    51
    Beiträge
    2.253
    In dem Falle ginge ich gleich generell auf 2 Bytes, als Int ist das dann -32768 bis +32768 als Word eben 0 bis 65535, + nochmal nen CRC8 dahinter, macht pro Wert 3 Bytes.
    Vor den Erfolg haben die Götter den Schweiß gesetzt

Ähnliche Themen

  1. [C#] Daten von Programm über USB senden und empfangen
    Von PCF8574P im Forum Open Source Software Projekte
    Antworten: 5
    Letzter Beitrag: 02.12.2008, 22:15
  2. GP1A030 Drehgeber - Auswertung mit "C-Programm"
    Von Phoenix2k im Forum Sensoren / Sensorik
    Antworten: 3
    Letzter Beitrag: 06.06.2008, 15:26
  3. Auswertung eines "3D Kompass"
    Von MrNiemand im Forum Sensoren / Sensorik
    Antworten: 18
    Letzter Beitrag: 06.04.2007, 17:49
  4. UArt "verschluckt" beim Senden den Wert 0x00 ( AT9
    Von LotharM im Forum Assembler-Programmierung
    Antworten: 1
    Letzter Beitrag: 02.12.2006, 11:24
  5. Im " Rahmen senden " bei RS485
    Von emulein im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 20
    Letzter Beitrag: 13.09.2005, 13:55

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Solar Speicher und Akkus Tests