
|
INFO - FAQ - CC2-Forum - CCPro-Forum |
|
Hi, > > > > Da empfiehlt sich doch die Speicherung mittels > "print#" > anbei mein Programm hängt sich jedesmal bei Input Zum "Aufhängen" bei Input habe ich ja im anderen Thread schon etwas geschrieben. Noch ein paar kleine sonstige Kommentare: > define zeiger byte [4] > define word_a word [5] > define word_b word [7] > define word_c word [9] > define word_d word [11] Du lässt Lücken im Speicher. Ungenutzt (möglicherweise teilweise beabsichtigt) sind: byte 1 bis 3 word 3, 4, 6, 8, 10 es werden nicht die Anfangsbytes durchnummeriert, sondern überlappend byte 1 - 24 word 1 - 12 word 1 liegt auf byte 1 und byte 2 word 2 liegt auf byte 3 und byte 4 word 3 liegt auf byte 5 und byte 6 word 4 liegt auf byte 7 und byte 8 word 5 liegt auf byte 9 und byte 10 ... word 9 liegt auf byte 17 und byte 18 word 10 liegt auf byte 19 und byte 20 word 11 liegt auf byte 21 und byte 22 > #loop > if einlesen = (not on) then gosub ein else gosub aus Für "not on" gibt es die Konstante "off" Statt "if einlesen = off" kann man schreiben "if not einlesen" > #ein'daten einlesen > if RXD then input word_a > print# word_a Wenn der Trigger für einlesen gesetzt ist, muss hier aber getippt werden wie der Teufel. Denn egal, ob die erste Taste bereits gedrückt ist oder nicht (RXD) - es wird auf jeden Fall ins EEPROM geschrieben. Und selbst wenn die erste Taste am Hyperterminal gedrückt war, bevor der "Einlesen"-Trigger klingelt, und man also in Ruhe seine word_a Zahl eingeben kann, weil dann INPUT netterweise auf Enter wartet ... > Print "eingabe von word_b" > if RXD then input word_b > print# word_b geht es nach dem Enter sofort wieder zur alten Hektik zurück, denn damit man die Chance hat, word_b auch einzugeben, muss man nach dem Enter blitzschnell die erste Ziffer der nächsten Zahl word_b eingeben, bevor der Basic-Interpreter der CC an die IF-Abfrage gekommen ist, weil ansonsten RXD wieder false ist, INPUT übersprungen wird und eine nichtssagende 0 ins EEPROM geschrieben wird. ;-) > Print "eingabe von word_c" > if RXD then input word_c > print# word_c > close# Wir merken uns: Du schreibst word_a, word_b und word_c ins EEPROM. > #aus' date auslesen > Print " Daten aus Datei auslesen" > if EOF then goto EXIT' abfrage ob etwas in Datei vorhanden ist > open# for read > input# word_a > input# word_b > input# word_c > input# word_d Lesen tust Du aber eine Variable mehr als abgespeichert wurde. Hmm. > close# Ich habe mal irgendwo gelesen, dass ein "close#" nach "open# for read" überflüssig ist, aber einen Schreibzyklus der "Lebenszeit" des EEPROM kostet, und also nicht codiert werden sollte. HTH Bye Achim |
| Antwort schreiben |