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: Beispielprogramm IIC_Datenspeicher Kategorie: Programmierung Basic (von Henrik, Homepage - 5.10.2005 19:46)
 Als Antwort auf Beispielprogramm IIC_Datenspeicher von Benny - 5.10.2005 18:14
Henrik nutzt:  CC1-M-Unit V1.2/2.0, Micro

>
> Hallo,
>
> ich habe eine Frage zum Beispielprogramm IIC Datenspeicher.
> Ich benutze eine meinem Programm angepaßte Version um Meßdaten
> in einem externen EEPROM abzuspeichern.
>
> Wozu dienen die Variablen  CLOCKS, MASK und COUNTER ?
> Wenn ich sie weglasse geht das Programm trotzdem.

Die genannten Variablen werden schlicht nicht gebraucht und scheinen Überbleibsel
aus Copy und Paste Aktionen zu sein. Soetwas passiert nicht nur "Die Hard" :-).
Die Sache mit dem kommentieren... na ja... Dadurch, das Die Hard gerne viele
Befehle in eine Zeile klatscht, wird es schon schwierig. Allerdings sind bei Kommentaren
grundsätzlich innerhalb des Listings Grenzen gesetzt. Niemandem wird es gelingen
hier alle Aspekte zu berücksichtigen.

Aus meiner privaten Bibliothek sieht ein Beispiel so aus (in Basic++ - warum schlagen
sich noch so viele mit dem unflexiblen CCBasic herum?).


'--------------- I2CEEPROM ROUTINEN ---------------------------------

declare function writebyte()
declare function readbyte()

define address      as    word[2]
define addrhi       as    byte[3]
define addrlo       as    byte[4]
define data         as    byte


const eeprom1         =   162           'ggf. anpassen

'--------------- Initialisierungen  ---------------------------------
'------- Pullups  auf beiden Ports einschalten ----------------------

config.init
config.get TEMPval                 'den aktuellen Wert lesen,
tempval = (TEMPval or 00011000b)
config.put TEMPval                 'Bits setzten und zurück schreiben
config.off

lcd.init                           'LCD initialisieren




'-------------- Hauptprogramm -----------------------


'Beispiel schreiben:
'data = 53           'zu schreibender Wert
'adress =1           'zu beschreibende Adresse
'writebyte()        
'
'Beispiel lesen:

'address = 1         'Adresse des zu lesenden Wertes
'readbyte()          'in data steht nun der  
'                    'gelesene Wert
'

'-----------------------------------------------------
'- BYTE (DATA) AUF EEPROM ADRESSE (ADDRESS) SPEICHERN -
'- nutzt die Variablen data und address und die Kon-
'- stante eeprom1.
'- address ist in addrhi und addrlo byteweise geteilt

function writebyte()

'lcd.off                  'falls Umleitung eingeschaltet

IIC.init
IIC.stop
IIC.start
IIC.send eeprom1
IIC.send ADDRHI
IIC.send ADDRLO
IIC.send DATA
IIC.stop
IIC.off

for temp = 0 to 40        'Warteschleife zur Sicherstellung, daß
next temp                 'das Byte zuverlässig geschrieben wird
                          'Alternativ könnte auch Error abgefragt
                          'werden, das kostet aber mehr Speicher.

'lcd.init switchonly      'falls LCD Umleitung wieder hergestellt
                          'werden soll
end function
'-----------------------------------------------------------------
'---  BYTE (DATA) VON EEPROM ADRESSE (ADDRESS) LESEN           ---
'-----------------------------------------------------------------
function readbyte()

'lcd.off                   'falls Umleitung eingeschaltet

IIC.init                    
IIC.stop
IIC.start
IIC.send eeprom1
IIC.send ADDRHI
IIC.send ADDRLO
IIC.stop
IIC.start
IIC.send (eeprom1 +1)      'lesen!
IIC.get DATA
IIC.stop
IIC.off

'lcd.init switchonly       'falls LCD Umleitung wieder hergestellt
                           'werden soll

end function
'-----------------------------------------------------------------


Grüße Henrik (der sich von der C-Control weitestgehend zurückgezogen hat)


Meine Homepage: http://www.henrik-reimers.de/control/

 Antwort schreiben

Bisherige Antworten:

Re: Beispielprogramm IIC_Datenspeicher (von Woschi - 7.10.2005 20:22)
    Re: Beispielprogramm IIC_Datenspeicher (von Henrik - 8.10.2005 0:44)