Also das mit R/W auf GND zu legen hat nicht geklappt.

Bevor ich den Code für PORTD umgeschrieben habe, habe ich ihn auf dem PORTC getestet und es hat alles geklappt.

Hier noch die lcd_tools.h :
Code:
#include <stdint.h> 

void delay_ms(uint16_t);
void lcd_flash_e (void);
void lcd_write (uint8_t, uint8_t);
void lcd_cls (void);
void lcd_writechar (char);
void lcd_writetext (char *);
void lcd_gotoline (uint8_t);
void lcd_gotopos (uint8_t, uint8_t);
void lcd_writezahl (int32_t, uint8_t, uint8_t);
void lcd_set4bit (void);
void lcd_port_ini (void);
void lcd_ini (void);