diff options
author | Andrew Hannam <Andrew Hannam> | 2016-07-28 16:35:36 +1000 |
---|---|---|
committer | Andrew Hannam <Andrew Hannam> | 2016-07-28 16:35:36 +1000 |
commit | 12dfd8232fe32345bd60f04d73a1a40adf38e841 (patch) | |
tree | 803aaeb35b26e6b9fd3b01136398c5157f7f6f1f /demos/games/tetris/Example_Makefiles/stm32f4/ginput_lld_mouse_board.h | |
parent | 868a272d6e44c267d84420932247b942c07d5713 (diff) | |
download | uGFX-12dfd8232fe32345bd60f04d73a1a40adf38e841.tar.gz uGFX-12dfd8232fe32345bd60f04d73a1a40adf38e841.tar.bz2 uGFX-12dfd8232fe32345bd60f04d73a1a40adf38e841.zip |
Move demo games into demo/games directory
Diffstat (limited to 'demos/games/tetris/Example_Makefiles/stm32f4/ginput_lld_mouse_board.h')
-rw-r--r-- | demos/games/tetris/Example_Makefiles/stm32f4/ginput_lld_mouse_board.h | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/demos/games/tetris/Example_Makefiles/stm32f4/ginput_lld_mouse_board.h b/demos/games/tetris/Example_Makefiles/stm32f4/ginput_lld_mouse_board.h new file mode 100644 index 00000000..39538747 --- /dev/null +++ b/demos/games/tetris/Example_Makefiles/stm32f4/ginput_lld_mouse_board.h @@ -0,0 +1,61 @@ +/* + * This file is subject to the terms of the GFX License. If a copy of + * the license was not distributed with this file, you can obtain one at: + * + * http://ugfx.org/license.html + */ + +#ifndef _GINPUT_LLD_MOUSE_BOARD_H +#define _GINPUT_LLD_MOUSE_BOARD_H + +static const SPIConfig spicfg = { + 0, + GPIOC, + 6, + /* SPI_CR1_BR_2 |*/ SPI_CR1_BR_1 | SPI_CR1_BR_0, +}; + +static GFXINLINE void init_board(void) +{ + palSetPadMode(GPIOC, 6, PAL_MODE_OUTPUT_PUSHPULL); + palSetPadMode(GPIOC, 4, PAL_MODE_INPUT); + palSetPadMode(GPIOA, 5, PAL_MODE_ALTERNATE(5)); + palSetPadMode(GPIOA, 6, PAL_MODE_ALTERNATE(5)); + palSetPadMode(GPIOA, 7, PAL_MODE_ALTERNATE(5)); + + spiStart(&SPID1, &spicfg); +} + +static GFXINLINE bool_t getpin_pressed(void) +{ + return (!palReadPad(GPIOC, 4)); +} + +static GFXINLINE void aquire_bus(void) +{ + spiAcquireBus(&SPID1); + palClearPad(GPIOC, 6); +} + +static GFXINLINE void release_bus(void) +{ + palSetPad(GPIOC, 6); + spiReleaseBus(&SPID1); +} + +static GFXINLINE uint16_t read_value(uint16_t port) +{ + static uint8_t txbuf[3] = {0}; + static uint8_t rxbuf[3] = {0}; + uint16_t ret; + + txbuf[0] = port; + + spiExchange(&SPID1, 3, txbuf, rxbuf); + + ret = (rxbuf[1] << 5) | (rxbuf[2] >> 3); + + return ret; +} + +#endif /* _GINPUT_LLD_MOUSE_BOARD_H */ |