
|
INFO - FAQ - CC2-Forum - CCPro-Forum |
|
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 |