würd mich interessieren, wie das mit den Delays realisiert wird.
z.B so:
Code:
void warte(uint16_t word) {
_delay_loop_2(word);
}
Die Funktionen um Daten an das Display zu schicken könnten so aussehen:
Code:
void lcd_command(uint8_t data) {
warte(0x00C8);
uint8_t temp = data;
DATAPORT = (data>>4);
enable();
DATAPORT = temp;
enable();
}
void lcd_data(uint8_t data) {
warte(0x00C8);
RSPORT |=(1<<RS);
uint8_t temp = data;
DATAPORT = (data>>4);
enable();
DATAPORT = temp;
enable();
RSPORT &= ~(1<<RS);
}
Enable Puls so:
Code:
void enable(void) {
ENABLEPORT |= (1<<ENABLE);
__asm volatile ("nop");
__asm volatile ("nop");
__asm volatile ("nop");
__asm volatile ("nop");
ENABLEPORT &= ~(1<<ENABLE);
}
hab nix gegen Assembler, aber die Syntax mit den ewigen "", ect, geht mir irgendwie auf die Nerven

Das dürfte schon ein guter Ansatz sein, Ich benutze Diese Funktionen bei meinen Programmen, es reicht vollkommen, man braucht nicht weiß Gott was für Bibliotheken um die einfachen Sachen zu Programmieren...
Gruß Sebastian
Lesezeichen