I have found a bug inside the LCD_4bit.c source file:
void set_cursor (unsigned char column, unsigned char line) {
unsigned char address;
address = (line * 40) + column;
address = 0x80 + (address & 0x7F);
lcd_write_cmd(address); /* Set DDRAM address counter to 0 */
}
--> address = (line * 0x40) + column; // the offset of 40 does not make sense
I am a little bit confused, that it still works with 40 as factor for set_curor(0, 1).
Greetings Oliver