Option ExplicitPrivate SubCommand_OpenCom_Click()IfCommand_OpenCom.Caption = "COM öffnen"Then'Serielle Schnittstelle öffnenIfOPENCOM(Combo_Com.Text & ":" & Combo_Baud.Text & _ ",n,8,1") = 0ThenMsgBox ("Fehler, kann " & Combo_Com.Text & " nicht öffnen")ElseSDA 1'I2C-Interface testenIf NotSDA_inThenMsgBox ("Keine Antwort vom I2C-Seriell Interface")'Serielle Schnittstelle schließenCLOSECOMElse'I2C-Bus initialisiereni2cInit i2cStart i2cNoAck i2cStop Command_OpenCom.Caption = "COM schließen" Command_By_lesen.Enabled =TrueCommand_By_schreiben.Enabled =TrueCommand_Block_lesen.Enabled =TrueCommand_Block_schreiben.Enabled =True End If End If Else'Serielle Schnittstelle schließenCLOSECOM Command_OpenCom.Caption = "COM öffnen" Command_By_lesen.Enabled =FalseCommand_By_schreiben.Enabled =FalseCommand_Block_lesen.Enabled =FalseCommand_Block_schreiben.Enabled =False End If End Sub
![]()
Private Sub Command_By_lesen_Click() i2cStartIfi2cSlave(Combo_Adresse.Text)Then'Bus-Adressei2cOut TextBox_ByAdresse.Text'Byteadressei2cStop i2cStart i2cOut Combo_Adresse.Text + 1'Bus-AdresseTextBox_ByWert.Text = i2cIn'Wert vom EEprom lesenEnd Ifi2cNoAck i2cStopEnd Sub
![]()
Private Sub Command_By_schreiben_Click()On Error GoToErrorHandlerIfTextBox_ByWert.Text > 255ThenMsgBox ("Im Feld WERT nur Zahlen <= 255 erlaubt")Elsei2cStartIfi2cSlave(Combo_Adresse.Text)Then'Bus-Adressei2cOut TextBox_ByAdresse.Text'Byteadressei2cOut TextBox_ByWert.Text'Wert zum EEprom schreibeni2cStopEnd Ifi2cStopEnd IfErrorHandler:Select CaseErr.Number'Fehlernummer auswerten.Case0'okCase13 MsgBox ("Im Feld WERT nur Zahlen erlaubt") TextBox_ByWert.Text = ""Case ElseMsgBox ("Fehler " & Err.Number)End Select End Sub
![]()
Private Sub Command_Block_lesen_Click()Dimi, ii, Wert, BlAnz, ByAdr BlAnz = TextBox_BlockAnz.Text ByAdr = TextBox_BlockAdr.TextFori = 13To100: Rows(i).Clear:Nexti'Zeilen im Excelblatt löschenRange("A1:A100").Font.Bold =True'Spalte in Fettschrifti2cStartIfi2cSlave(Combo_Adresse.Text)Then'Bus-Adressei2cOut TextBox_BlockAdr.Text'Byteadressei2cStop i2cStart i2cOut Combo_Adresse.Text + 1'Bus-Adresse des EEproms zum LesenFori = 0ToBlAnz - 1 Cells(i + 13, 1) = ByAdrForii = 0To7'8 Bytes auslesenIfByAdr + ii <= 255ThenWert = i2cIn'Wert vom EEprom lesenCells(i + 13, ii + 2) = WertIfii <> 7Theni2cAck'Ack schickenEnd If Elsei2cNoAck i2cStopExit Sub End If Nextii ByAdr = ByAdr + 8'die nächsten 8 Bytes lesenIfi <> BlAnz - 1Theni2cAck'Ack schickenEnd If NextiEnd Ifi2cNoAck i2cStopEnd Sub
![]()
Private Sub Command_Block_schreiben_Click()Dimi, ii, Wert, BlAnz, ByAdr BlAnz = TextBox_BlockAnz.Text ByAdr = TextBox_BlockAdr.TextOn Error GoToErrorHandlerFori = 0ToBlAnz - 1 i2cStartIfi2cSlave(Combo_Adresse.Text)Then'Bus-Adressei2cOut ByAdr'ByteadresseForii = 0To7'16 Bytes schreibenIfByAdr + ii <= 255ThenWert = Cells(i + 13, ii + 2)IfWert > 255ThenMsgBox ("Wert in Zelle " & Chr$(66 + ii) & i + 13 & " ungültig") Cells(i + 13, ii + 2) = 0 i2cNoAck i2cStopExit Sub Elsei2cOut Wert 'Byte zum EEprom übertragenEnd If Elsei2cNoAck i2cStopExit Sub End If Nextii i2cStop'Werte werden gebranntDELAY 20'20 ms warten bis Daten geschrieben sindByAdr = ByAdr + 8'die nächsten 8 Bytes schreibenElsei2cNoAck i2cStopExit Sub End If Nexti i2cNoAck i2cStop ErrorHandler:Select CaseErr.Number'Fehlernummer auswerten.Case0'okCase13 MsgBox ("Nur Zahlen erlaubt" & vbCrLf & _ "Wert in Zelle " & Chr$(66 + ii) & i + 13 & " ungültig") Cells(i + 13, ii + 2) = 0Case ElseMsgBox ("anderer Fehler " & Err.Number)End Select End Sub
![]()

| Beispiele als Excel Makro |
| |
II2C-Ps-EEprom-Test.xls und port.dll (69 kB) Excel-Makro für den I2C-Koppler mit einem Beispiel zum Auslesen und Beschreiben von EEproms. |
|
vba-makros.pdf (528 kB) Bei den Makros kann es je nach Sicherheitseinstellungen zu Fehlermeldungen kommen. Eine Anleitung wie Sie die Makros ausführen können finden Sie in diesem Dokument |
|
|
Bausätze können Sie günstig in unserem Onlineshop in der Rubrik
"I2C-Komponenten" bestellen. |
Copyright © www.horter.de All rights reserved.