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: looktab Tabellen Dateneingabe Kategorie: Programmierung Basic (von Achim - 6.09.2004 23:53)
 Als Antwort auf Re: looktab Tabellen Dateneingabe von Armin - 6.09.2004 19:31
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

Bisherige Antworten: