- fchao-Sinus-Wechselrichter AliExpress         
Ergebnis 1 bis 5 von 5

Thema: Excel Makro - ATMEGA8535 - Seriell - Input Problem

  1. #1

    Excel Makro - ATMEGA8535 - Seriell - Input Problem

    Anzeige

    LiFePo4 Akku selber bauen - Video
    Hallo

    Ich habe folgendes Problem ...

    Aus einem Excel-Makro sende ich mit dem Befehl SENDSTRING zwei Zahlen, nehmen wir mal als Beispiel die 123 und die 15. Diese Zahlen kommen in meinem Hyperterminal korrekt an.
    Natürlich habe ich in dem Makro auch darauf geachtet das ich CR und LF korrekt setze, mit SENDBYTE 10 und SENDBYTE 13.
    Hyperterminal schreibt mir diese beiden Zahlen untereinander.


    Jetzt sende ich diese Daten an meinen ATMEGA8535 über die serielle Schnittstelle und lasse mir direkt die Werte printen und auf Hyperterminal ausgeben damit ich sehe was Bascom in die Variablen geschrieben hat.

    Sieht so aus :

    Input A ( Warten auf Empfang für die Zahl 123 vom Makro )
    Input B ( Warten auf Empfang für die Zahl 15 vom Makro )

    Print A
    Print B

    Sooooo .... auf meinem Hyperterminal kommt dann auch eine "123" an ... aber auf die "15" warte ich vergeblich ... es kommt immer eine "0".

    Egal was ich für eine Zahl sende.

    Wieso klappt das EINMAL für die Variable A, aber der Wert in der Variable B ist IMMER "0" ?

    Ich geh am Stock ...

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    18.05.2007
    Ort
    Berlin
    Alter
    52
    Beiträge
    765
    Hast du schon getestet was passiert, wenn du die sendbytes 10 und 13 weglässt? vielleicht sendet ein sendstring schon eine 13 hinterher.
    Mein Excel 97 kennt sendbyte nicht...

    Dein Excel Makro wäre für die Fehlersuche nicht schlecht. Ich würde es so probieren:

    dim strSenden as string
    strsenden="123" & vbcrlf
    sendstring strsenden
    strsenden="15" & vbcrlf
    sendstring strsenden

    wenn denn sendstring so anzuwenden ist.
    Wenn das Herz involviert ist, steht die Logik außen vor! \/

  3. #3
    Hmmmm ... die 10 und die 13 habe ich weggelassen.
    Das Ergebnis war das mein Bascom-Basic nach dem ersten Input hängengeblieben ist und nicht weitergekommen ist.

    Heute Abend versuche ich mal in Bascom diese Kombination :

    Open "comd.1:9600,8,n,1" For Output As #1
    Open "comd.0:9600,8,n,1" For Input As #2

    Input #2 , A
    Input #2 , B

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    17.02.2006
    Beiträge
    29
    Hallo Abadacus
    hast du schon mal daran gedacht, dass der Atmega bei dem String 123 auf 3 Ziffern plus 10 und 13 wartet d.h. im Binärcode 5 mal ein Byte

    dagegen bei dem String 15 wartet der Atmaga auf 2 Ziffern plus 10 und 13 d.h. im Binärcode 4 mal ein Byte.
    Beim letzteren kehrt der Atmega wohl nicht aus seiner seriellen Abfrage zurück !?

    Wie hast du den Atmega 8535 programmiert ? Versuch mal die Ziffer 015 und die 123 --- Werden beide Strings angezeigt, so bestätigt sich meine Vermutung.

    MfG Heideltrudel

  5. #5
    Juhu )))

    Ich habe die Lösung ... für alle die das gleiche Problem haben :

    In meinem Excel Macro stand

    SENDSTRING C$ 'Wert 1 in der Zelle
    Sendbyte (13)
    Sendbyte (10)

    SENDSTRING D$ 'Wert 2 in der Zelle
    Sendbyte (13)
    Sendbyte (10)

    BULLSHIT !

    ERST muss die 10 gesendet werden ... DANN die 13 ... ))

    Klar das der Atmel nur Mist gelesen hat.

    Und mit dieser Routine schlägt mir auch nichts auf das Macro zurück, ersetzt wohl das NOECHO bei einem normalen Input Befehl:

    Open "comd.1:9600,8,n,1" For Output As #1
    Open "comd.0:9600,8,n,1" For Input As #2

    Input #2 , A 'Wert 1
    Input #2 , B 'Wert 2

    Danke trotzdem euch allen für die Hilfe

Berechtigungen

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

Labornetzteil AliExpress