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: variablen in eeprom speichern Kategorie: Programmierung Basic (von Michael - 28.12.2004 8:41)
 Als Antwort auf Re: variablen in eeprom speichern von André H. - 27.12.2004 12:14
besten Dank André
mfg michael

> Hallo Michael,
>
> > ich habe folgende frage:
> > ich gebe über die 12er tastatur werte in 6 variablen ein.
> > das programm läuft dann an.
> > wenn jetzt ein stromausfall ist soll die c-control 1.1 automatisch wieder starten und mit den gespeicherten werten weiterrechnen.
> > also wie schreibt man werte in das eeprom???
>
> Das einfachste ist, Du benutzt die Dateifunktion:
> Schreiben:
>  open# for write
>   print# wert1
>   print# wert2
>   print# wert3
>   print# wert4
>   print# wert5
>   print# wert6
>  close#
>
> Lesen:
>  open# for read
>   input# wert1
>   input# wert2
>   input# wert3
>   input# wert4
>   input# wert5
>   input# wert6
>  close#
>
>
> Alternativ kannst Du auch direkt das EEProm ansprechen, indem Du einen
> kleinen ASM-Treiber benutzt. (z.B. i2c_multitreiber.zip von CCTools. Dort unter Download)
> Der Vorteil wäre hier, daß die Daten nach einem Programmupdate nicht weg wären,
> sofern diese z.B. ganz hinten im EEProm abgelegt werden.
> Dann könnte das ganze so aussehen:
>
> '--------------------------------------------------------------
> 'Einsprungadressen von "int_i2c.s19" Release 19.09.04
> '--------------------------------------------------------------
> ' PCF8574:
> define PCFwrite   &h101
> define PCFread    &h107
> '--------------------------------------------------------------
> ' Bausteine mit Byte-Adress-Register
> define WrByteBReg &h123
> define WrWordBReg &h12F
> define RdByteBReg &h15C
> define RdWordBReg &h162
> '--------------------------------------------------------------
> ' Bausteine mit Word-Adress-Register
> define WrByteWReg &h139
> define WrWordWReg &h141
> define RdByteWReg &h16D
> define RdWordWReg &h175
> '--------------------------------------------------------------
> ' PCFLCD:
> define putCmd8Bit &h1a9
> define putCmd     &h17D
> define putChar    &h1a3
> define prnLCD     &h1C2
> '--------------------------------------------------------------
>
> define EEPromAddr 160
> define pop DA[1] 'Trick zum Auslesen des Stacks
>
> define wert1 Byte[1]
> define EEPos1 8186
>
> define wert2 Byte[2]
> define EEPos2 8187
>
> define wert3 Byte[3]
> define EEPos3 8188
>
> define wert4 Byte[4]
> define EEPos4 8189
>
> define wert5 Byte[5]
> define EEPos5 8190
>
> define wert6 Byte[6]
> define EEPos6 8191
>
>
> '...
> 'Daten auslesen:
> sys RdByteWReg,EEPos1,EEPromAddr
> wert1=pop
> sys RdByteWReg,EEPos2,EEPromAddr
> wert2=pop
> sys RdByteWReg,EEPos3,EEPromAddr
> wert3=pop
> sys RdByteWReg,EEPos4,EEPromAddr
> wert4=pop
> sys RdByteWReg,EEPos5,EEPromAddr
> wert5=pop
> sys RdByteWReg,EEPos6,EEPromAddr
> wert6=pop
>
>
> '...
> '...
> 'Daten schreiben:
> sys WrByteWReg,Wert1,EEPos1,EEPromAddr
> sys WrByteWReg,Wert2,EEPos2,EEPromAddr
> sys WrByteWReg,Wert3,EEPos3,EEPromAddr
> sys WrByteWReg,Wert4,EEPos4,EEPromAddr
> sys WrByteWReg,Wert5,EEPos5,EEPromAddr
> sys WrByteWReg,Wert6,EEPos6,EEPromAddr
>
>
> '----Aufrufe-Bausteine m.Word-Addr.Reg.----------------
> 'i2caddr immer Schreibadresse !!
> 'addr = Registeradresse
> 'Byte schreiben:
> 'sys WrByteWReg,wert,addr,i2caddr
>
> 'Byte lesen:
> 'sys RdByteWReg,addr,i2caddr
> 'wert=pop
>
> 'Word schreiben:
> 'sys WrWordWReg,Wordwert,addr,i2caddr
>
> 'Word lesen:
> 'sys RdWordWReg,addr,i2caddr
> 'Wordwert=pop
>
> syscode "int_i2c.s19" 'nur einmal laden, dann auskommentieren
>
>
>
> Der Vorteil ist hier, daß Du wahlfrei auf das gesamte EEProm zugreifen kannst.
> (Man könnte sogar das Programm im laufenden Betrieb manipulieren ;-) )
>
> MfG André H.
>

 Antwort schreiben

Bisherige Antworten: