Best Dank "Gast" für die Info ...
Code:
' ------------ Bascom - Parameter ------------------------$regfile = "m328pdef.dat"
$crystal = 16000000
$hwstack = 100
$swstack = 100
$framesize = 100
$baud = 9600
Print "Start_Main"
' ------------ I2C - Master ------------------------
$lib "i2c_twi.lbx"
Config Scl = Portc.5
Config Sda = Portc.4
I2cinit
Config Twi = 100000
' ------------ RS232 - Input ------------------------
Config Serialin = Buffered , Size = 40
Enable Interrupts
' ------------ DIM ------------------------
Dim Na As String * 30 'RS232-Input-String
Dim Si As Byte 'RS232 Input
Dim X As Byte 'Temp-Data
Do
If Ischarwaiting() <> 0 Then
Si = Inkey()
If Si <> 13 And Si <> 10 And Len(na) < 30 Then
Na = Na + Chr(si)
Else
If Ucase(na) = "STATUS" Then
Print "ACK;STATUS"
Waitms 500
Print "Status;xxxx"
Elseif Ucase(na) = "ON" Then
Print "ACK;ON"
I2csend &H40 , &HFF 'PCF8574 Write
I2creceive &H40 , X 'PCF8574 Read
Print "ON;" ; X
Elseif Ucase(na) = "OFF" Then
Print "ACK;OFF"
I2csend &H40 , &H00 'PCF8574 Write
I2creceive &H40 , X 'PCF8574 Write
Print "OFF;" ; X
Else
Print "NAK;" ; Na
End If
Na = ""
End If
End If
Loop
habe die LIB "i2c_twi.lbx" in meinem einfachem Test-Programm eingebunden und es hat auf Anhieb geklappt ...
In ein paar Tagen bekomme ich 5 weitere Arduion_Nano, dann werde ich auch mal die kostenpflichtige "I2CSLAVE Library" ausprobieren ...
da der ATMega328P wohl eine Weiterentwicklung des M128 mit TWI-Hardware (TWI-I2C) ist, sollte auch die Hardware-Unterstützung damit klappen ...
Lesezeichen