Ja, ich denke schon das ich alles richtig angeschlossen habe.
Die beider controller haben die selbe Spannungsversorgung, also auch Masse.
Als Pull-Up habe ich zwei 5,6 kOhm Widerstände gewählt.
Als Code für den Slave mit dem LCD habe ich:
Code:
#define SLAVE_ADRESSE 0x50
void lcd_puti( const int val )
{
lcd_clrscr();
char buffer[8];
lcd_puts( itoa(val, buffer, 10) );
}
int main(void)
{
init_twi_slave(SLAVE_ADRESSE);
for(uint8_t i=0;i<i2c_buffer_size;i++)
{
i2cdata[i]=10+i;
}
lcd_init(LCD_DISP_ON);
_delay_ms(500);
lcd_puti(i2cdata[5]);
}
natürlich mit includes
und als code für den master:
Code:
i2c_init();
if(!(i2c_start(SLAVE_ADRESSE+I2C_WRITE)))
{
i2c_write(0x00);
i2c_write(30);
i2c_stop();
}
else
{
PORTB |= (1<<PB0);
}
Hier praktisch direkt von RN-Wissen übernommen.
Für Testzwcke habe ich den Code noch nicht wirklich verändert.
Die LED an B0 geht immer an.
Lesezeichen