/* ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010, 2011,2012 Giovanni Di Sirio. This file is part of ChibiOS/RT. ChibiOS/RT is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. ChibiOS/RT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #include "ch.h" #include "hal.h" #include "gfx.h" int main(void) { uint8_t charmap[8]; uint8_t n; halInit(); chSysInit(); tdispInit(); /* reset cursor position and clear the screen */ tdispHome(); tdispClear(); /* draw a string to a given location */ tdispSetCursor(0, 0); tdispDrawChar('C'); chThdSleepMilliseconds(500); tdispDrawChar('h'); chThdSleepMilliseconds(500); tdispDrawChar('i'); chThdSleepMilliseconds(500); tdispDrawChar('b'); chThdSleepMilliseconds(500); tdispDrawChar('i'); chThdSleepMilliseconds(500); tdispDrawChar('O'); chThdSleepMilliseconds(500); tdispDrawChar('S'); chThdSleepMilliseconds(500); tdispDrawChar('/'); chThdSleepMilliseconds(500); tdispDrawChar('G'); chThdSleepMilliseconds(500); tdispDrawChar('F'); chThdSleepMilliseconds(500); tdispDrawChar('X'); chThdSleepMilliseconds(500); // After 2 seconds blank the screen and // print tekst on the next line en // enable the display again chThdSleepMilliseconds(1000); tdispDisplayMode(displayOff); tdispSetCursor(1, 1); tdispDrawString("TDISP/HD44780"); chThdSleepMilliseconds(1000); tdispDisplayMode(displayOn); /* create and display a custom made character after 1S*/ chThdSleepMilliseconds(1000); charmap[0] = 0b00100; charmap[1] = 0b01110; charmap[2] = 0b01110; charmap[3] = 0b01110; charmap[4] = 0b11111; charmap[5] = 0b00000; charmap[6] = 0b00100; charmap[7] = 0b00000; tdispCreateChar(0, charmap); tdispSetCursor(0, 1); tdispDrawChar(0); // after 1 second turn to 50% chThdSleepMilliseconds(1000); tdispSetBacklight(50); while(TRUE) { tdispSetCursor(0, 3); tdispDrawString("Cursor OFF: "); tdispSetCursorShape(cursorOff); chThdSleepMilliseconds(5000); tdispSetCursor(0, 3); tdispDrawString("Cursor ON: "); tdispSetCursorShape(cursorBlock); chThdSleepMilliseconds(5000); tdispSetCursor(0, 3); tdispDrawString("Cursor BLINK: "); tdispSetCursorShape(cursorBlinkingBlock); chThdSleepMilliseconds(5000); } }