From a2a87ddd458ef0811dfb71510d7027d23038005b Mon Sep 17 00:00:00 2001 From: Joel Bodenmann Date: Wed, 9 Jan 2013 14:29:32 +0100 Subject: added TDISP - experimental --- src/tdisp/tdisp.c | 78 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/tdisp/tdisp.mk | 2 ++ 2 files changed, 80 insertions(+) create mode 100644 src/tdisp/tdisp.c create mode 100644 src/tdisp/tdisp.mk (limited to 'src/tdisp') diff --git a/src/tdisp/tdisp.c b/src/tdisp/tdisp.c new file mode 100644 index 00000000..73db93a1 --- /dev/null +++ b/src/tdisp/tdisp.c @@ -0,0 +1,78 @@ +/* + ChibiOS/GFX - Copyright (C) 2012 + Joel Bodenmann aka Tectu + + This file is part of ChibiOS/GFX. + + ChibiOS/GFX 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/GFX 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 . +*/ + +/** + * @file src/tdisp/tdisp.c + * @brief TDISP Driver code. + * + * @addtogroup TDISP + * @{ + */ +#include "ch.h" +#include "hal.h" +#include "gfx.h" + +#if GFX_USE_TDISP || defined(__DOXYGEN__) + +bool_t tdispInit(void) { + bool_t ret; + + ret = TDISP_LLD(init)(); + + return ret; +} + +void tdispClear(void) { + TDISP_LLD(write_cmd)(0x01); +} + +void tdispHome(void) { + TDISP_LLD(write_cmd)(0x02); +} + +void tdispGotoXY(coord_t col, coord_t row) { + uint8_t row_offsets[] = { 0x00, 0x40, 0x14, 0x54 }; + + TDISP_LLD(write_cmd)(0x80 | (col + row_offsets[row])); +} + +void tdispDrawChar(char c) { + TDISP_LLD(write_data)(c); +} + +void tdispDrawString(char *s) { + char c; + + while(c = s++) + tdispDrawChar(c); +} + +void tdispDrawCharLocation(coord_t x, coord_t y, char c) { + tdispGotoXY(x, y); + tdispDrawChar(c); +} + +void tdispDrawStringLocation(coord_t x, coord_t y, char *s) { + tdispGotoXY(x, y); + tdispDrawString(s); +} + +#endif /* GFX_USE_TDISP */ + diff --git a/src/tdisp/tdisp.mk b/src/tdisp/tdisp.mk new file mode 100644 index 00000000..a33fa34a --- /dev/null +++ b/src/tdisp/tdisp.mk @@ -0,0 +1,2 @@ +GFXSRC += $(GFXLIB)/src/tdisp/tdisp.c + -- cgit v1.2.3