/* ------------------------------------------------------- hd44780.h Header fuer grundlegende Funktionen eines HD44780 kompatiblen LC-Textdisplays Hardware : Text-LCD MCU : AVR 14.02.2020 R. Seelig Hinweis: Alle Anschlusspins des LCD muessen mit einem 1k Pop-Up Widerstand gegen +5V geschaltet sein, weil ein Hi-Pegel auf den Leitungen durch ein Konfigurieren der Controllerpins als Eingaenge erreicht wird. Der Vorteil dieser Methode besteht darin, dass ein Controller somit auch mit 3,3V betrieben werden kann, das Display aber dennoch funktioniert. ------------------------------------------------------- */ /* Default Displayanschluss an den Controller ---------------------------------------------------------- o +5V | Display STM32F030F4P6 (TSSOP20) _ Funktion PIN PIN Funktion | | |_| GND 1 ------------ | +5V 2 ------------ o----o Kontrast --- Kontrast 3 ------------ _|_ RS 4 ------------ 11 PA5 \ / rd /wr 5 ------------ GND -'- (Takt) E 6 ------------ 12 PA6 | D0 7 n.c. --- D1 8 n.c. D2 9 n.c. D3 10 n.c. D4 11 ------------ 6 PA0 D5 12 ------------ 13 PA7 D6 13 ------------ 7 PA1 D7 14 ------------ 10 PA4 Hinweis: Alle Anschluesse des Controllers muessen mit einem 10K Pull-Up Widerstand gegen +5V !!! versehen sein */ #ifndef in_txlcd #define in_txlcd #include #include "sysf030_init.h" #define boardversion 1 /* ------------------------------------------------------- Pinbelegung ------------------------------------------------------- */ #if (boardversion == 1) // command / data #define LCD_RS_PORT PA #define LCD_RS_BIT 5 // clock #define LCD_E_PORT PA #define LCD_E_BIT 6 #define LCD_D4_PORT PA #define LCD_D4_BIT 0 #define LCD_D5_PORT PA #define LCD_D5_BIT 7 #define LCD_D6_PORT PA #define LCD_D6_BIT 1 #define LCD_D7_PORT PA #define LCD_D7_BIT 4 #elif (boardversion == 2) // command / data #define LCD_RS_PORT PA #define LCD_RS_BIT 5 // clock #define LCD_E_PORT PA #define LCD_E_BIT 6 #define LCD_D4_PORT PB #define LCD_D4_BIT 0 #define LCD_D5_PORT PA #define LCD_D5_BIT 7 #define LCD_D6_PORT PB #define LCD_D6_BIT 8 #define LCD_D7_PORT PB #define LCD_D7_BIT 6 #else #error Es wurde keine gueltige Boardversion angegeben... #endif #define _delay_ms delay #define lcd_wait 10 // Verzoegerungswert bei Takterzeugung des Displays // 10 fuer 48 MHz Coretakt des STM32 /* ------------------------------------------------------- diverse Macros ------------------------------------------------------- */ #define testbit(reg,pos) ((reg) & (1<