#include #include #include #include #include #define F_CPU 3686400 int main(void) //R0: Umgebungstemp. //R1-R8: Temp. Pixel 1 - 8 //R9: Softwarerevision { uint8_t i,zw; uint8_t data[10]; sbi (DDRC,0); //TWI enable TWCR = (TWCR | (1 << TWEN)); //Einstellen des I²C-Taktes //~ 100 kHz TWBR = 0x0A; TWSR = TWSR & ~((1 << TWPS0) | (1 << TWPS1)); //TWPS = 1 for (;;) { //Senden der Start-Bedingung TWCR = ((1 << TWSTA) | (1 << TWINT) | (1 << TWEN)); //Warten, bis TWINT-Bit gesetzt ist while (!(TWCR & (1 << TWINT))); //Senden der Adresse TWDR = 0xD0; TWCR = ((1 << TWINT) | (1 << TWEN)); //TWEN eventuell löschbar //Warten, bis TWINT-Bit gesetzt ist (=0) while (!(TWCR & (1 << TWINT))); //Senden der Daten TWDR = 0x00; //bus adresse ändern TWCR = ((1 << TWINT) | (1 << TWEN)); //Warten, bis TWINT-Bit gesetzt ist (=0) while (!(TWCR & (1 << TWINT))); //bus adresse ändern TWDR = 0xA0; //bus adresse ändern //1 TWCR = ((1 << TWINT) | (1 << TWEN)); //Warten, bis TWINT-Bit gesetzt ist (=0) while (!(TWCR & (1 << TWINT))); //bus adresse ändern _delay_ms(60); TWDR = 0xAA; //bus adresse ändern //2 TWCR = ((1 << TWINT) | (1 << TWEN)); //Warten, bis TWINT-Bit gesetzt ist (=0) while (!(TWCR & (1 << TWINT))); //bus adresse ändern _delay_ms(60); TWDR = 0xA5; //bus adresse ändern //3 TWCR = ((1 << TWINT) | (1 << TWEN)); //Warten, bis TWINT-Bit gesetzt ist (=0) while (!(TWCR & (1 << TWINT))); //bus adresse ändern _delay_ms(60); TWDR = 0xD2; //bus adresse ändern //4 TWCR = ((1 << TWINT) | (1 << TWEN)); //Warten, bis TWINT-Bit gesetzt ist (=0) while (!(TWCR & (1 << TWINT))); //Senden der Stop-Bedingung TWCR = ((1 << TWSTO) | (1 << TWINT) | (1 << TWEN)); } }