Gast
#3521300
Hallo
ich versuche I²C kommunikation zwischen Master und Slave zu
programmieren. Master habe ich programmiert und wollte euch fragen ob
ihr mein code anschauen könnt und mich auf evtl. Fehler hinweisen
könntet.
Danach habe ich vor den Slave zu programmieren.
//
TWBR = 0x3C;
TWSR = ((1<<TWPS0)|(1<<TWPS1));
while(1)
{
if(!(PINB & (1<<PB2)))
{
twi_start_condition();
twi_adress();
twi_read();
twi_data();
twi_read();
twi_stop_condition();
}
}
}
void twi_start_condition(void)
{
TWCR = (1 << TWINT) | (1 << TWSTA) | (1 << TWEN);
while(!(TWCR & (1 << TWINT)));
}
void twi_adress()
{
TWDR = 0xEE;
TWCR = (1<<TWINT)|(1<<TWEN);
while(!(TWCR & (1 << TWINT)));
}
void twi_data()
{
TWDR = 0x2E;
TWCR = (1<<TWINT)|(1<<TWEN);
while(!(TWCR & (1 << TWINT)));
}
void twi_read()
{
TWCR = (1<<TWINT)|(1<<TWEN)|(1<<TWAR);
while(!(TWCR & (1 << TWINT)));
}
void twi_stop_condition()
{
TWCR = (1<<TWINT)|(1<<TWEN)|(1<<TWSTO);
}
Danke