Small and simple HD44780 LCD controller library
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.gitignore unstash hd44780 functions Feb 21, 2018
COPYING
Makefile
delay.h First chars printed; some constants added (command masks) Feb 21, 2018
hd44780.c
hd44780.h
main.c
readme readme corrected Feb 21, 2018

readme

Simple small HD44780 LCD library for STM8

Files:
=====
	main.c - test and demo

	delay.h - delay functions
	hd44780.c - implementation
	hd44780.h - header

	readme - this file
	COPYING - licence

Example compilation:
=====	
	$ make clean && make && make flash

flash target assumes you are using stlinkv2 programmer. Should you use another
version, modify the Makefile to your needs.

The example should print a message to the display. Tested on STM8S-DISCOVERY dev kit. 

Connections:
	Connections are redefinable as long as the whole data bus is on the
	same port. This was chosen to make the code more compact and smaller.

	E     - PD0
	RS    - PD1
	D4-D7 - PD2-5

Usage:
=====

Include hd44780.h and delay.h in your code, add the c file to the build
path. Define F_CPU_K as CPU speed in KHz. Note that in this project the macro is defined in the Makefile!

delay.h contains LibC-AVR style functions _delay_ms() and _delay_cycl(), and 
a macro _delay_us(). All three let you use a variable as a parameter, in contrary to LibC-AVR.

I found sdcc can do *weird things* with those so always check the corresponding .asm file. A badly expanded macro may result in calls to word mul and div, which take extra amount of time!

Happy hacking!