test program for SPI_STMPE610

Dependencies:   SPI_STMPE610 mbed vt100

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?

UserRevisionLine numberNew 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 }