... für den PCF8574 hätte ich hier etwas:
Mußt Du dann für den Mega 16 entsprechend anpassen.
Gib mal bei Bascom im Hilfeindex i2cwbyte ein, dann findest Du auch 'ne Menge zum Thema.Code:'I2C-Test.BAS: I2C-Beispiel: 7-segm.LED über PCF8574 schreiben 'Hardware: PCF8574 ' A0-A2 auf GND 0.0.0 = &H40 ' '------------------------------------------------------------------------------- $regfile = "m8def.dat" 'ATmega8-Deklarationen $crystal = 3686400 'Quarz: 3,6864 MHz $baud = 9600 'Baudrate zum PC: 9600 Baud ' Dim I As Byte 'Für temporären Gebrauch Statusbyte Dim Daten As Byte 'datenbyte für I2C Config Sda = Portc.4 'ist für I2C erforderlich Config Scl = Portc.5 'dito '------------------------------------------------------------------------------- Const Pcfled = &H40 'LED an PCF8574 ohne A an 0.0.0 'BITMUSTER 7-seg.-LED 'PCF P0 = Segm. A ..... usw. aufsteigend Const Led_0 = &B11000000 'Bitmuster 0 ungedrehte Logik !! Const Led_1 = &B11111001 'Bitmuster 1 LED an gemeinsamer Const Led_2 = &B10100100 'Bitmuster 2 Anode. Const Led_3 = &B10110000 'Bitmuster 3 Const Led_4 = &B10011001 'Bitmuster 4 Const Led_5 = &B10010010 'Bitmuster 5 Const Led_6 = &B10000010 'Bitmuster 6 '------------------------------------------------------------------------------- I2cinit 'I2c initialisieren I2cstart 'Bus starten I2cwbyte Pcfled 'Addresse Chip senden I2cwbyte Led_5 'Byte Bitmuster sendeN I2cstop 'Bus wieder freigeben End 'end program
Gruß Gerhard
ps.: die Pullups für SDA und SCL habe ich extern in meiner Schaltung !!






Zitieren

Lesezeichen