- 3D-Druck Einstieg und Tipps         
Seite 2 von 3 ErsteErste 123 LetzteLetzte
Ergebnis 11 bis 20 von 21

Thema: Mehrere Atmegas Koppeln- UART

  1. #11
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    25.07.2006
    Ort
    Berlin
    Beiträge
    439
    Anzeige

    LiFePo4 Akku selber bauen - Video
    Hallo,
    kann es sein, dass Du ein Geschwindigkeitsproblem beim slave hast? Wenn Du über das Terminal eintippst, ist der Zeitabstand zwischen den Zeichen größer!

    gruß
    magnetix48

  2. #12
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.02.2006
    Beiträge
    1.113
    Gib mal hinter den Input-Befehl ein
    Clear SerialIn
    um sicherzustellen, dass der Buffer komplett leer ist.
    66 32 79 78 hätte ich laut ASCII Tabelle allerdings als B ON übersetzt.
    Wieso erwartest du eigentlich 64?

    Gruß

    Rolf

  3. #13
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    25.07.2006
    Ort
    Berlin
    Beiträge
    439
    Hallo,

    die Routine Serial0charmatch() wird garnicht aufgerufen. Woher bekommt der slave seine Informationen?

    Gruß
    magnetix48

  4. #14
    Benutzer Stammmitglied
    Registriert seit
    13.06.2008
    Ort
    Nürnberg
    Alter
    31
    Beiträge
    94
    Hi,
    Serial0charmatch() wird automatisch nach empfangen von CR aufgerufen.
    Hm, es kann sein dass ich mich bei dem Ermitteln vertan habe, aber ich erwarte halt als erstes: "65, 32, 79, 78"( sorry, nicht 64).
    Ich werde nachher nochmal alles nachprüfen. Aber auch wenn ich mich mit dem B On vertan habe, was hat das 53, 10 da zusuchen?(Also Line Feed und 5).

    Grüße und danke,

    Tom

  5. #15
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.02.2006
    Beiträge
    1.113
    Zitat Zitat von magnetix48
    Hallo,

    die Routine Serial0charmatch() wird garnicht aufgerufen. Woher bekommt der slave seine Informationen?
    Das Label Serial0charmatch: wird automatisch angesprungen, wenn du ein
    Config Serialin ByteMatch <chr> eingibst.
    Man braucht das auch nicht zu deklarieren, weil es keine Sub im eigentlichen Sinne ist.

    @Movie85: Hast du mal das Clear SerialIn probiert?

    Gruß

    Rolf

  6. #16
    Benutzer Stammmitglied
    Registriert seit
    13.06.2008
    Ort
    Nürnberg
    Alter
    31
    Beiträge
    94
    Also,

    ich hab das Clear SerialIn eingesetzt, hat aber keine Wirkung ergeben.
    Ich habs dann mal so versucht, jedes Zeichen einzeln zu senden(ohne CR) und dann am schluss mit CR abzuschließen:
    Code:
    Print Chr(65) ;
    Print Chr(32) ;
    Print Chr(79) ;
    Print Chr(70) ;
    Print Chr(70) ; Chr(13)
    das funktioniert!
    Wenn ich jetzt aber Print "A ON" ; Chr(13) ausführe, gehts wieder nicht, obwohl ich jetzt überprüft habe, dass genau das selbe ankommt, wie beim Hyperterminal (65,32,79,7. Ich hab die Baudrate auch schon auf 2400 runtergesetzt, keine Veränderung!

    Grüße und nochmals danke,

    Tom

  7. #17
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    25.07.2006
    Ort
    Berlin
    Beiträge
    439
    Hallo,

    in der Hilfe von Bascom ist die Verwendung von Serial0charmatch anders angegeben.

    Versuch es doch mal statt:
    Sub Serial0charmatch()
    Input New_command Noecho
    End Sub

    mit:
    Serial0charmatch:
    Input New_command Noecho
    Return

    Gruß

    magnetix48

  8. #18
    Benutzer Stammmitglied
    Registriert seit
    13.06.2008
    Ort
    Nürnberg
    Alter
    31
    Beiträge
    94
    Hi,

    danke, aber das nützt nichts, das Komische ist ja, dass es mit dem Hyperterminal reibungslos funzt. Jedoch nicht mit dem Atmega... Es scheint so, als würde er die Daten anders verschicken, aber dann verstehe ich nicht, warum ich mit der Ascii-Auswertung genau die selben Werte erhalte...

    SEHR KOMISCH!!!
    Mich nervt das jetzt wieder, ich hock den ganze Tag an diesem einem Problem! Obwohl ich eigendlich ein ganz anderes Programm schreiben wollte. Es funktioniert ja theoretisch, alles fein, aber halt nicht von Atmega zu Atmega....

    Grüße,

    Tom

  9. #19
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    25.07.2006
    Ort
    Berlin
    Beiträge
    439
    Hallo Tom,

    meine Vermutung ist, dass Du Geschwindigkeitsprobleme beim slave hast. Das Aufrufen eines Unterprogramms dauert länger als ein GOSUB - RETURN, da Register auf dem Stack abgespeichert werden müssen.
    Wenn Du die Daten über's Terminal eingibst, entstehen längere Pausen zwischen den übertragenen Daten, die reichen dass der Controller nichts überliest.

    Gruß
    magnetix48

  10. #20
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.02.2006
    Beiträge
    1.113
    Zitat Zitat von magnetix48
    Hallo Tom,
    Das Aufrufen eines Unterprogramms dauert länger als ein GOSUB - RETURN, da Register auf dem Stack abgespeichert werden müssen.
    Hallo Magnetix48,
    deine Aussage stimmt so nicht.
    Es ist zeitmäßig vollkommen egal, ob du mit Gosub-Return durch eine Sub läufst, oder mit Call-End Sub. Die reine Zeit zum Aufrufen und zurückspringen sind immer 7 Zyklen. Der Unterschied ist lediglich, dass im Declare Befehl Parameter angegeben werden können, die dann in der Sub benutzt werden können.
    Und du hast recht, Serial0CharMatch ist ein Label, was angesprungen wird und keine Sub. Allerdings macht Bascom da keinen Unterschied, zumindest bis jetzt noch nicht.

    @Movie85 Bist du dir ganz sicher, dass sämtliche Zeichen, die von Hyperterminal gesendet werden exakt so auch von deinem Master kommen und auch nur diese?
    Ich glaube immer noch, dass da das Problem liegt.

    Gruß

    Rolf

Seite 2 von 3 ErsteErste 123 LetzteLetzte

Berechtigungen

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

fchao-Sinus-Wechselrichter AliExpress