Semi-decennial update. 50% code inflation.
[cbaos.git] / test / test_hd44780.c
blob72f8d1324dd117fdf1180800fb12e6856abcdc95
1 /* Author: Domen Puncer <domen@cba.si>. License: WTFPL, see file LICENSE */
2 #include <stdio.h>
3 #include <sched.h>
5 #ifdef BOARD_ITLPC2138
6 #include <mach/lpc21xx_gpio.h>
7 #elif defined BOARD_STM32F103X4_MINE && defined CONFIG_LCDTEST
8 #include <mach/stm32_gpio.h>
9 #endif
11 #include <drivers/hd44780.h>
13 void test_hd44780_func(u32 arg)
15 int i = 0;
16 struct hd44780_data lcd;
17 #ifdef BOARD_ITLPC2138
18 lcd.pins.rs = GPIO_0_20;
19 lcd.pins.rw = GPIO_0_22;
20 lcd.pins.e = GPIO_0_21;
21 lcd.pins.d4 = GPIO_0_16;
22 lcd.pins.d5 = GPIO_0_17;
23 lcd.pins.d6 = GPIO_0_18;
24 lcd.pins.d7 = GPIO_0_19;
25 lcd.Te = 1;
26 lcd.caps = HD44780_CAPS_2LINES;
27 #elif defined BOARD_STM32F103X4_MINE && defined CONFIG_LCDTEST
28 lcd.pins.rs = GPIO_PB5;
29 lcd.pins.rw = GPIO_PA12;
30 lcd.pins.e = GPIO_PA11;
31 lcd.pins.d4 = GPIO_PB15;
32 lcd.pins.d5 = GPIO_PB14;
33 lcd.pins.d6 = GPIO_PB13;
34 lcd.pins.d7 = GPIO_PB12;
35 lcd.Te = 1;
36 lcd.caps = HD44780_CAPS_2LINES;
37 #endif
39 hd44780_driver.init(&lcd);
40 hd44780_driver.onoff(&lcd, HD44780_ONOFF_DISPLAY_ON);
41 hd44780_driver.print(&lcd, "yay, it works");
43 msleep(2000);
44 hd44780_driver.clear(&lcd);
46 while (1) {
47 char buf[2];
49 hd44780_driver.set_position(&lcd, (i<16?HD44780_LINE_OFFSET:0) + i%16);
50 sprintf(buf, "%X", i%16);
51 hd44780_driver.print(&lcd, buf);
53 hd44780_driver.set_position(&lcd, (i>=16?HD44780_LINE_OFFSET:0) + i%16);
54 hd44780_driver.print(&lcd, " ");
56 msleep(1000);
57 i++;
58 if (i == 32)
59 i = 0;