CodeBox C
// Strommessung
i2c_start(adr_ina219); // Angabe Adresse
i2c_write(01); // Strom
i2c_stop();
i2c_start(adr_ina219 +1); // Auslesen Adresse + 1
msb_strom = i2c_readAck(); //...speichere oberes Bit
lsb_strom = i2c_readNak(); //...speichere unteres Bit
i2c_stop();
strom_wrd = (msb_strom << 8 | lsb_strom); // Zusammensetzung von o. & u. Byte
strom_anz = strom_wrd / 8;
if (strom_anz == 8191)
{
strom_anz = 0;
}
utoa(strom_anz, Buffer, 10 );
lcd_printlc(2,10," ");
lcd_printlc(2,11,Buffer);
// Spannungsmessung
i2c_start(adr_ina219); // Angabe Adresse
i2c_write(0x02); // Register Spannung
i2c_stop();
i2c_start(adr_ina219 +1); // Auslesen Adresse + 1
msb_spannung = i2c_readAck(); //...speichere oberes Bit
lsb_spannung = i2c_readNak(); //...speichere unteres Bit
i2c_stop();
spannung_wrd = (msb_spannung << 8 | lsb_spannung); // Zusammensetzung von o. & u. Byte
spannung_anz = spannung_wrd / 2; // Wert Spannung / 2
spannung_anz1 = spannung_anz % 10; // 4. Zahl ok
spannung_anz2 = spannung_anz / 10;
spannung_anz3 = spannung_anz2 % 10; // 3. Zahl
spannung_anz4 = spannung_anz2 / 10;
spannung_anz5 = spannung_anz4 % 10; // 2. Zahl
spannung_anz6 = spannung_anz4 / 10;
spannung_anz7 = spannung_anz6 % 10; // 1. Zahl
itoa(spannung_anz7, Buffer, 10 ); // 1. Zahl
lcd_printlc(3,10," ");
lcd_printlc(3,10,Buffer);
itoa(spannung_anz5, Buffer, 10 ); // 2. Zahl
lcd_printlc(3,12," ");
lcd_printlc(3,12,Buffer);
itoa(spannung_anz3, Buffer, 10 ); // 3. Zahl
lcd_printlc(3,13," ");
lcd_printlc(3,13,Buffer);
itoa(spannung_anz1, Buffer, 10 ); // 4. Zahl
lcd_printlc(3,14," ");
lcd_printlc(3,14,Buffer);
// Powermessung
i2c_start(adr_ina219); // Angabe Adresse
i2c_write(0x03); // Power 03
i2c_stop();
i2c_start(adr_ina219 +1); // Auslesen Adresse + 1
msb_power = i2c_readAck(); //...speichere oberes Bit
lsb_power = i2c_readNak(); //...speichere unteres Bit
i2c_stop();
power_wrd = (msb_power << 8 | lsb_power); // Zusammensetzung von o. & u. Byte
power_anz = power_wrd; // Wert Spannung / 2 100
itoa(power_anz, Buffer, 10 );
lcd_printlc(4,10," ");
lcd_printlc(4,10,Buffer);