Hallo,
ich möchte, wie es der Titel sagt, über ein Atmega32 ein 16x2 LCD über TWI ansteuern. Es gibt im RN-Wissen bereich und bei microcontroller.de schon ein paar Erklärungen zu den Registern und dem Code. Allerdings komme ich damit nicht weiter. Der, wahrscheinlich sehr falsche, Code den ich bis jetzt habe sieht so aus:
#include <avr/io.h>

int main(void)
{
TWBR = 0b00000010;
TWCR = (1<<TWINT) | (1<<TWSTA) | (1<<TWEN);
while (!(TWCR & (1<<TWINT)));
TWDR = 0x00;
TWCR = (1<<TWINT) | (1<<TWEN) | (1<<TWSTO);
while (!(TWCR & (1<<TWINT)));
while(1)
{

}
}

ich benutze momentan die interne Frequenz von 1Mhz und habe dafür bei atmel TWBR = 2(0b00000010) gefunden. Die erste Codezeile ist mir noch klar, also da wo TWCR gesetzt wird. Bei der while überprüfung weiß ich nur, dass dort überprüft wird ob keine fehler auftreten(?). Mit TWDR sendet man,so wie ich das verstanden habe, die Daten. Dann stoppt man das Ganze und überprüft nochmal ob das funktioniert hat(?).