Use SD card from Aitendo TFT 2.2 display.
Dependencies: SDFileSystem mbed ILI9340_Driver_Lib
Fork of Seeed_SDCard_Shield by
main.cpp@7:161ee1b5617b, 2015-04-12 (annotated)
- Committer:
- ImageWriter
- Date:
- Sun Apr 12 13:16:05 2015 +0000
- Revision:
- 7:161ee1b5617b
- Parent:
- 3:5edc67dee8b7
- Child:
- 8:a81a5af65446
Aitendo 2.2 inch TFT(SPI interface) with SD card interface Tempture logger test.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
ImageWriter | 7:161ee1b5617b | 1 | |
screamer | 3:5edc67dee8b7 | 2 | |
screamer | 0:525c842a3c89 | 3 | #include "mbed.h" |
screamer | 0:525c842a3c89 | 4 | #include "SDFileSystem.h" |
ImageWriter | 7:161ee1b5617b | 5 | #include "ILI9340_Driver.h" |
screamer | 0:525c842a3c89 | 6 | |
screamer | 2:f2f5e2324ad4 | 7 | Serial pc(USBTX, USBRX); |
screamer | 0:525c842a3c89 | 8 | SDFileSystem sd(D11, D12, D13, D10, "sd"); // MOSI, MISO, SCK, CS |
screamer | 0:525c842a3c89 | 9 | FILE *fp; |
screamer | 0:525c842a3c89 | 10 | |
screamer | 0:525c842a3c89 | 11 | int main() { |
ImageWriter | 7:161ee1b5617b | 12 | |
ImageWriter | 7:161ee1b5617b | 13 | // create the display object |
ImageWriter | 7:161ee1b5617b | 14 | // Nucleo-F411RE to M-TM022-SPI(Aitendo) connection. |
ImageWriter | 7:161ee1b5617b | 15 | // 2014.12.30 ImageWriter |
ImageWriter | 7:161ee1b5617b | 16 | // ------------------------------------------------ |
ImageWriter | 7:161ee1b5617b | 17 | // [Nucleo] [M-TM022-SPI] |
ImageWriter | 7:161ee1b5617b | 18 | // (D2) --- Reset; |
ImageWriter | 7:161ee1b5617b | 19 | // (D4) --- CS; |
ImageWriter | 7:161ee1b5617b | 20 | // (D7) --- D/C; |
ImageWriter | 7:161ee1b5617b | 21 | // (D13) --- CLK; |
ImageWriter | 7:161ee1b5617b | 22 | // (D11) --- MOSI; |
ImageWriter | 7:161ee1b5617b | 23 | // (D12) --- MISO; |
ImageWriter | 7:161ee1b5617b | 24 | // (3V3) --- VCC; |
ImageWriter | 7:161ee1b5617b | 25 | // (3V3) -R- LED; (R=220 to 330 ohm) |
ImageWriter | 7:161ee1b5617b | 26 | // (GND) --- GND |
ImageWriter | 7:161ee1b5617b | 27 | // (A1) --- LM35DZ (IC tempture sensor 10mV/deg C ) |
ImageWriter | 7:161ee1b5617b | 28 | |
ImageWriter | 7:161ee1b5617b | 29 | ILI9340_Display myTft = ILI9340_Display(D11, D12, D13, D4, D2, D7); |
ImageWriter | 7:161ee1b5617b | 30 | |
ImageWriter | 7:161ee1b5617b | 31 | // create the Analog object |
ImageWriter | 7:161ee1b5617b | 32 | AnalogIn myA1(A1); |
ImageWriter | 7:161ee1b5617b | 33 | |
ImageWriter | 7:161ee1b5617b | 34 | // initialise the display |
ImageWriter | 7:161ee1b5617b | 35 | myTft.DispInit(); |
ImageWriter | 7:161ee1b5617b | 36 | |
ImageWriter | 7:161ee1b5617b | 37 | // clears the screen to remove all noise data |
ImageWriter | 7:161ee1b5617b | 38 | myTft.FillScreen(ILI9340_WHITE); |
ImageWriter | 7:161ee1b5617b | 39 | |
ImageWriter | 7:161ee1b5617b | 40 | // set up variables |
ImageWriter | 7:161ee1b5617b | 41 | char roomTemptureString[] = "0000"; |
ImageWriter | 7:161ee1b5617b | 42 | char roomTemptureString_old[] = "0000"; |
ImageWriter | 7:161ee1b5617b | 43 | int roomTempture; // Room Tempture * 100 |
ImageWriter | 7:161ee1b5617b | 44 | long realTempture; // For calucrate |
ImageWriter | 7:161ee1b5617b | 45 | int xx = 1; |
screamer | 0:525c842a3c89 | 46 | |
ImageWriter | 7:161ee1b5617b | 47 | while(true) { |
ImageWriter | 7:161ee1b5617b | 48 | realTempture = 0; |
ImageWriter | 7:161ee1b5617b | 49 | for(int i=0;i<1000;i++){ |
ImageWriter | 7:161ee1b5617b | 50 | realTempture += myA1.read_u16()*33000/65535; // realTemp = 3300mv * 10 / 0xFFFF |
ImageWriter | 7:161ee1b5617b | 51 | } |
ImageWriter | 7:161ee1b5617b | 52 | realTempture = realTempture/1000; |
ImageWriter | 7:161ee1b5617b | 53 | roomTempture = int(realTempture); // Cast int |
ImageWriter | 7:161ee1b5617b | 54 | //myTft.FillScreen(ILI9340_WHITE); |
ImageWriter | 7:161ee1b5617b | 55 | |
ImageWriter | 7:161ee1b5617b | 56 | myTft.DrawString("Now room tempture is",30,10,1,ILI9340_BLACK); |
ImageWriter | 7:161ee1b5617b | 57 | myTft.IntToChars(roomTemptureString,roomTempture,4,10,9999,9999,3,ILI9340_BLACK); // offscreen write |
ImageWriter | 7:161ee1b5617b | 58 | |
ImageWriter | 7:161ee1b5617b | 59 | // Erace old charactor |
ImageWriter | 7:161ee1b5617b | 60 | myTft.DrawAscii(roomTemptureString_old[0],10, 50,3,ILI9340_WHITE); |
ImageWriter | 7:161ee1b5617b | 61 | myTft.DrawAscii(roomTemptureString_old[1],30, 50,3,ILI9340_WHITE); |
ImageWriter | 7:161ee1b5617b | 62 | //myTft.DrawAscii('.' ,50, 50,3,ILI9340_WHITE); |
ImageWriter | 7:161ee1b5617b | 63 | myTft.DrawAscii(roomTemptureString_old[2],70, 50,3,ILI9340_WHITE); |
ImageWriter | 7:161ee1b5617b | 64 | myTft.DrawAscii(roomTemptureString_old[3],90, 50,3,ILI9340_WHITE); |
ImageWriter | 7:161ee1b5617b | 65 | //myTft.DrawString("deg C" ,110,50,3,ILI9340_WHITE); |
ImageWriter | 7:161ee1b5617b | 66 | |
ImageWriter | 7:161ee1b5617b | 67 | // Erase new charactor |
ImageWriter | 7:161ee1b5617b | 68 | myTft.DrawAscii(roomTemptureString[0],10, 50,3,ILI9340_BLACK); |
ImageWriter | 7:161ee1b5617b | 69 | myTft.DrawAscii(roomTemptureString[1],30, 50,3,ILI9340_BLACK); |
ImageWriter | 7:161ee1b5617b | 70 | myTft.DrawAscii('.' ,50, 50,3,ILI9340_BLACK); |
ImageWriter | 7:161ee1b5617b | 71 | myTft.DrawAscii(roomTemptureString[2],70, 50,3,ILI9340_BLACK); |
ImageWriter | 7:161ee1b5617b | 72 | myTft.DrawAscii(roomTemptureString[3],90, 50,3,ILI9340_BLACK); |
ImageWriter | 7:161ee1b5617b | 73 | myTft.DrawString("deg C" ,110,50,3,ILI9340_BLACK); |
ImageWriter | 7:161ee1b5617b | 74 | |
ImageWriter | 7:161ee1b5617b | 75 | // xx counter |
ImageWriter | 7:161ee1b5617b | 76 | if(xx > 239){ |
ImageWriter | 7:161ee1b5617b | 77 | xx=1; |
ImageWriter | 7:161ee1b5617b | 78 | }else{ |
ImageWriter | 7:161ee1b5617b | 79 | xx++; |
ImageWriter | 7:161ee1b5617b | 80 | } |
ImageWriter | 7:161ee1b5617b | 81 | |
ImageWriter | 7:161ee1b5617b | 82 | // Erese old plot |
ImageWriter | 7:161ee1b5617b | 83 | myTft.DrawLine(xx,319,xx,(319 - 5000/25) ,ILI9340_WHITE); |
ImageWriter | 7:161ee1b5617b | 84 | |
ImageWriter | 7:161ee1b5617b | 85 | // Draw scale line |
ImageWriter | 7:161ee1b5617b | 86 | myTft.DrawLine(0,319-1000/25,240,319-1000/25,ILI9340_BLACK); |
ImageWriter | 7:161ee1b5617b | 87 | myTft.DrawLine(0,319-2000/25,240,319-2000/25,ILI9340_BLACK); |
ImageWriter | 7:161ee1b5617b | 88 | myTft.DrawLine(0,319-3000/25,240,319-3000/25,ILI9340_BLACK); |
ImageWriter | 7:161ee1b5617b | 89 | myTft.DrawLine(0,319-4000/25,240,319-4000/25,ILI9340_BLACK); |
ImageWriter | 7:161ee1b5617b | 90 | |
ImageWriter | 7:161ee1b5617b | 91 | // plot graph |
ImageWriter | 7:161ee1b5617b | 92 | myTft.DrawLine(xx,(317 - roomTempture/25),xx,(319 - roomTempture/25),ILI9340_BLACK); |
ImageWriter | 7:161ee1b5617b | 93 | |
ImageWriter | 7:161ee1b5617b | 94 | // cursor |
ImageWriter | 7:161ee1b5617b | 95 | myTft.DrawLine(xx,319,xx,309,ILI9340_BLACK); |
ImageWriter | 7:161ee1b5617b | 96 | |
ImageWriter | 7:161ee1b5617b | 97 | // logger |
ImageWriter | 7:161ee1b5617b | 98 | fp = fopen("/sd/mylogger.txt", "a+"); |
ImageWriter | 7:161ee1b5617b | 99 | if (fp == NULL) { |
ImageWriter | 7:161ee1b5617b | 100 | pc.printf("Unable to write the file\r\n"); |
ImageWriter | 7:161ee1b5617b | 101 | } else { |
ImageWriter | 7:161ee1b5617b | 102 | pc.printf("%d \r\n",roomTempture); |
ImageWriter | 7:161ee1b5617b | 103 | fprintf(fp, "%d \r\n",roomTempture); |
ImageWriter | 7:161ee1b5617b | 104 | } |
screamer | 0:525c842a3c89 | 105 | fclose(fp); |
ImageWriter | 7:161ee1b5617b | 106 | //pc.printf("File successfully written!\r\n"); |
ImageWriter | 7:161ee1b5617b | 107 | |
ImageWriter | 7:161ee1b5617b | 108 | |
ImageWriter | 7:161ee1b5617b | 109 | wait(10); |
ImageWriter | 7:161ee1b5617b | 110 | // erace cursor |
ImageWriter | 7:161ee1b5617b | 111 | myTft.DrawLine(xx,319,xx,309,ILI9340_WHITE); |
ImageWriter | 7:161ee1b5617b | 112 | |
ImageWriter | 7:161ee1b5617b | 113 | // save old character |
ImageWriter | 7:161ee1b5617b | 114 | strcpy(roomTemptureString_old,roomTemptureString); |
ImageWriter | 7:161ee1b5617b | 115 | |
screamer | 0:525c842a3c89 | 116 | } |
screamer | 0:525c842a3c89 | 117 | } |