
|
INFO - FAQ - CC2-Forum - CCPro-Forum |
|
noch ein paar Anmerkungen zu den Programmen selbst > verschicke z.b. 12 Zeichen und schreibe sie mit diesem Prog ins eeprom: > define length 12 > > OPEN# FOR WRITE > > if FILEFREE >=length then gosub w_block > > #w_block 1) Du führst den w_block auf jeden Fall aus, denn selbst wenn das if nicht zieht, geht das Programm ja weiter. 2) Du springst mit gosub zum w_block, willst diesen also als "Unterprogramm" ausführen. Der w_block hat aber kein return. Ein Unterprogramm, das mit gosub angesprungen wird, muss ein return am Ende haben. 3) Wenn Du das return einfügst, wird wegen 1) der w-Block zweimal ausgeführt, wenn die if-Bedingung "wahr" ist. Du musst also (auch alleine schon wegen 1)) vor w_block ein "end" einfügen. > for i = 0 to length 4) Du sagst, Du schickst 12 Zeichen. length ist als 12 definiert. Eine Schleife von 0 bis 12 wird aber dreizehnmal ausgeführt. Beim ersten Durchlauf ist i 0, beim zweiten 1, usw. und beim dreizehnten Mal 12. Das bedeutet wahrscheinlich, dass Dein Programm beim 13. get hängen bleibt. Wenn Du es dann mit der Stop-Taste anhältst, wird das close# nicht ausgeführt - damit sind die Daten im Eprom sowieso potentiell unvollständig. Bye Achim |
| Antwort schreiben |