test program for SPI_STMPE610
Dependencies: SPI_STMPE610 mbed vt100
main.cpp@3:547b48007148, 2017-05-01 (annotated)
- Committer:
- Rhyme
- Date:
- Mon May 01 00:33:06 2017 +0000
- Revision:
- 3:547b48007148
- Parent:
- 2:0ed1195754b0
Some clean-ups applied
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Rhyme | 0:bfe34cc0bc72 | 1 | /* main.cpp to test touch sensor comes with adafruit 2.8" TFT LCD shield |
Rhyme | 0:bfe34cc0bc72 | 2 | * Copyright (c) 2014 Motoo Tanaka @ Design Methodology Lab |
Rhyme | 0:bfe34cc0bc72 | 3 | * |
Rhyme | 0:bfe34cc0bc72 | 4 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
Rhyme | 0:bfe34cc0bc72 | 5 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
Rhyme | 0:bfe34cc0bc72 | 6 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE |
Rhyme | 0:bfe34cc0bc72 | 7 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
Rhyme | 0:bfe34cc0bc72 | 8 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
Rhyme | 0:bfe34cc0bc72 | 9 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN |
Rhyme | 0:bfe34cc0bc72 | 10 | * THE SOFTWARE. |
Rhyme | 0:bfe34cc0bc72 | 11 | */ |
Rhyme | 0:bfe34cc0bc72 | 12 | /* |
Rhyme | 0:bfe34cc0bc72 | 13 | * Note: Since the interrupt siganl of the shield was not connected |
Rhyme | 0:bfe34cc0bc72 | 14 | * to an interrupt pin on my frdm-kl25z, I just used polling mode. |
Rhyme | 0:bfe34cc0bc72 | 15 | */ |
Rhyme | 0:bfe34cc0bc72 | 16 | #include "mbed.h" |
Rhyme | 3:547b48007148 | 17 | #include "vt100.h" |
Rhyme | 0:bfe34cc0bc72 | 18 | #include "SPI_STMPE610.h" |
Rhyme | 0:bfe34cc0bc72 | 19 | |
Rhyme | 3:547b48007148 | 20 | vt100 *tty = 0 ; |
Rhyme | 0:bfe34cc0bc72 | 21 | |
Rhyme | 1:8e4295a5c716 | 22 | #if defined (TARGET_KL25Z) |
Rhyme | 1:8e4295a5c716 | 23 | #define PIN_MOSI PTD2 |
Rhyme | 1:8e4295a5c716 | 24 | #define PIN_MISO PTD3 |
Rhyme | 1:8e4295a5c716 | 25 | #define PIN_SCLK PTD1 |
Rhyme | 1:8e4295a5c716 | 26 | #define PIN_CS_TFT PTD0 |
Rhyme | 1:8e4295a5c716 | 27 | #define PIN_DC_TFT PTD5 |
Rhyme | 1:8e4295a5c716 | 28 | #define PIN_BL_TFT PTC9 |
Rhyme | 1:8e4295a5c716 | 29 | #define PIN_CS_SD PTA4 |
Rhyme | 1:8e4295a5c716 | 30 | #define PIN_CS_TSC PTA13 |
Rhyme | 1:8e4295a5c716 | 31 | #define PIN_TSC_INTR PTC9 |
Rhyme | 1:8e4295a5c716 | 32 | #define DEVICE_NAME "KL25Z" |
Rhyme | 1:8e4295a5c716 | 33 | |
Rhyme | 1:8e4295a5c716 | 34 | #elif defined (TARGET_KL46Z) |
Rhyme | 1:8e4295a5c716 | 35 | #define PIN_MOSI PTD6 |
Rhyme | 1:8e4295a5c716 | 36 | #define PIN_MISO PTD7 |
Rhyme | 1:8e4295a5c716 | 37 | #define PIN_SCLK PTD5 |
Rhyme | 1:8e4295a5c716 | 38 | #define PIN_CS_TFT PTD4 |
Rhyme | 1:8e4295a5c716 | 39 | #define PIN_DC_TFT PTD2 |
Rhyme | 1:8e4295a5c716 | 40 | #define PIN_BL_TFT PTC9 |
Rhyme | 1:8e4295a5c716 | 41 | #define PIN_CS_SD PTA4 |
Rhyme | 1:8e4295a5c716 | 42 | #define PIN_CS_TSC PTA13 |
Rhyme | 1:8e4295a5c716 | 43 | #define PIN_TSC_INTR PTC9 |
Rhyme | 1:8e4295a5c716 | 44 | #define DEVICE_NAME "KL46Z" |
Rhyme | 1:8e4295a5c716 | 45 | |
Rhyme | 1:8e4295a5c716 | 46 | #elif defined (TARGET_K64F) |
Rhyme | 1:8e4295a5c716 | 47 | #define PIN_MOSI PTD2 |
Rhyme | 1:8e4295a5c716 | 48 | #define PIN_MISO PTD3 |
Rhyme | 1:8e4295a5c716 | 49 | #define PIN_SCLK PTD1 |
Rhyme | 1:8e4295a5c716 | 50 | #define PIN_CS_TFT PTD0 |
Rhyme | 1:8e4295a5c716 | 51 | #define PIN_DC_TFT PTC4 |
Rhyme | 1:8e4295a5c716 | 52 | #define PIN_BL_TFT PTC3 |
Rhyme | 1:8e4295a5c716 | 53 | #define PIN_CS_SD PTB23 |
Rhyme | 1:8e4295a5c716 | 54 | #define PIN_CS_TSC PTA0 |
Rhyme | 1:8e4295a5c716 | 55 | #define PIN_TSC_INTR PTC3 |
Rhyme | 1:8e4295a5c716 | 56 | #define PIN_RESET_TFT PTB20 |
Rhyme | 1:8e4295a5c716 | 57 | #define PIN_ADC_CH0 PTB2 |
Rhyme | 1:8e4295a5c716 | 58 | #define PIN_ADC_CH1 PTB3 |
Rhyme | 1:8e4295a5c716 | 59 | #define DEVICE_NAME "K64F" |
Rhyme | 1:8e4295a5c716 | 60 | |
Rhyme | 2:0ed1195754b0 | 61 | #elif defined (TARGET_NECLEO_F411RE) |
Rhyme | 2:0ed1195754b0 | 62 | #define PIN_MOSI PA_7 |
Rhyme | 2:0ed1195754b0 | 63 | #define PIN_MISO PA_6 |
Rhyme | 2:0ed1195754b0 | 64 | #define PIN_SCLK PA_5 |
Rhyme | 2:0ed1195754b0 | 65 | #define PIN_CS_TFT PB_6 |
Rhyme | 2:0ed1195754b0 | 66 | #define PIN_DC_TFT PC_7 |
Rhyme | 2:0ed1195754b0 | 67 | #define PIN_BL_TFT PA_8 |
Rhyme | 2:0ed1195754b0 | 68 | #define PIN_CS_SD PB_5 |
Rhyme | 2:0ed1195754b0 | 69 | #define PIN_CS_TSC PA_9 |
Rhyme | 2:0ed1195754b0 | 70 | #define PIN_TSC_INTR PA_8 |
Rhyme | 2:0ed1195754b0 | 71 | #define PIN_RESET_TFT PC_13 /* place holder */ |
Rhyme | 2:0ed1195754b0 | 72 | #define DEVICE_NAME "F411RE" |
Rhyme | 2:0ed1195754b0 | 73 | |
Rhyme | 2:0ed1195754b0 | 74 | #elif defined (TARGET_MAX32600MBED) |
Rhyme | 2:0ed1195754b0 | 75 | /* I2C */ |
Rhyme | 2:0ed1195754b0 | 76 | #define PIN_SCL P2_7 |
Rhyme | 2:0ed1195754b0 | 77 | #define PIN_SDA P2_6 |
Rhyme | 2:0ed1195754b0 | 78 | /* SPI */ |
Rhyme | 2:0ed1195754b0 | 79 | #define PIN_SCLK P2_0 |
Rhyme | 2:0ed1195754b0 | 80 | #define PIN_MISO P2_2 |
Rhyme | 2:0ed1195754b0 | 81 | #define PIN_MOSI P2_1 |
Rhyme | 3:547b48007148 | 82 | // #define PIN_MISO P2_1 |
Rhyme | 3:547b48007148 | 83 | // #define PIN_MOSI P2_2 |
Rhyme | 2:0ed1195754b0 | 84 | #define PIN_CS0 P2_3 |
Rhyme | 2:0ed1195754b0 | 85 | /* Interrupt */ |
Rhyme | 2:0ed1195754b0 | 86 | #define PIN_INT0 P2_4 |
Rhyme | 2:0ed1195754b0 | 87 | #define PIN_INT1 P2_5 |
Rhyme | 2:0ed1195754b0 | 88 | #define PIN_INT2 P1_7 |
Rhyme | 2:0ed1195754b0 | 89 | #define PIN_INT3 P1_6 |
Rhyme | 2:0ed1195754b0 | 90 | #define PIN_INT4 P1_5 |
Rhyme | 2:0ed1195754b0 | 91 | #define PIN_INT5 P1_4 |
Rhyme | 2:0ed1195754b0 | 92 | /* Analog In */ |
Rhyme | 2:0ed1195754b0 | 93 | #define PIN_AN0 AIN_0P |
Rhyme | 2:0ed1195754b0 | 94 | #define PIN_AN1 AIN_1P |
Rhyme | 2:0ed1195754b0 | 95 | #define PIN_AN2 AIN_2P |
Rhyme | 2:0ed1195754b0 | 96 | #define PIN_AN3 AIN_3P |
Rhyme | 2:0ed1195754b0 | 97 | #define PIN_AN4 AIN_4P |
Rhyme | 2:0ed1195754b0 | 98 | #define PIN_AN5 AIN_5P |
Rhyme | 2:0ed1195754b0 | 99 | #define BOARD_NAME "MAX32600MBED" |
Rhyme | 2:0ed1195754b0 | 100 | #define DEVICE_NAME "MAX32600MBED" |
Rhyme | 2:0ed1195754b0 | 101 | |
Rhyme | 2:0ed1195754b0 | 102 | #define PIN_CS_TFT P2_3 // D10 PTD0 |
Rhyme | 2:0ed1195754b0 | 103 | #define PIN_DC_TFT P2_4 // D9 PTD5 |
Rhyme | 2:0ed1195754b0 | 104 | #define PIN_CS_TSC P2_5 // D8 PTA13 |
Rhyme | 2:0ed1195754b0 | 105 | #define PIN_BL_TFT P1_7 // D7 PTC9 |
Rhyme | 2:0ed1195754b0 | 106 | #define PIN_CS_SD P1_4 // D4 PTA4 |
Rhyme | 2:0ed1195754b0 | 107 | #define PIN_TSC_INTR P5_4 // PTC9 /* place holder */ |
Rhyme | 2:0ed1195754b0 | 108 | #define PIN_RESET_TFT P5_5 /// PTB10 /* place holder */ |
Rhyme | 2:0ed1195754b0 | 109 | #define PIN_ADC_CH0 AIN_0P // A0 PTB0 |
Rhyme | 2:0ed1195754b0 | 110 | #define PIN_ADC_CH1 AIN_2P // A2 PTB2 |
Rhyme | 2:0ed1195754b0 | 111 | |
Rhyme | 1:8e4295a5c716 | 112 | #else |
Rhyme | 1:8e4295a5c716 | 113 | #error TARGET NOT DEFINED |
Rhyme | 1:8e4295a5c716 | 114 | #endif |
Rhyme | 1:8e4295a5c716 | 115 | |
Rhyme | 3:547b48007148 | 116 | DigitalOut tft_cs(PIN_CS_TFT, 1) ; |
Rhyme | 3:547b48007148 | 117 | DigitalOut sd_cs(PIN_CS_SD, 1) ; |
Rhyme | 3:547b48007148 | 118 | DigitalOut tsc_cs(PIN_CS_TSC, 1) ; |
Rhyme | 1:8e4295a5c716 | 119 | // DigitalOut tsc_intr(PIN_TSC_INTR) ; // should be input, just for test |
Rhyme | 3:547b48007148 | 120 | // DigitalOut tft_reset(PIN_RESET_TFT, 1) ; |
Rhyme | 0:bfe34cc0bc72 | 121 | |
Rhyme | 0:bfe34cc0bc72 | 122 | int main() |
Rhyme | 0:bfe34cc0bc72 | 123 | { |
Rhyme | 0:bfe34cc0bc72 | 124 | uint16_t touched, x, y, z ; |
Rhyme | 1:8e4295a5c716 | 125 | SPI_STMPE610 *tsc ; |
Rhyme | 3:547b48007148 | 126 | #if (TARGET_MAX32600MBED) |
Rhyme | 3:547b48007148 | 127 | uint32_t *SPI0_MSTR_CFG = (uint32_t*)0x40030000 ; |
Rhyme | 3:547b48007148 | 128 | tty = new vt100(57600) ; |
Rhyme | 3:547b48007148 | 129 | #else |
Rhyme | 3:547b48007148 | 130 | tty = new vt100() ; |
Rhyme | 3:547b48007148 | 131 | #endif |
Rhyme | 3:547b48007148 | 132 | tty->cls() ; |
Rhyme | 3:547b48007148 | 133 | |
Rhyme | 1:8e4295a5c716 | 134 | tsc = new SPI_STMPE610(PIN_MOSI, PIN_MISO, PIN_SCLK, PIN_CS_TSC) ; |
Rhyme | 3:547b48007148 | 135 | // tsc->spi_frequency(1000000) ; |
Rhyme | 3:547b48007148 | 136 | // tsc->spi_format(8, 0) ; |
Rhyme | 1:8e4295a5c716 | 137 | printf("Test SPI STMPE610 (%s:%s)\n\r", DEVICE_NAME, __DATE__) ; |
Rhyme | 3:547b48007148 | 138 | |
Rhyme | 3:547b48007148 | 139 | tft_cs = 1 ; /* disable TFT display */ |
Rhyme | 3:547b48007148 | 140 | sd_cs = 1 ; /* disable SD */ |
Rhyme | 3:547b48007148 | 141 | |
Rhyme | 0:bfe34cc0bc72 | 142 | while (true) { |
Rhyme | 1:8e4295a5c716 | 143 | touched = tsc->getRAWPoint(&x, &y, &z) ; |
Rhyme | 3:547b48007148 | 144 | if (touched) { |
Rhyme | 0:bfe34cc0bc72 | 145 | printf("x = %d, y = %d, z = %d\n\r", x, y, z) ; |
Rhyme | 0:bfe34cc0bc72 | 146 | } |
Rhyme | 0:bfe34cc0bc72 | 147 | wait(0.1) ; |
Rhyme | 0:bfe34cc0bc72 | 148 | } |
Rhyme | 0:bfe34cc0bc72 | 149 | } |