-         

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 12

Thema: Gesendete Daten wieder richtig umwandeln?

  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    14.04.2008
    Ort
    Esslingen
    Alter
    29
    Beiträge
    235

    Gesendete Daten wieder richtig umwandeln?

    Anzeige

    SMARTPHONES & TABLETS-bis zu 77% RABATT-Kostenlose Lieferung-Aktuell | Cool | Unentbehrlich
    Tag zusammen.

    Habe mir von Conrad das Funkmodul (130428 - 62) besorg. Nun möchte ich Daten von einem MEGA8 zu einem MEGA32 übertragen. Bevor ich mit dem Funkmodul arbeiten wollte, wollte ich erst mal testen ob ich die Übertragung auch über Kabel hinbekomme. Hier sind meine Programme:

    MEGA8 (Sender):

    $regfile = "m8def.dat"
    $framesize = 24
    $swstack = 8
    $hwstack = 32
    $crystal = 16000000
    $baud = 9600

    Do
    Print "Hi"
    Wait 1
    Loop
    End



    MEGA32(Empfänger):

    $regfile = "m32def.dat"
    Config Lcd = 16 * 2
    Config Lcdpin = Pin , Rs = Portc.0 , E = Portc.1 , Db4 = Portc.2 , Db5 = Portc.3 , Db6 = Portc.4 , Db7 = Portc.5

    Cls
    Dim Test As Byte

    Do
    Test = Inkey()
    Locate 1 , 1
    Lcd Test
    Loop
    End



    Jetzt bekomme ich aber auf dem Display immer nur folgende Zahlen raus:
    054
    052
    043
    (ständig wechselnd)

    Wie schaffe ich es mir die gesendete "1" anzeigen zu lassen?
    Und wenn ich einen Text sende ("Hi") wie muss ich das dann machen?
    Kann mir da einer helfen?

    Mfg Mel

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von Vitis
    Registriert seit
    06.01.2005
    Ort
    Südpfalz
    Alter
    43
    Beiträge
    2.240
    Also, das gute alte Conrad Funkset ...
    ist leider ein AM-Set, sprich es wird amplitudenmoduliert
    übertragen. Wird nicht gesendet schwingt die Geschichte aus
    und die ersten zu übertragenden Zeichen werden Müll.
    1 Sekunde (wait 1) ist eine zu lange Pause ... 50ms
    sind so in etwa gängig. Oder Du musst ne sog. Präambel
    senden um die Dinger einzuschwingen.
    Das ist die Eine Seite der Geschichte.
    Die Andere ist, dass Du ja Bytes überträgst, keine Zeichen.
    Zu Zeichen werden sie erst wenn man sie in einen
    String schreibt.
    Das musst Du aber auch dem COmpiler mitteilen,
    das es sich um einen String handelt,
    sprich dim test as string *1
    Sonst interpretiert er das Zeichen, dass Du ja in die
    Variable schreibst als Wert und gibt Dir auf dem
    Display dann den ASCII-Wert des Zeichens aus

    http://de.wikipedia.org/wiki/ASCII
    Vor den Erfolg haben die Götter den Schweiß gesetzt

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    14.04.2008
    Ort
    Esslingen
    Alter
    29
    Beiträge
    235
    wenn ich das als String definiere bekomme ich aber nur komische Zeichen und nicht die gesendete Zahl. Danke wegen dem Tip mit dem Funk, werd ich berucksichtigen wenn meine Kabelübertragung klappt=)

  4. #4
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    14.04.2008
    Ort
    Esslingen
    Alter
    29
    Beiträge
    235
    kann es was damit zu tun haben dass der MEGA8 mit 16Mhz extern beschaltet und der MEGA32 die interne Frequenz von 8Mhz benutzt??

  5. #5
    Erfahrener Benutzer Robotik Einstein Avatar von Vitis
    Registriert seit
    06.01.2005
    Ort
    Südpfalz
    Alter
    43
    Beiträge
    2.240
    Beim MEga32 haste den $crystal und $baud nicht gesetzt ...
    Bei so niederen Baudraten sollte es auch mit dem
    internen RC gehen, aber um Fehlerquellen auszuschließen
    würd ich ihm dennoch nen Quarz gönnen.
    Sind nicht so teuer und sind recht nützlich
    Ich hab mal an nem Bus runter gemusst bis auf
    1200 Baud weil ich den Quarz zu liederlich war
    einzutüfteln. Heute mach ich nix mehr ohne ... man lernt
    ja dazu
    Vor den Erfolg haben die Götter den Schweiß gesetzt

  6. #6
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    14.04.2008
    Ort
    Esslingen
    Alter
    29
    Beiträge
    235
    Ok alles klar dann werd ich mir mal die Kondensatoren besorgen der Quarz fliegt hier schon rum. Meld mich dann wenns danach geht /bzw. nicht geht. Vielen Dank erst mal

  7. #7
    Erfahrener Benutzer Robotik Einstein Avatar von Vitis
    Registriert seit
    06.01.2005
    Ort
    Südpfalz
    Alter
    43
    Beiträge
    2.240
    Ach so, glatt übersehen, 9600 Buad sind für das Billig-Funkset auch
    u.U. n bissl viel. 2400 oder niedriger werden eher hinkommen ...
    muss aber zugeben mit dem Ding schon ne Ewigkeit nix
    mehr gemacht zu haben. Probiers aus und wenns nicht recht
    will als erste Maßnahme die Baudrate verringern würd ich
    empfehlen.
    Vor den Erfolg haben die Götter den Schweiß gesetzt

  8. #8
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    14.04.2008
    Ort
    Esslingen
    Alter
    29
    Beiträge
    235
    benutze das funkding ja noch gar nicht. bertrage im mom alles noch über nen kabel (RxD und TxD von mega8 und mega32 gekreuzt). kann das was mit dem unterschiedlichen takt zu tun haben? meine programme sind wie folgt:

    Sender:

    $regfile = "m8def.dat"
    $framesize = 24
    $swstack = 8
    $hwstack = 32
    $crystal = 16000000
    $baud = 250.000


    Do
    Print "Hi"
    Wait 1
    Loop
    End

    Empfänger:

    $regfile = "m32def.dat"
    $framesize = 32
    $swstack = 32
    $hwstack = 32
    $baud = 250.000


    Config Lcd = 16 * 2

    Config Lcdpin = Pin , Rs = Portc.0 , E = Portc.1 , Db4 = Portc.2 , Db5 = Portc.3 , Db6 = Portc.4 , Db7 = Portc.5


    Dim I As Byte

    Do
    Cls
    I = Inkey()
    Lcd Chr(i)
    Wait 1
    Loop
    End


    aber ich bekomme nix rein

  9. #9
    Erfahrener Benutzer Robotik Einstein Avatar von Vitis
    Registriert seit
    06.01.2005
    Ort
    Südpfalz
    Alter
    43
    Beiträge
    2.240
    Bai $Baud 250000 ist für den Anfang zum
    lernen und Üben definitiv zuviel.
    Hast Du auch die GND- der beiden µC
    verbunden ... sollte nämlich, damit
    gemeinsames Bezugspotential.
    Beim 2. µC vermisse ich nochimmer
    die Angabe der Taktfrequenz.
    Auch wenn kein Quarz angeschlossen
    ist muss dem Compiler mitgeteilt
    werden wie schnell die Kiste läuft.
    Von Werk aus laufen die M32 auf
    $crystal=1000000
    Für eine Baudratenberechnung
    brauchts immer auch die Geschwindigkeit
    des Controllers sonst wird das nix.
    Vor den Erfolg haben die Götter den Schweiß gesetzt

  10. #10
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    14.04.2008
    Ort
    Esslingen
    Alter
    29
    Beiträge
    235
    Ja das mit den 25000 Baut war nur ein versuch wollte bei 9600 bleiben. Gut sobald ich zuhause bin werd ich das programm mal ändern. mal schauen vllt klappts ja dann. danke schon mal

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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