Such mal nach "Modulares Board". Dort wir die Ansteuerung komplett mit Hardware gezeigt. Bei mir hat es damit sofort geklappt
Such mal nach "Modulares Board". Dort wir die Ansteuerung komplett mit Hardware gezeigt. Bei mir hat es damit sofort geklappt
Das LCD war bei einem Fundinoset dabei hab jetzt als Slaveadresse 0x27 gefunden. Was muss in Data drinstehen? Wenn ich beispielsweiße TWDR = 0x01 eingebe müsste er das Display dann löschen. In den Headerdateien sehe ich jetzt aber nicht, dass es einen speziellen Befehl gibt um Text auf an das Display zu senden. Reicht es dann wenn ich DATA = string setze?
Hab auch mal Modulares Board gegoogelt bei der Seite von microcontroller werden da irgendwelche headerdateien verwendet, die ich nicht finden konnte oder irgendwas übersehen habe.
Die Haederdatein stehen nicht auf dieser Seite. Am Ende hat der Autor seine Adresse drin. Habe mir das komplette Programm mit allen Datein geholt. Habe alles ohne Probleme bekommen. Programme sind C und laufen mit AVR Studio 6. Habe auch nur die Software genommen, in der Hardware stehen einiges zu Adressen drin
Paule
Das mit den Headerdatein funktioniert nicht so richt.
Hab jetzt den Code etwas geändert:
Da ich immer noch nicht weiß wie ich chars übertragen kann hab ich einen Befehl übertragen der normalerweiße den Courser zeigen sollte,was allerdings nicht funktioniert. Was ist hier an den Code falsch? Hat vielleicht jemand ein Codebeispiel für ein 16x2 LCD?Code:#define F_CPU 1000000UL #include <avr/io.h> #include <util/delay.h> int main(void) { TWCR = (1<<TWINT) | (1<<TWEN) | (1<<TWSTA); while (!(TWCR & (1<<TWINT))); TWBR = 0b00000010; TWCR = (1<<TWINT) | (1<<TWEN); while (!(TWCR & (1<<TWINT))); TWDR = 0x27; TWCR = (1<<TWINT) | (1<<TWEN); while (!(TWCR & (1<<TWINT))); TWDR = 0x02; TWCR = (1<<TWINT) | (1<<TWEN); while (!(TWCR & (1<<TWINT))); _delay_ms(5000); TWCR = (1<<TWINT) | (1<<TWEN) | (1<<TWSTO); while(1) { } }
Zuerst musst du die slaveadresse senden (bei dir 0x27). Diese Adresse ist aber die leseadresse. Lies einmal im Internet über die Grundlagen nach. Z.b. http://www.timmermann.org/ralph/inde...tronik/i2c.htm oder www.i2c-bus.org
Dort steht alles genau beschrieben. Also wenn du etwas schreiben willst.
Slave Adresse schreiben
Register
Kommando
MfG Hannes
Kannst du vielleicht,wenn es nicht allzu viele Umstände macht, eine Übertragung als Code schreiben? Ich weiß nicht ob ich mir das zu kompliziert mache. Ich Suche schon die ganze Zeit in den Headerdateien die Befehle um ein Wort auf dem LCD anzuzeigen. Die Headerdateien benutzen aber auch noch Headerdateien wie beispielsweiße die "Wire.h" Datei vom Arduino um Strings zu senden.
Hast du dich schon einmal über die Grundlagen des I2C informiert? Bei I2C wird immer byteweise übertragen. Du kannst deshalb nicht einfach schreiben twdr='hallo';.
Was du bis jetzt noch nicht geschrieben hast ist was das für ein LCD ist. Ein normales LCD Display hat kein I2C sondern eine 4 bzw 8bit paralellschnittstelle.
Im Datenblatt steht alles drinnen was du benötigst.
MfG Hannes
Lesezeichen