
|
INFO - FAQ - CC2-Forum - CCPro-Forum |
|
||
|
siehe unten.. > > > Hallo Leute, > > > > ich habe folgendes Problem: Ich lade mein Programm ( 3302 Basic Bytes, 0 Sys Bytes) aus CCBasic in die C-Control, von meinem Laptop aus. Die Übertragung funktioniert (Meldung ".. fertig"), aber das Programm bleibt nach dem Start an einer bestimmten Stelle einfach stehen. Lade ich das gleiche Programm von einem anderen PC auf die Unit, funktioniert es. Wie kann das sein? Wenn das Programm evtl. vom Laptop nicht vollständig geladen wird, müßte ich doch eine Fehlermeldung bei der Übertragung kriegen? > > > > Gibt es evtl. die Möglichkeit, mit einem SYS-Treiber eine Prüfsumme des gespeicherten Programms / des Systemzustands zu ermitteln und so herauszufinden, ob bei den 2 Fällen etwas anderes auf der C-Control drauf ist? > > > > Im Programm selbst schreibe ich in einer Schleife Meßwerte in den Flash und zeige nach jedem Schreiben den verbliebenen Speicher mit print Filefree an, also nichts besonderes... > > > > Wer jetzt sagt: "Dann nimm halt den PC" ist - mit Verlaub - ein Dünnbrettbohrer. Alle anderen Anwendungen mit serieller Schnittstelle funktionieren prima auf dem Laptop. Es nervt halt, wenn man nicht sicher sein kann, ob das übertragene Programm auch komplett ist, und man dadurch Zeit vertut, die man eigentlich in die Entwicklung stecken wollte. Langsam liebäugle ich mit Bascom-AVR... > > > > Gruß Carsten > > Hallo...... > Die UNIT schickt jedes Byte nach dem Speichern als Echo über die > Schnittstelle zurück. > Das Problem kann sich also nur so ergeben (abgesehen davon dass es evtl. Zufall ist, > dass ein Fehler im Basic-Programm den Laptop verdächtig macht) dass das > Byte vom Schnittstellenadapter verfälscht wird. So einen Effekt hoffte ich eben durch Errechnen einer Prüfsumme auf beiden Seiten (vor dem Senden und in der Unit) zu entdecken - die Prüfsumme in der Unit wäre dann falsch.. Einen Fehler im Basic-Programm schließe ich aus, da dasselbe Programm, von einem anderen PC draufprogrammiert, ja funktioniert.. Beim Echo wird es wieder "rückverfälscht" > Es gab sowas schon mal. > Welchen Adapter hast du? Ich benutze das Application Board 2.0 (in der ersten Version vom vorigen Jahr) > Kannst du das Programm posten? > Das Programm ist recht lang und ich möchte es nicht gern posten, aber ich schicke es gerne per email, wenn Du mir scheibst / emailst, wohin ich senden soll... Die entscheidenden Stellen sehen so aus (s.u.) Das Unterprogramm ALARM gibt den Stand von i aus, und auch, wieviele Platz (Filefree) noch ist. Das Programm bleibt immer stehen bei i=25, obwohl im Speicher noch Platz ist und i eigentlich bis 600 laufen soll (PS: bei der vorigen Unit war der Speicher bei i=573 voll, die hab ich jetzt zum Garantieaustausch eingeschickt, siehe Posting http://ccintern.dharlos.de/forum/lesen.php?eintrag=6717 ... for i = 0 to 599 'jede Zeile wird <cKombi>fach OR verknüpft / kombiniert, cKombi = 4 gosub ALARM for j = 0 to cKombi gosub LESE8 if (j < cKombi) then goto WEITER 'ansonsten: hier die Daten speichern und dann Bytes wieder löschen print# w0 print# w1 print# w2 print# w3 gosub BYTES_LOESCHEN #WEITER next ... '--------------------------------------------------------------------------------------------------------------------- '--------------------------------------------------------------------------------------------------------------------- #ALARM ' gosub klingel print"#ON_LCD#";:print"#INIT#";:print"#CLR#"; print"#L101#"; print "FFREE=";:print FILEFREE; print"#L201#"; print "I=";:print i; print "#OFF#" pause 1 if filefree < 8 then goto tttt else RETURN #tttt end '--------------------------------------------------------------------------------------------------------------------- '--------------------------------------------------------------------------------------------------------------------- #LESE8 'alle Schaltkreise auslesen und mit Bytes kombinieren. Die Reihenfolge ist optimiert 'IC = 0 adr0 = OFF adr1 = OFF adr2 = OFF b0 = b0 OR DatenBus 'IC = 1 adr0 = ON b1 = b1 OR DatenBus 'IC = 3 adr1 = ON b3 = b3 OR DatenBus 'IC = 7 adr2 = ON b7 = b7 OR DatenBus 'IC = 6 adr0 = OFF b6 = b6 OR DatenBus 'IC = 4 adr1 = OFF b4 = b4 OR DatenBus 'IC = 5 adr0 = ON b5 = b5 OR DatenBus 'IC = 2 adr0 = OFF adr1 = ON adr2 = OFF b2 = b2 OR DatenBus RETURN '--------------------------------------------------------------------------------------------------------------------- '--------------------------------------------------------------------------------------------------------------------- #BYTES_LOESCHEN b0=0:b1=0:b2=0:b3=0:b4=0:b5=0:b6=0:b7=0 RETURN |
| Antwort schreiben |