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