Displays JPG named Logo from SD card
Dependencies: FT800_3 SDFileSystem mbed
main.cpp@1:9221588f4198, 2016-08-05 (annotated)
- Committer:
- montgojj
- Date:
- Fri Aug 05 18:59:54 2016 +0000
- Revision:
- 1:9221588f4198
- Parent:
- 0:d53f428d8f41
Releasing everything for final work day.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
montgojj | 0:d53f428d8f41 | 1 | #include "mbed.h" |
montgojj | 0:d53f428d8f41 | 2 | #include "FT_Platform.h" |
montgojj | 0:d53f428d8f41 | 3 | #include "FT_color.h" |
montgojj | 0:d53f428d8f41 | 4 | #include "stdio.h" |
montgojj | 0:d53f428d8f41 | 5 | #include "float.h" |
montgojj | 0:d53f428d8f41 | 6 | #include "SDFileSystem.h" |
montgojj | 0:d53f428d8f41 | 7 | |
montgojj | 0:d53f428d8f41 | 8 | #define SAMAPP_DELAY_BTW_APIS (1000) |
montgojj | 0:d53f428d8f41 | 9 | #define SAMAPP_ENABLE_DELAY() Ft_Gpu_Hal_Sleep(SAMAPP_DELAY_BTW_APIS) |
montgojj | 0:d53f428d8f41 | 10 | #define SAMAPP_ENABLE_DELAY_VALUE(x) Ft_Gpu_Hal_Sleep(x) |
montgojj | 0:d53f428d8f41 | 11 | |
montgojj | 0:d53f428d8f41 | 12 | FT800 TFT(D11,D12,D13,D9,D8,D14); |
montgojj | 0:d53f428d8f41 | 13 | SDFileSystem sd(D11, D12, D13, D10, "sd"); |
montgojj | 0:d53f428d8f41 | 14 | |
montgojj | 0:d53f428d8f41 | 15 | // global Vars |
montgojj | 0:d53f428d8f41 | 16 | unsigned int r, b, g; |
montgojj | 0:d53f428d8f41 | 17 | char buffer[50]; |
montgojj | 0:d53f428d8f41 | 18 | |
montgojj | 0:d53f428d8f41 | 19 | /* function to load jpg file from internal filesystem */ |
montgojj | 0:d53f428d8f41 | 20 | /* into FT800 buffer and decode JPG to bitmap */ |
montgojj | 0:d53f428d8f41 | 21 | /* return 0 if jpg is ok */ |
montgojj | 0:d53f428d8f41 | 22 | /* return x_size and y_size of jpg */ |
montgojj | 0:d53f428d8f41 | 23 | |
montgojj | 0:d53f428d8f41 | 24 | int main() |
montgojj | 0:d53f428d8f41 | 25 | { |
montgojj | 0:d53f428d8f41 | 26 | ft_int16_t x_size,y_size; |
montgojj | 0:d53f428d8f41 | 27 | |
montgojj | 1:9221588f4198 | 28 | TFT.MemWrite(REG_ROTATE,1); |
montgojj | 1:9221588f4198 | 29 | TFT.Rotate(1); |
montgojj | 1:9221588f4198 | 30 | //TFT.Calibrate(); // calibrate the touch screen |
montgojj | 1:9221588f4198 | 31 | TFT.DLstart(); |
montgojj | 1:9221588f4198 | 32 | TFT.DL(CLEAR_COLOR_RGB(255,255,255)); |
montgojj | 1:9221588f4198 | 33 | TFT.DL(CLEAR(1,1,1)); |
montgojj | 1:9221588f4198 | 34 | |
montgojj | 1:9221588f4198 | 35 | TFT.DL(BITMAP_HANDLE(0)); |
montgojj | 1:9221588f4198 | 36 | TFT.Load_jpg("/sd/Logo.jpg",& x_size,& y_size, 0); |
montgojj | 1:9221588f4198 | 37 | |
montgojj | 1:9221588f4198 | 38 | TFT.DL(DISPLAY()); // Display the image |
montgojj | 1:9221588f4198 | 39 | TFT.Swap(); // Swap the current display list |
montgojj | 1:9221588f4198 | 40 | TFT.Flush_Co_Buffer(); // Download the command list into fifo |
montgojj | 1:9221588f4198 | 41 | TFT.WaitCmdfifo_empty(); |
montgojj | 0:d53f428d8f41 | 42 | |
montgojj | 1:9221588f4198 | 43 | TFT.Track(225, 375, 350, 30, 1); |
montgojj | 1:9221588f4198 | 44 | TFT.Flush_Co_Buffer(); // Download the commands into fifo |
montgojj | 1:9221588f4198 | 45 | TFT.WaitCmdfifo_empty(); // Wait till coprocessor completes the operation |
montgojj | 1:9221588f4198 | 46 | while(1) { |
montgojj | 1:9221588f4198 | 47 | TFT.DLstart(); |
montgojj | 1:9221588f4198 | 48 | TFT.DL(CLEAR_COLOR_RGB(255,255,255)); |
montgojj | 1:9221588f4198 | 49 | TFT.DL(CLEAR(1,1,1)); |
montgojj | 0:d53f428d8f41 | 50 | TFT.DL(BEGIN(BITMAPS)); |
montgojj | 1:9221588f4198 | 51 | TFT.DL(VERTEX2II(512,50,0,0)); //Write logo (bitmap handle 0) to pixel 512 |
montgojj | 1:9221588f4198 | 52 | TFT.DL(VERTEX_TRANSLATE_X(50*16)); //Translate by 50 pixels |
montgojj | 1:9221588f4198 | 53 | TFT.DL(VERTEX2II(511,200,0,0)); //Write logo |
montgojj | 1:9221588f4198 | 54 | TFT.DL(VERTEX_TRANSLATE_X(0*16)); //Translate back |
montgojj | 1:9221588f4198 | 55 | TFT.DL(DISPLAY()); // Display the image |
montgojj | 0:d53f428d8f41 | 56 | TFT.Swap(); // Swap the current display list |
montgojj | 0:d53f428d8f41 | 57 | TFT.Flush_Co_Buffer(); // Download the command list into fifo |
montgojj | 1:9221588f4198 | 58 | TFT.WaitCmdfifo_empty(); // Wait till coprocessor completes the operation |
montgojj | 1:9221588f4198 | 59 | |
montgojj | 1:9221588f4198 | 60 | |
montgojj | 1:9221588f4198 | 61 | |
montgojj | 1:9221588f4198 | 62 | |
montgojj | 1:9221588f4198 | 63 | |
montgojj | 1:9221588f4198 | 64 | /*ft_uint8_t tagval = 0; |
montgojj | 1:9221588f4198 | 65 | TrackRegisterVal = TFT.Rd32(REG_TRACKER); // check if one of the two tracking fields is touched |
montgojj | 1:9221588f4198 | 66 | tagval = TrackRegisterVal & 0xff; |
montgojj | 1:9221588f4198 | 67 | |
montgojj | 1:9221588f4198 | 68 | |
montgojj | 1:9221588f4198 | 69 | TFT.DL(COLOR_RGB(0x00,0x7C,0xC4)); |
montgojj | 1:9221588f4198 | 70 | TFT.Text(265, 200, 31, 0, "ITV 1 Pressure"); |
montgojj | 1:9221588f4198 | 71 | TFT.DL(BEGIN(RECTS)); |
montgojj | 1:9221588f4198 | 72 | TFT.DL(VERTEX2F(300*16,265*16)); |
montgojj | 1:9221588f4198 | 73 | TFT.DL(VERTEX2F(505*16,330*16)); |
montgojj | 1:9221588f4198 | 74 | TFT.DL(END()); |
montgojj | 1:9221588f4198 | 75 | TFT.DL(COLOR_RGB(255,255,255)); |
montgojj | 1:9221588f4198 | 76 | sprintf(buffer, "%.1f", ITVpressure1_feedback); |
montgojj | 1:9221588f4198 | 77 | TFT.Text(325,275,31,0,buffer); |
montgojj | 1:9221588f4198 | 78 | TFT.Text(415, 275, 31, 0, " PSI"); |
montgojj | 1:9221588f4198 | 79 | ITVpressure1_feedback = 0; |
montgojj | 1:9221588f4198 | 80 | TFT.DL(COLOR_RGB(255,255,255)); |
montgojj | 1:9221588f4198 | 81 | |
montgojj | 1:9221588f4198 | 82 | TFT.FgColor(COLOR_RGB(0,124,196)); |
montgojj | 1:9221588f4198 | 83 | TFT.BgColor(COLOR_RGB(0,124,196)); |
montgojj | 1:9221588f4198 | 84 | TFT.DL(TAG(1)); // assign TAG value 1 |
montgojj | 1:9221588f4198 | 85 | TFT.Slider(225,375,350,30,0,ITVpressure1_user_input,65535);*/ |
montgojj | 0:d53f428d8f41 | 86 | |
montgojj | 1:9221588f4198 | 87 | |
montgojj | 0:d53f428d8f41 | 88 | } |
montgojj | 0:d53f428d8f41 | 89 | } |
montgojj | 0:d53f428d8f41 | 90 | |
montgojj | 0:d53f428d8f41 | 91 | |
montgojj | 0:d53f428d8f41 | 92 |