Hallo,
wenn ich das richtig nachvollzogen habe, dann wird hier:
Code:
i2c_init();
if(!(i2c_start(SLAVE_ADRESSE+I2C_WRITE))) 
{
 i2c_write(0x00);
 i2c_write(30);
 i2c_stop();
nur das "nullte" Byte des Arrays auf 30 gesetzt.
Du liest aber mit
Code:
lcd_puti(i2cdata[5]);
das 5. Byte aus, welches ja nicht vom Master verändert wurde.
Könnte das vielleicht die Ursache sein?
Grüße,
Bernhard