123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153 |
- #ifndef _GINPUT_LLD_MOUSE_BOARD_H
- #define _GINPUT_LLD_MOUSE_BOARD_H
- #define GMOUSE_ADS7843_PEN_CALIBRATE_ERROR 8
- #define GMOUSE_ADS7843_PEN_CLICK_ERROR 6
- #define GMOUSE_ADS7843_PEN_MOVE_ERROR 4
- #define GMOUSE_ADS7843_FINGER_CALIBRATE_ERROR 14
- #define GMOUSE_ADS7843_FINGER_CLICK_ERROR 18
- #define GMOUSE_ADS7843_FINGER_MOVE_ERROR 14
- #define GMOUSE_ADS7843_BOARD_DATA_SIZE 0
- #define T_CS_HIGH palSetPad(GPIOC, 13)
- #define T_CS_LOW palClearPad(GPIOC, 13)
- #define T_SCK_HIGH palSetPad(GPIOB, 0)
- #define T_SCK_LOW palClearPad(GPIOB, 0)
- #define T_MOSI_HIGH palSetPad(GPIOF, 11)
- #define T_MOSI_LOW palClearPad(GPIOF, 11)
- #define T_MISO_LVL palReadPad(GPIOB, 1)
- static gBool init_board(GMouse* m, unsigned driverinstance) {
- (void)m;
- (void)driverinstance;
- T_CS_HIGH;
- T_SCK_LOW;
- return true;
- }
- static GFXINLINE gBool getpin_pressed(GMouse* m) {
- (void)m;
- return (!palReadPad(GPIOB, T_PEN));
- }
- static GFXINLINE void aquire_bus(GMouse* m) {
- (void)m;
- T_CS_LOW;
- T_SCK_LOW;
- }
- static GFXINLINE void release_bus(GMouse* m) {
- (void)m;
- T_CS_HIGH;
- }
- static GFXINLINE void write_value(GMouse* m, gU16 value) {
- (void)m;
- int i;
- for (i=8; i>0; i--) {
- T_SCK_LOW;
- if (value & 0x0080) {
- T_MOSI_HIGH;
- } else {
- T_MOSI_LOW;
- }
- asm("nop");
- value <<= 1;
- T_SCK_HIGH;
- }
- }
- static GFXINLINE gU16 read_value(GMouse* m, gU16 port) {
- (void)m;
- int i;
- gU16 data = 0;
- write_value(m, port);
- gfxSleepMicroseconds(6);
- T_SCK_LOW;
- asm("nop");
- T_SCK_HIGH;
- asm("nop");
-
- for (i=16; i>0; i--) {
- T_SCK_LOW;
- data <<= 1;
- asm("nop");
- T_SCK_HIGH;
- if (T_MISO_LVL) {
- data ++;
- }
- }
- data >>= 4;
- return data;
- }
- #endif
|