PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Excel Makro - ATMEGA8535 - Seriell - Input Problem



Abadacus
21.09.2007, 09:51
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 ... :-(

peterfido
21.09.2007, 16:20
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.

Abadacus
21.09.2007, 16:48
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

Heideltrudel
21.09.2007, 19:44
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

Abadacus
21.09.2007, 19:55
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 :-)