Hallo Forum,
es gibt schon viele Beispiele und Hinweise diese mit Byte zu beschreiben und lesen.
Ist ja auch kein Problem aber ich finde keine vernünftige Lösung für Single –Variablen.
Dieses Thema ist nach meiner persönlichen Meinung schon sehr unübersichtlich geworden. Somit ein Neustart.
Nun bitte ich um Hilfe.
Vielen Dank vorab
Mit freundlichen Grüßen
fredred
Zum Verständnis mein Terminal- Ausdruck für Byte-Variablen.
Funktioniert prima. Aber wie mit Single-Variablen ????
-------------------------------------
'---------------------------------------------------------Code:I2C Scan start gefunden h A0 b 10100000 EEPROM beschreiben... Adresse >1< wurde mit >0 beschrieben! Adresse >2< wurde mit >110 beschrieben! Adresse >3< wurde mit >120 beschrieben! Adresse >4< wurde mit >130 beschrieben! Adresse >5< wurde mit >140 beschrieben! Adresse >6< wurde mit >150 beschrieben! EEPROM auslesen... Adresse >1< wurde mit >0 gelesen! Adresse >2< wurde mit >110 gelesen! Adresse >3< wurde mit >120 gelesen! Adresse >4< wurde mit >130 gelesen! Adresse >5< wurde mit >140 gelesen! Adresse >6< wurde mit >150 gelesen! Hier mein letzter Code '****************** Test-Platine ************************* '* ist ein Testmodul für Data extern EEprom als Speicher * '* am I²C Bus ein 24c64 angeschlossen zum speichern * '* und lesen der Variablen * '* * '* alle Auswertungen für Test nur über Terminal anzeigen * '* * '*************! fredred@arcor.de !************************ $regfile "m32def.dat" $crystal = 16000000 $hwstack = 32 $swstack = 32 $framesize = 40 $baud = 19200 'gibt den Erstellungszeitpunkt im europäischen Format DD-MM-YY hh:nn:ss 'und die Code-Version aus. Print " " Print "erstallt am : " ; Version(1) Print "Version Code : " ; Version(3) Print " " Waitms 100 $lib "i2c_TWI.lib" 'Hardware I²C einbinden Config Twi = 100000 ' Takt 100kHz Const 24c64w = &B10100000 Const 24c64r = &B10100001 Dim Adresse As Word 'ist Adresszähler für Eeprom Dim Adresse_l As Byte At Adresse Overlay Dim Adresse_h As Byte At Adresse + 1 Overlay Dim Wert(6) As Word 'ist Schreibwerte Array Dim Wertalt As Word 'ist Lesewert Dim Aktionen As Byte 'ist Status für Aktionen 'war nur ein erfolgloser Versuch 'Dim Wert As Single 'Dim Werts As Byte At Wert(4) Overlay 'Dim Wertalt As Single 'Dim Wertl(4) As Byte At Wertalt Overlay '!!!!! ist nur für Test mit Taster also anpassen !!!! Config Pinc.3 = Input 'Taster für EEprom schreiben Portc.3 = 1 'Port auf H schalten Taster_s Alias Pinc.3 'Taster ein Namen geben Config Pinc.2 = Input 'Taster für EEprom lesen Portc.2 = 1 'Port auf H schalten Taster_l Alias Pinc.2 'Taster ein Namen geben 'Config Portc.4 = Output 'Eepvoll Alias Portc.4 'LED-Warnung für EEprom voll '+++ zu Test ob I²C Hardware OK ist +++ Gosub I2c_test '++++++++++++++++++++++++++++++++++++++ '------- nach Reset lesen ------------- Gosub Lesen '-------------------------------------- Do '!!! Testwerte !!! Wert(1) = Aktionen Wert(2) = 110 Wert(3) = 120 Wert(4) = 130 Wert(5) = 140 Wert(6) = 150 '!!!!!!!!!!!!!!!!!! '--- hier zum Daten schrieben -------- If Taster_s = 0 Then 'wenn Taste gedrückt schreiben Waitms 100 'nur für Test Incr Aktionen 'nur für Test Gosub Schreiben End If '--- hier zum Daten lesen ------------ If Taster_l = 0 Then 'wenn Taste gedrückt lesen Waitms 100 'nur für Test Gosub Lesen End If Loop End '################################################################### Lesen: Print "" Print "EEPROM auslesen..." For Adresse = 1 To 6 I2cstart I2cwbyte 24c64w I2cwbyte Adresse_h I2cwbyte Adresse_l I2cstart I2cwbyte 24c64r I2crbyte Wertalt , Nack I2cstop Print "Adresse >" ; Adresse ; "< wurde mit >" ; Wertalt ; " gelesen!" Next Return '############################################################################# Schreiben: Print "" Print "EEPROM beschreiben..." For Adresse = 1 To 6 I2cstart Adresse_h = High(adresse) Adresse_l = Low(adresse) I2cwbyte 24c64w I2cwbyte Adresse_h I2cwbyte Adresse_l I2cwbyte Wert(adresse) I2cstop Print "Adresse >" ; Adresse ; "< wurde mit >" ; Wert(adresse) ; " beschrieben!" Next Return '############################################################################# I2c_test: Dim Busaddress As Byte Dim Busaddress_read As Byte Dim Chipaddress As Byte Print "I2C Scan start" 'I²C Porterweiterung testen 'Alle Adresen Suche und Anzeigen 'Step 2 soll nur IC Adresse aufrufen für lesen For Chipaddress = 0 To 254 Step 2 ' IC's am I²C-Bus erkennen I2cstart 'send start I2cwbyte Chipaddress 'sende Addresse auf Bus If Err = 0 Then 'Chip gefunden If Chipaddress = 24c64w Then Print "gefunden " ; "h " ; Hex(chipaddress) ; " b " ; Bin(chipaddress) End If End If Next Waitms 200 I2cstop Return
So sieht das mit Code-Fenster aus - Manf
Lesezeichen