Option Explicit
Private Sub
Command_OpenCom_Click()If
Command_OpenCom.Caption = "COM öffnen"Then
'Serielle Schnittstelle öffnen
If
OPENCOM(Combo_Com.Text & ":" & Combo_Baud.Text & _ ",n,8,1") = 0Then
MsgBox ("Fehler, kann " & Combo_Com.Text & " nicht öffnen")Else
SDA 1'I2C-Interface testen
If Not
SDA_inThen
MsgBox ("Keine Antwort vom I2C-Seriell Interface")'Serielle Schnittstelle schließen
CLOSECOMElse
'I2C-Bus initialisieren
i2cInit i2cStart i2cNoAck i2cStop Command_OpenCom.Caption = "COM schließen" Command_By_lesen.Enabled =True
Command_By_schreiben.Enabled =True
Command_Block_lesen.Enabled =True
Command_Block_schreiben.Enabled =True End If End If Else
'Serielle Schnittstelle schließen
CLOSECOM Command_OpenCom.Caption = "COM öffnen" Command_By_lesen.Enabled =False
Command_By_schreiben.Enabled =False
Command_Block_lesen.Enabled =False
Command_Block_schreiben.Enabled =False End If End Sub
Private Sub Command_By_lesen_Click() i2cStartIf
i2cSlave(Combo_Adresse.Text)Then
'Bus-Adresse
i2cOut TextBox_ByAdresse.Text'Byteadresse
i2cStop i2cStart i2cOut Combo_Adresse.Text + 1'Bus-Adresse
TextBox_ByWert.Text = i2cIn'Wert vom EEprom lesen
End If
i2cNoAck i2cStopEnd Sub
Private Sub Command_By_schreiben_Click()On Error GoTo
ErrorHandlerIf
TextBox_ByWert.Text > 255Then
MsgBox ("Im Feld WERT nur Zahlen <= 255 erlaubt")Else
i2cStartIf
i2cSlave(Combo_Adresse.Text)Then
'Bus-Adresse
i2cOut TextBox_ByAdresse.Text'Byteadresse
i2cOut TextBox_ByWert.Text'Wert zum EEprom schreiben
i2cStopEnd If
i2cStopEnd If
ErrorHandler:Select Case
Err.Number'Fehlernummer auswerten.
Case
0'ok
Case
13 MsgBox ("Im Feld WERT nur Zahlen erlaubt") TextBox_ByWert.Text = ""Case Else
MsgBox ("Fehler " & Err.Number)End Select End Sub
Private Sub Command_Block_lesen_Click()Dim
i, ii, Wert, BlAnz, ByAdr BlAnz = TextBox_BlockAnz.Text ByAdr = TextBox_BlockAdr.TextFor
i = 13To
100: Rows(i).Clear:Next
i'Zeilen im Excelblatt löschen
Range("A1:A100").Font.Bold =True
'Spalte in Fettschrift
i2cStartIf
i2cSlave(Combo_Adresse.Text)Then
'Bus-Adresse
i2cOut TextBox_BlockAdr.Text'Byteadresse
i2cStop i2cStart i2cOut Combo_Adresse.Text + 1'Bus-Adresse des EEproms zum Lesen
For
i = 0To
BlAnz - 1 Cells(i + 13, 1) = ByAdrFor
ii = 0To
7'8 Bytes auslesen
If
ByAdr + ii <= 255Then
Wert = i2cIn'Wert vom EEprom lesen
Cells(i + 13, ii + 2) = WertIf
ii <> 7Then
i2cAck'Ack schicken
End If Else
i2cNoAck i2cStopExit Sub End If Next
ii ByAdr = ByAdr + 8'die nächsten 8 Bytes lesen
If
i <> BlAnz - 1Then
i2cAck'Ack schicken
End If Next
iEnd If
i2cNoAck i2cStopEnd Sub
Private Sub Command_Block_schreiben_Click()Dim
i, ii, Wert, BlAnz, ByAdr BlAnz = TextBox_BlockAnz.Text ByAdr = TextBox_BlockAdr.TextOn Error GoTo
ErrorHandlerFor
i = 0To
BlAnz - 1 i2cStartIf
i2cSlave(Combo_Adresse.Text)Then
'Bus-Adresse
i2cOut ByAdr'Byteadresse
For
ii = 0To
7'16 Bytes schreiben
If
ByAdr + ii <= 255Then
Wert = Cells(i + 13, ii + 2)If
Wert > 255Then
MsgBox ("Wert in Zelle " & Chr$(66 + ii) & i + 13 & " ungültig") Cells(i + 13, ii + 2) = 0 i2cNoAck i2cStopExit Sub Else
i2cOut Wert 'Byte zum EEprom übertragen
End If Else
i2cNoAck i2cStopExit Sub End If Next
ii i2cStop'Werte werden gebrannt
DELAY 20'20 ms warten bis Daten geschrieben sind
ByAdr = ByAdr + 8'die nächsten 8 Bytes schreiben
Else
i2cNoAck i2cStopExit Sub End If Next
i i2cNoAck i2cStop ErrorHandler:Select Case
Err.Number'Fehlernummer auswerten.
Case
0'ok
Case
13 MsgBox ("Nur Zahlen erlaubt" & vbCrLf & _ "Wert in Zelle " & Chr$(66 + ii) & i + 13 & " ungültig") Cells(i + 13, ii + 2) = 0Case Else
MsgBox ("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.