Aus RN-Wissen.de
Wechseln zu: Navigation, Suche
Balkonkraftwerk Speicher und Wechselrichter Tests und Tutorials

(Beispiel für EEprom 24C16)
(Beispiel für EEprom 24C256)
Zeile 92: Zeile 92:
 
=== Beispiel für EEprom 24C256 ===
 
=== Beispiel für EEprom 24C256 ===
 
<pre>
 
<pre>
 +
'============I2C EEprom schreiben/lesen ==================================
  
</pre>
+
' =========== Für 24C256 EEprom =====================
 +
' 8MHz Quarz
 +
' LCD auf Port B ,
 +
'
 +
$regfile = "m8def.dat"
 +
$crystal = 8000000
  
 +
'---Config für LCD -----------------
 +
Config Lcd = 40 * 2
 +
Config Lcdpin = Pin , Db4 = Portb.0 , Db5 = Portb.1 , Db6 = Portb.2 , Db7 = Portb.3 , Rs = Portb.4 , E = Portb.5
 +
Config Lcdbus = 4
 +
Config Lcdmode = Port
 +
Cursor On
  
  
 +
'SDA und SCL definieren
 +
Config Sda = Portd.5                                       
 +
Config Scl = Portd.7                                       
  
  
 +
Dim X As Byte
 +
Dim A As Byte
 +
Dim B As Byte
 +
Dim Lesen As Byte
 +
CLS
  
 +
Do
 +
'---- schreibe in EEprom ----
 +
For A = 1 To 10
 +
Incr X                                    '1 bis Überlauf zählen
  
 +
I2cstart                                  'Start I2C
 +
I2cwbyte &HA0                            'Sende Slave Adresse
 +
I2cwbyte A                                'Sende Speicheradresse LOw
 +
I2cwbyte 1                                'Sende Speicheradresse High
 +
I2cwbyte X                                'Sende Wert
 +
I2cstop                                  'Stop I2C
 +
Waitms 10                                'warte 10ms
  
 +
Locate 1 , 1
 +
Lcd "ins EEprom = " ; X ; "  "  ' Ausgabe der geschriebenen Werte am LCD
 +
Waitms 500
 +
Next A
  
 +
 +
'--- lesen vom EEprom ----
 +
For B = 1 To 10
 +
 +
I2cstart                                    'Start I2C
 +
I2cwbyte &HA0                              'sende Slave Adresse 
 +
I2cwbyte B                                  'sende Speicheradresse Low
 +
I2cwbyte 1                                  'sende Speicheradresse High
 +
 +
I2cstart                                    'Start I2C
 +
I2cwbyte &HA1                              'sende Slave Adresse +1 für schreiben
 +
I2crbyte Lesen , Nack                      'lese Adresse vom EEprom
 +
I2cstop                                    'Stop I2C
 +
 +
Locate 2 , 1
 +
Lcd "Lese  EEprom= " ; Lesen ; "  "                        'Ausgabe der EEprom Werte
 +
Waitms 500
 +
Next B
 +
 +
Loop
 +
End
 +
</pre>
  
 
==Autor==
 
==Autor==

Version vom 25. Januar 2006, 12:34 Uhr

Ansteuern vom I2C EEprom's mit Bascom

Allgemein

I


Etwas genauer

Struktur:

 

blablaaa


Beispiel für EEprom 24C16

'============I2C EEprom schreiben/lesen ==================================

 ' =========== Für 24C16 EEprom =====================
 ' 8MHz Quarz
 ' LCD auf Port B ,
 '
$regfile = "m8def.dat"
$crystal = 8000000

'---Config für LCD -----------------
Config Lcd = 40 * 2
Config Lcdpin = Pin , Db4 = Portb.0 , Db5 = Portb.1 , Db6 = Portb.2 , Db7 = Portb.3 , Rs = Portb.4 , E = Portb.5
Config Lcdbus = 4
Config Lcdmode = Port
Cursor On


'SDA und SCL definieren
Config Sda = Portd.5                                         
Config Scl = Portd.7                                        


Dim X As Byte
Dim A As Byte
Dim B As Byte
Dim Lesen As Byte

Do
'---- schreibe in EEprom ----
For A = 1 To 10
Incr X                                    '1 bis Überlauf zählen

I2cstart                                  'Start I2C
I2cwbyte &HA0                             'Sende Slave Adresse
I2cwbyte A                                'Sende Speicheradresse
I2cwbyte X                                'Sende Wert
I2cstop                                   'Stop I2C
Waitms 10                                 'warte 10ms

Locate 1 , 1
Lcd "ins EEprom = " ; X ; "  "  ' Ausgabe der geschriebenen Werte am LCD
Waitms 500
Next A


'--- lesen vom EEprom ----
For B = 1 To 10

I2cstart                                    'Start I2C
I2cwbyte &HA0                               'sende Slave Adresse  
I2cwbyte B                                  'sende Speicheradresse

I2cstart                                    'Start I2C
I2cwbyte &HA1                               'sende Slave Adresse +1 für schreiben
I2crbyte Lesen , Nack                       'lese Adresse vom EEprom
I2cstop                                     'Stop I2C

Locate 2 , 1
Lcd "Lese  EEprom= " ; Lesen ; "  "                         'Ausgabe der EEprom Werte
Waitms 500
Next B

Loop
End

Beispiel für EEprom 24C256

'============I2C EEprom schreiben/lesen ==================================

 ' =========== Für 24C256 EEprom =====================
 ' 8MHz Quarz
 ' LCD auf Port B ,
 '
$regfile = "m8def.dat"
$crystal = 8000000

'---Config für LCD -----------------
Config Lcd = 40 * 2
Config Lcdpin = Pin , Db4 = Portb.0 , Db5 = Portb.1 , Db6 = Portb.2 , Db7 = Portb.3 , Rs = Portb.4 , E = Portb.5
Config Lcdbus = 4
Config Lcdmode = Port
Cursor On


'SDA und SCL definieren
Config Sda = Portd.5                                         
Config Scl = Portd.7                                        


Dim X As Byte
Dim A As Byte
Dim B As Byte
Dim Lesen As Byte
CLS

Do
'---- schreibe in EEprom ----
For A = 1 To 10
Incr X                                    '1 bis Überlauf zählen

I2cstart                                  'Start I2C
I2cwbyte &HA0                             'Sende Slave Adresse
I2cwbyte A                                'Sende Speicheradresse LOw
I2cwbyte 1                                'Sende Speicheradresse High
I2cwbyte X                                'Sende Wert
I2cstop                                   'Stop I2C
Waitms 10                                 'warte 10ms

Locate 1 , 1
Lcd "ins EEprom = " ; X ; "  "  ' Ausgabe der geschriebenen Werte am LCD
Waitms 500
Next A


'--- lesen vom EEprom ----
For B = 1 To 10

I2cstart                                    'Start I2C
I2cwbyte &HA0                               'sende Slave Adresse  
I2cwbyte B                                  'sende Speicheradresse Low
I2cwbyte 1                                  'sende Speicheradresse High

I2cstart                                    'Start I2C
I2cwbyte &HA1                               'sende Slave Adresse +1 für schreiben
I2crbyte Lesen , Nack                       'lese Adresse vom EEprom
I2cstop                                     'Stop I2C

Locate 2 , 1
Lcd "Lese  EEprom= " ; Lesen ; "  "                         'Ausgabe der EEprom Werte
Waitms 500
Next B

Loop
End

Autor


Siehe auch


LiFePO4 Speicher Test