INFO - FAQ - CC2-Forum - CCPro-Forum |
> Nachdem Dein Programm mit END beendet wurde, geht die C-Control in den Programmiermodus ("Idle Loop"). Jetzt werden alle Daten, die über die serielle Schnittstelle reinkommen, als Programmieranweisungen gedeutet. Durch bestimmte Bytes wird z.B. der Download eines Programms vom PC zur C-Control eingeleitet. Wenn das passiert, wird das Programm auf der C-Control durch unsinnige Daten überschrieben und während dessen scheint die C-Control nicht mehr zu reagieren. Bingo, genau da liegt der Haser im Pfeffer. Ich habe Reinhards Programm nachgestellt und übeprüft, ob es wie vermutet am Puffer liegen kann. Nee. das ist es nicht. Immer wenn die C-Control noch Daten empfängt und ein Reset oder ein End Befehl kommt, scheint genau das zu passieren, was Du beschreibst. Sonst wäre auch die notwendige Neuprogrammierung nicht zu erklären. > Du mußt also darauf achten, daß nach einem END-Befehl keine Daten über die serielle Schnittstelle übertragen werden. Oder Du verzichtest auf einen END-Befehl und läßt die C-Control nach Programmende in einer Endlosschleife laufen. Richtig, allerdings ist das ziemlicher Murks und sollte als dicker, fetter Warnhinweis im Handbuch stehen. Die "alte Unit" scheint hier anders zu reagieren, mit der konnte ich das Phänomen nicht nachstellen. Grüße Henrik PS: hier die verwendete Routine zum testen define data byte baud r4800 'put 0 'initialisiere den Sender print"#ON_LCD#"; print"#INIT#"; #start if rxd then goto read 'Puffer ? print"no RxD"; print"#CLR#"; goto start #read print"#OFF#"; 'Umschalten auf ser. get data print"#ON_LCD#"; print data; pause 20 'damit die Anzeige kurz steht print"#CLR#"; '#buffer_leeren ' if not rxd then goto ende ' get data 'goto buffer_leeren #ende print "Ende"; print"#OFF#"; '#loop 'goto loop 'funktioniert wenn bei Reset keine Daten mehr übertragen werden end 'funktioniert nicht Meine Homepage: http://www.henrik-reimers.de/control/ |
Antwort schreiben |