Hallo

Ich hab im Internet eine Software I²C Implementierung gefunden (-> MAIN: i.c HEADER:i2c_software_master.h)
Mein I²C Bus ist auf 3.3V ausgelegt und die Implementierung ist für den 5V Master. Hierfür hab ich externe Pull-Up Widerstände - somit muss ich die internen vom Master ja deaktivieren (auskommentieren):
Code:
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
void sda_low()
{
	I2C_PORT 		&=  ~(1<<SDA);    			// internen Pull-Up aus
	I2C_DDR 		|=   (1<<I2C_DDR_REG_BIT);  // Pin von SDA als Ausgang

}
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
void sda_high()
{
	I2C_DDR 		&= ~(1<<I2C_DDR_REG_BIT);  	// Pin von SDA als Eingang 
	//I2C_PORT 		|=  (1<<SDA);    			// internen Pull-Up an 
} 
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
////////////////////////////////////////////////////////////////////////////////////////////

#define I2C_SCL_LOW		I2C_PORT &= ~(1 << SCL)	// Clock Low Output
#define I2C_SCL_HIGH	        I2C_PORT |=  (1 << SCL)	// Clock High Output
Ist das richtig so? Oder muss ich da im eigentlichen Programmcode noch ändern?