Use SD card from Aitendo TFT 2.2 display.

Dependencies:   SDFileSystem mbed ILI9340_Driver_Lib

Fork of Seeed_SDCard_Shield by Shields

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?

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