diff options
3 files changed, 35 insertions, 27 deletions
diff --git a/boards/base/FireBull-STM32F103-FB/gmouse_lld_ADS7843_board.h b/boards/base/FireBull-STM32F103-FB/gmouse_lld_ADS7843_board.h index e4f30818..b202dd85 100644 --- a/boards/base/FireBull-STM32F103-FB/gmouse_lld_ADS7843_board.h +++ b/boards/base/FireBull-STM32F103-FB/gmouse_lld_ADS7843_board.h @@ -8,6 +8,7 @@ #ifndef _GINPUT_LLD_MOUSE_BOARD_H #define _GINPUT_LLD_MOUSE_BOARD_H +// Resolution and Accuracy Settings #define GMOUSE_ADS7843_PEN_CALIBRATE_ERROR 2 #define GMOUSE_ADS7843_PEN_CLICK_ERROR 2 #define GMOUSE_ADS7843_PEN_MOVE_ERROR 2 @@ -15,6 +16,9 @@ #define GMOUSE_ADS7843_FINGER_CLICK_ERROR 4 #define GMOUSE_ADS7843_FINGER_MOVE_ERROR 4 +// How much extra data to allocate at the end of the GMouse structure for the board's use +#define GMOUSE_ADS7843_BOARD_DATA_SIZE 0 + static const SPIConfig spicfg = { 0, GPIOC, @@ -39,28 +43,35 @@ static bool_t init_board(GMouse* m, unsigned driverinstance) return TRUE; } -static inline bool_t getpin_pressed(void) -{ +static inline bool_t getpin_pressed(GMouse* m) +{ + (void) m; + return (!palReadPad(GPIOC, 4)); } -static inline void aquire_bus(void) +static inline void aquire_bus(GMouse* m) { + (void) m; + spiAcquireBus(&SPID1); palClearPad(GPIOC, 6); } -static inline void release_bus(void) +static inline void release_bus(GMouse* m) { + (void) m; + palSetPad(GPIOC, 6); spiReleaseBus(&SPID1); } -static inline uint16_t read_value(uint16_t port) +static inline uint16_t read_value(GMouse* m, uint16_t port) { static uint8_t txbuf[3] = {0}; static uint8_t rxbuf[3] = {0}; uint16_t ret; + (void) m; txbuf[0] = port; diff --git a/drivers/ginput/touch/ADS7843/gmouse_lld_ADS7843.c b/drivers/ginput/touch/ADS7843/gmouse_lld_ADS7843.c index 72cd6f67..ac315262 100644 --- a/drivers/ginput/touch/ADS7843/gmouse_lld_ADS7843.c +++ b/drivers/ginput/touch/ADS7843/gmouse_lld_ADS7843.c @@ -15,39 +15,32 @@ // Get the hardware interface
#include "gmouse_lld_ADS7843_board.h"
-// If the board file doesn't specify how many extra bytes it wants - assume 0
-#ifndef BOARD_DATA_SIZE
- #define BOARD_DATA_SIZE 0
-#endif
-
#define CMD_X 0xD1
#define CMD_Y 0x91
#define CMD_ENABLE_IRQ 0x80
-void read_xyz(GMouse* m, GMouseReading* pdr)
+static void MouseXYZ(GMouse* m, GMouseReading* pdr)
{
(void)m;
// No buttons
pdr->buttons = 0;
+ pdr->z = 0;
- if (getpin_pressed()) {
+ if (getpin_pressed(m)) {
pdr->z = 1; // Set to Z_MAX as we are pressed
- aquire_bus();
+ aquire_bus(m);
- read_value(CMD_X); // Dummy read - disable PenIRQ
- pdr->x = read_value(CMD_X); // Read X-Value
+ read_value(m, CMD_X); // Dummy read - disable PenIRQ
+ pdr->x = read_value(m, CMD_X); // Read X-Value
- read_value(CMD_Y); // Dummy read - disable PenIRQ
- pdr->y = read_value(CMD_Y); // Read Y-Value
+ read_value(m, CMD_Y); // Dummy read - disable PenIRQ
+ pdr->y = read_value(m, CMD_Y); // Read Y-Value
- read_value(CMD_ENABLE_IRQ); // Enable IRQ
+ read_value(m, CMD_ENABLE_IRQ); // Enable IRQ
- release_bus();
- } else {
- // Don't touch x and y values here
- pdr->z = 0;
+ release_bus(m);
}
}
@@ -77,7 +70,7 @@ const GMouseVMT const GMOUSE_DRIVER_VMT[1] = {{ },
init_board, // init
0, // deinit
- read_xyz, // get
+ MouseXYZ, // get
0, // calsave
0 // calload
}};
diff --git a/drivers/ginput/touch/ADS7843/gmouse_lld_ADS7843_board_template.h b/drivers/ginput/touch/ADS7843/gmouse_lld_ADS7843_board_template.h index 7b762310..5a09b5bd 100644 --- a/drivers/ginput/touch/ADS7843/gmouse_lld_ADS7843_board_template.h +++ b/drivers/ginput/touch/ADS7843/gmouse_lld_ADS7843_board_template.h @@ -8,6 +8,7 @@ #ifndef _GINPUT_LLD_MOUSE_BOARD_H #define _GINPUT_LLD_MOUSE_BOARD_H +// Resolution and Accuracy Settings #define GMOUSE_ADS7843_PEN_CALIBRATE_ERROR 2 #define GMOUSE_ADS7843_PEN_CLICK_ERROR 2 #define GMOUSE_ADS7843_PEN_MOVE_ERROR 2 @@ -15,23 +16,26 @@ #define GMOUSE_ADS7843_FINGER_CLICK_ERROR 4 #define GMOUSE_ADS7843_FINGER_MOVE_ERROR 4 +// How much extra data to allocate at the end of the GMouse structure for the board's use +#define GMOUSE_ADS7843_BOARD_DATA_SIZE 0 + static bool_t init_board(GMouse* m, unsigned driverinstance) { } -static inline bool_t getpin_pressed(void) { +static inline bool_t getpin_pressed(GMouse* m) { } -static inline void aquire_bus(void) { +static inline void aquire_bus(GMouse* m) { } -static inline void release_bus(void) { +static inline void release_bus(GMouse* m) { } -static inline uint16_t read_value(uint16_t port) { +static inline uint16_t read_value(GMouse* m, uint16_t port) { } |