Das Open-Control-Projekt - Die Alternative zur C-Control-I


Das Forum zur C-Control-1
Welche C-Control-Varianten existieren?
Übersicht - Suchen - Neueste 50 Beiträge - Neuer Beitrag - Login - Registrieren
INFO - FAQ - CC2-Forum - CCPro-Forum 

 Re: Neues von der RS232 Kategorie: C-Control I V1.2/2.0 (von Henrik, Homepage - 30.11.2004 20:31)
 Als Antwort auf Re: Neues von der RS232 von Dietmar - 30.11.2004 19:53

> 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

Bisherige Antworten:

Re: Neues von der RS232 (von Dietmar - 30.11.2004 23:35)
    Re: Neues von der RS232 (von Chris Schiebeck - 1.12.2004 10:35)