Gast
#110067
Hallo Leute, Ich möchte ein 4 fach dig. Pot. (DS1844) mit einem ATmega8 mit intern 1MHz ansteuern, dazu benutze ich die I2C Library von Peter Fleury. SCL ist bei mir PD7, SDA an PD6. Ich hab alle Device Pins des DS1844 auf Masse, dh. mein Controll-Byte ist 0x50, mei programm sieht folgendermaßen aus: #include <avr/io.h> #include "i2cmaster.h" #define Dev 0x50 // device address of DS1844 int main(void) { unsigned char ret; DDRB = 0xff; PORTB = 0x00; i2c_init(); ret = i2c_start(Dev+I2C_WRITE); if ( ret ) { i2c_stop(); PORTB= ret; //Fehler LED leuchtet }else { i2c_write(0x09); //Pot. 0 i2c_write(0x49); //Pot. 1 i2c_write(0x89); //Pot. 2 i2c_write(0xc9); //Pot. 3 i2c_stop(); } } Wenn ich mir die Signale am Oszi anschaue, würd ich sagen der Clock passt, aber anstatt bei SDA 0x50 (0101 0000) zu haben, wird mir 0100 0010 angezeigt? Ich verwende das PonyProg und einen Adapter an LPT1. Wäre super wenn mir jemand helfen kann