From 5683a9058ea098f4f5c4183376879ad51b782b45 Mon Sep 17 00:00:00 2001 From: Joel Bodenmann Date: Mon, 12 Nov 2012 00:07:35 +0100 Subject: [PATCH] added MCU driver dummy - not implemented yet --- .../MCU/.touchscreen_lld_config.h.swp | Bin 0 -> 12288 bytes drivers/touchscreen/MCU/readme.txt | 8 ++ drivers/touchscreen/MCU/touchscreen_lld.c | 125 ++++++++++++++++++ drivers/touchscreen/MCU/touchscreen_lld.mk | 6 + .../touchscreen/MCU/touchscreen_lld_config.h | 56 ++++++++ 5 files changed, 195 insertions(+) create mode 100644 drivers/touchscreen/MCU/.touchscreen_lld_config.h.swp create mode 100644 drivers/touchscreen/MCU/readme.txt create mode 100644 drivers/touchscreen/MCU/touchscreen_lld.c create mode 100644 drivers/touchscreen/MCU/touchscreen_lld.mk create mode 100644 drivers/touchscreen/MCU/touchscreen_lld_config.h diff --git a/drivers/touchscreen/MCU/.touchscreen_lld_config.h.swp b/drivers/touchscreen/MCU/.touchscreen_lld_config.h.swp new file mode 100644 index 0000000000000000000000000000000000000000..a899a6963679a3cf228e57acf667db82a1863be8 GIT binary patch literal 12288 zcmeI2&u<$=6vrn>h?*Y-QBIs5%_VVDZ<-vanzpLz*s)7uTmC_t(`xLU^-jCqS?$io zF-hSH{{p`RCk|W?NB#vkazJnb2_z2v6Oj1s+G!j}8ddayG9!Is+3&rX_dfGBk(Jk5 zez&$oZx>b>)@zKtVSUj|&b`ULd7d#X`Z`HJKV@}9zp94f6fef!&o;EeNZrTIu@#9} zB~f3*R^O97sbWj)YHQ%`T23T)L=;FeA-UZ-!(iy>eL7y^cXAz%m?0)~JgUcHTaEGz_ImYhfkUakX zfAIbPuU8rS3Hk*37}8J-U4ni)&)BDshGJ+Ldh`loUqkOfV`vrn^JT{VfPRO5g}#D( zNJ4d}3avvW=pr-+G3bYv82cXDgDye8yvW$k(6`V>(1*|vYD3o`f?j|gp@tu!@1QTC z&!NwteP|ErLhnFntyRb@L%PN+-#Sh>{wohU#`>YmKn41H=f3TeJMm!P}Ct+Gy zfu4G0`#rn#Ze;x=T{^Clto;5yP4GGkw!PlCx4nUWv=_6WW4O29r4ZFDx7RW*3RZv*vh3wB^d)LS zt4BQ0X;s-4rF2@m(YDZQ1d5Ktb1ktiT;(LvQ(<}{*CaLe^?m9IN@C$A{?erK1=z-z z{w5V_se(n~!I*rmMMUZ3H$IvaoKmb{{+rs$)!8#wQAyzNG-!)QFtP5D@O!F9t6Z6aKh-lPU!l5SZ*bOiiX@z d`}O9(lD$kN^kpOmo~DJ;BCRZ6S;22K_BYnBT@C;M literal 0 HcmV?d00001 diff --git a/drivers/touchscreen/MCU/readme.txt b/drivers/touchscreen/MCU/readme.txt new file mode 100644 index 00000000..105e7462 --- /dev/null +++ b/drivers/touchscreen/MCU/readme.txt @@ -0,0 +1,8 @@ +To use this driver: + +1. Add in your halconf.h: + a) #define GFX_USE_TOUCHSCREEN TRUE + +2. To your makefile add the following lines: + include $(GFXLIB)/drivers/touchscreen/MCU/touchscreen_lld.mk + diff --git a/drivers/touchscreen/MCU/touchscreen_lld.c b/drivers/touchscreen/MCU/touchscreen_lld.c new file mode 100644 index 00000000..25a2398b --- /dev/null +++ b/drivers/touchscreen/MCU/touchscreen_lld.c @@ -0,0 +1,125 @@ +/* + 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 drivers/touchscreen/MCU/touchscreen_lld.c + * @brief Touchscreen Driver subsystem low level driver source. + * + * @addtogroup TOUCHSCREEN + * @{ + */ + +#include "ch.h" +#include "hal.h" +#include "touchscreen.h" + +#if GFX_USE_TOUCHSCREEN /*|| defined(__DOXYGEN__)*/ + + +/*===========================================================================*/ +/* Driver local variables. */ +/*===========================================================================*/ + +#if !defined(__DOXYGEN__) + /* Local copy of the current touchpad driver */ + static const TouchscreenDriver *tsDriver; + +#endif + +/** + * @brief Low level Touchscreen driver initialization. + * + * @param[in] ts The touchscreen driver struct + * + * @notapi + */ +void ts_lld_init(const TouchscreenDriver *ts) { + tsDriver = ts; + + /* set pins to analog input */ + palSetPadMode(ts->ts_yd_port, ts->ts_yd_pin, PAL_MODE_INPUT_ANALOG); + palSetPadMode(ts->ts_yu_port, ts->ts_yu_pin, PAL_MODE_INPUT_ANALOG); + palSetPadMode(ts->ts_xl_port, ts->ts_yl_pin, PAL_MODE_INPUT_ANALOG); + palSetPadMode(ts->ts_xr_port, ts->ts_xr_pin, PAL_MODE_INPUT_ANALOG); +} + + +/** + * @brief Reads a conversion from the touchscreen + * + * @param[in] cmd The command bits to send to the touchscreen + * + * @return The read value 12-bit right-justified + * + * @note This function only reads data, it is assumed that the pins are + * configured properly and the bus has been acquired beforehand + * + * @notapi + */ +uint16_t ts_lld_read_value(uint8_t cmd) { + return 0; +} + +/** + * @brief 7-point median filtering code for touchscreen samples + * + * @note This is an internally used routine only. + * + * @notapi + */ +static void ts_lld_filter(void) { + return 0; +} + +/** + * @brief Reads out the X direction. + * + * @note The samples are median filtered for greater noise reduction + * + * @notapi + */ +uint16_t ts_lld_read_x(void) { + return 0; +} + +/** + * @brief Reads out the Y direction. + * + * @notapi + */ +uint16_t ts_lld_read_y(void) { + return 0; +} + +/* + * @brief Checks if touchscreen is pressed or not. + * + * @return 1 if pressed, 0 otherwise + * + * @notapi + */ +uint8_t ts_lld_pressed(void) { + return 0; +} + + +#endif /* GFX_USE_TOUCHSCREEN */ +/** @} */ + diff --git a/drivers/touchscreen/MCU/touchscreen_lld.mk b/drivers/touchscreen/MCU/touchscreen_lld.mk new file mode 100644 index 00000000..8d594c2c --- /dev/null +++ b/drivers/touchscreen/MCU/touchscreen_lld.mk @@ -0,0 +1,6 @@ +# List the required driver. +GFXSRC += $(GFXLIB)/drivers/touchscreen/MCU/touchscreen_lld.c + +# Required include directories +GFXINC += $(GFXLIB)/drivers/touchscreen/MCU + diff --git a/drivers/touchscreen/MCU/touchscreen_lld_config.h b/drivers/touchscreen/MCU/touchscreen_lld_config.h new file mode 100644 index 00000000..e57d5723 --- /dev/null +++ b/drivers/touchscreen/MCU/touchscreen_lld_config.h @@ -0,0 +1,56 @@ +/* + 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 drivers/touchscreen/MCU/touchscreen_lld_config.h + * @brief Touchscreen Driver subsystem low level driver. + * + * @addtogroup TOUCHSCREEN + * @{ + */ + +#ifndef TOUCHSCREEN_LLD_CONFIG_H +#define TOUCHSCREEN_LLD_CONFIG_H + +#if GFX_USE_TOUCHSCREEN /*|| defined(__DOXYGEN__)*/ + +/*===========================================================================*/ +/* Driver hardware support. */ +/*===========================================================================*/ + +#define TOUCHSCREEN_HAS_PRESSED TRUE +#define TOUCHSCREEN_HAS_PRESSURE FALSE + +struct TouchscreenDriver { + ioportid_t ts_yd_port; + ioportmask_t ts_yd_pin; + ioportid_t ts_yu_port; + ioportmask_t ts_yu_pin; + ioportid_t ts_xl_port; + ioportmask_t ts_xl_pin; + ioportid_t ts_xr_port; + ioportmask_t ts_xr_pin; +}; + +#endif /* GFX_USE_TOUCHSCREEN */ + +#endif /* TOUCHSCREEN_LLD_CONFIG_H */ +/** @} */ +