#define F_CPU 16000000 #define F_SCL 100000 // 100kHz #include #include #include "lcd.h" #include static int lcd_putchar(char c, FILE *stream){ LCDCharacterOut(c); return 0; } static FILE mystdout = FDEV_SETUP_STREAM(lcd_putchar, NULL,_FDEV_SETUP_WRITE); volatile unsigned char countI2C = 0; volatile unsigned char deviceI2C = 0; // ADS1114 Slave Adresse unsigned char SLA_W_ADS1114 = 0x90; unsigned char SLA_R_ADS1114 = 0x91; unsigned int Messwert_sum = 0; unsigned int Messwert_H = 0; unsigned int Messwert_L = 0; int i = 0; ISR(TWI0_vect) { if(deviceI2C == 0) { switch (countI2C) { case 0: { switch (TWSR0) { case 0x08: // Start has been transmitted TWDR0 = SLA_W_ADS1114; // Slave Adresse Write TWCR0 = (1 << TWINT) | (1 << TWEN) | (1 << TWIE); break; case 0x18: // Adr + W has been transmitted TWDR0 = 0b00000001; // Pointer Register, 0x01 =Config Register TWCR0 = (1<>0; // MSB und LSB an die richtige stelle schieben LCDCursorHome(); printf("Spannung: %.2f V",Messwert_sum *0.0001875); // temp sum in fließkommazahl umrechnen und ausgeben countI2C = 0; TWCR0 = (1<