TFT Shield test program (ST7735) Using 1.8" Adafruit TFT Shield with Joystick and microSD v1.0 Verified by WIZwiki-W7500 platform
Dependencies: Adafruit_GFX Adafruit_ST7735 SDFileSystem mbed
Diff: main.cpp
- Revision:
- 0:e3a8eb7dada7
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Thu Jul 30 05:21:42 2015 +0000 @@ -0,0 +1,87 @@ +#include "mbed.h" +#include "Adafruit_ST7735.h" +#include "SDFileSystem.h" + +#define BUTTON_NONE 0 +#define BUTTON_DOWN 1 +#define BUTTON_RIGHT 2 +#define BUTTON_SELECT 3 +#define BUTTON_UP 4 +#define BUTTON_LEFT 5 + +#define BUFFPIXEL 20 +SDFileSystem sd(PB_3, PB_2, PB_1, PB_0, "SD"); // the pinout on the mbed +Adafruit_ST7735 tft(D11, D12, D13, D10, D8, D9); // MOSI, MISO, SCLK, SSEL, TFT_DC, TFT_RST +AnalogIn joystick(A3); + +uint8_t readButton(void); +void bmpDraw(char *filename, uint8_t x, uint8_t y); + +void main(void) +{ + uint8_t buttonhistory = 0; + + // Initialize 1.8" TFT + tft.initR(INITR_BLACKTAB); // initialize a ST7735S chip, black tab + + printf("OK!\r\n"); + tft.fillScreen(ST7735_BLACK); + + while(1) + { + uint8_t b = readButton(); + tft.setTextSize(3); + if (b == BUTTON_DOWN) { + tft.setTextColor(ST7735_RED); + tft.setCursor(0, 10); + tft.printf("Down "); + buttonhistory |= 1; + } + if (b == BUTTON_LEFT) { + tft.setTextColor(ST7735_YELLOW); + tft.setCursor(0, 35); + tft.printf("Left "); + buttonhistory |= 2; + } + if (b == BUTTON_UP) { + tft.setTextColor(ST7735_GREEN); + tft.setCursor(0, 60); + tft.printf("Up"); + buttonhistory |= 4; + } + if (b == BUTTON_RIGHT) { + tft.setTextColor(ST7735_BLUE); + tft.setCursor(0, 85); + tft.printf("Right"); + buttonhistory |= 8; + } + if ((b == BUTTON_SELECT) && (buttonhistory == 0xF)) { + tft.setTextColor(ST7735_MAGENTA); + tft.setCursor(0, 110); + tft.printf("SELECT"); + buttonhistory |= 8; + wait_ms(2000); + printf("Initializing SD card...\r\n"); +// if(tft.BMP_16(0, 0, "/SD/parrot.bmp")) + printf("a\r\n"); + tft.DrawBitmapFile("/SD/parrot.bmp"); +// else + printf("b\r\n"); + } + wait_ms(100); + } +} + +uint8_t readButton(void) { + float a = joystick.read(); + + a *= 5.0; + + printf("Button read analog = %f\r\n",a); + if (a < 0.2) return BUTTON_DOWN; + if (a < 1.0) return BUTTON_RIGHT; + if (a < 1.7) return BUTTON_SELECT; + if (a < 2.6) return BUTTON_UP; + if (a < 4.6) return BUTTON_LEFT; + else return BUTTON_NONE; +}