projets de S3 s4 2021

Dependencies:   mbed TFT_fonts SPI_TFT_ILI9341

Revision:
8:eb61367f53ce
Parent:
6:13d0de9e679c
--- a/main.cpp	Sat Jan 12 03:55:06 2019 +0000
+++ b/main.cpp	Sun Oct 18 16:05:21 2020 +0000
@@ -1,132 +1,56 @@
-/* KL25Z mbed library for ILI9341 touch devices
- * SPI Interface
 
- * Uses Peter Drescher ILI9341 Library
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-
+// init générales appels de lybraries 
 #include "mbed.h"
-#include "SPI_TFT_ILI9341.h"
-#include "Arial12x12.h"
-#include "touch.h"
-
+#include "IUT.h"     // programmes utiles carte IUT-BED  dans le fichier IUT.h
 
-#define     PIN_XP          PTB3
-#define     PIN_XM          PTB1
-#define     PIN_YP          PTB2
-#define     PIN_YM          PTB0
-#define     PIN_MOSI        PTD2
-#define     PIN_MISO        PTD3
-#define     PIN_SCLK        PTD1
-#define     PIN_CS_TFT      PTA5
-#define     PIN_DC_TFT      PTC8
-#define     PIN_BL_TFT      PTC9
-#define     PIN_CS_SD       PTA4
+//  après c'est la lieu de  déclaration de vos  variables et  sous programmes
+//  vos varriables et vos grogrammes commenceront par un V
+//  afin de  se différiencier des variables globales déja créées
+float  Vpot = 0;  // V pot valeur 
 
+Serial serial(SERIAL_TX, SERIAL_RX); // laison serie en USB par usb driver STlink
+// sous programme callback  à completer  en cas de reception serie .. interruption
+void callback() 
+    {serial.printf("%c\n", serial.getc()); } // ( retourne le caractère arrivé 
 
-SPI_TFT_ILI9341 TFT(PIN_MOSI, PIN_MISO, PIN_SCLK, PIN_CS_TFT, PIN_BL_TFT, PIN_DC_TFT, "TFT");   //PIN_BL_TFT does not have to be connected
-TouchScreen tft(PIN_XP, PIN_YP, PIN_XM, PIN_YM); //init TouchScreen port pins
-
-
-// Paint application - Demonstate both TFT and Touch Screen
-int ColorPaletteHigh = 15;  //Height of color palette
-int color = White;  //Paint brush initial color
-unsigned int colors[16] = {Red, Green, Blue, Cyan, Yellow, Purple, Pink, Black, Orange, Brown, BlueGreen, White, LightPink, DarkGrey, DarkGreen, Mustard};
+//  debut du "main" 
+int main()
+{
+    winit();  // ligne obligatoire pour initialiser la carte IUT BED
+    serial.baud(115200);  // initialise la vitesse de serie 
+    serial.attach(&callback); // autorise l'arrivée de caractère usb serie
+    
+     // exemples de choses à faire
+    TFT.background(Black);   // fond ecran
+    TFT.foreground(White);   // couleur ecriture
+    TFT.cls();               // efface tout
 
-int RXPLATE = 350;  //Set this to the resistance measured across XP and XM
-int Q = 1024;  //10 bit TSC Resolution
-float TS_MINX = 5500;   //Set this to screen x min
-float TS_MAXX = 58100;  //Set this to screen x max
-float TS_MINY = 4700;   //Set this to screen y min
-float TS_MAXY = 57600;  //Set this to screen y max
-int PRESSURE = 200;     //Set this to max pressure (z) that will register as a touch event
-int v[3] ={0,0,0};      //array to roll touches for comparison and validation, initialized at zero briefly.
+    //Print : message 
+    TFT.set_font((unsigned char*) Arial28x28);
+    TFT.locate(0,5);  // 0 pix en X ,   5 en vertical
+    TFT.printf("IUT-BED2021");
+    
+    while (true) // boucle sans fin
+    {    // 
+        serial.printf("carte IUT-BED2021 connectee\r\n");
+        TFT.locate(0,100);
+        TFT.printf("bonjour");
+        
+        TFT.locate(0,75);
+        TFT.printf("pot=        " );
+        TFT.locate(0,75);
+        Vpot = pot.read();  // read (en float)  la tension sur la broche pot
+        Vpot = 3.2 * Vpot ; // sortie float de 0 a 3.2 ( 1024 pas)
+        TFT.printf("pot= %.2f", Vpot );
 
-struct point
-{
-    int x;
-    int y;
-    int z;
-};
+        wait(0.5);
+        
+        led0 = k2;     // led = etat interrupteur k2
+        led1 = !led1;  // inverse led
 
-typedef struct point Point;
-
-
-Point point(int xx, int yy, int zz){
-    Point p;
-    p.x = xx;
-    p.y = yy;
-    p.z = zz;
-    return p;
+   }
+    
 }
 
 
-Point getPoint(){
 
-    float z;
-    int y2 = tft.readTouch(PTB3,PTB1,PTB2,PTB0);    //a(analog),i(analog),n(digital),m(digital)
-    int x2 = tft.readTouch(PTB2,PTB0,PTB3,PTB1);    //Resources to help set these up
-    int z2 = tft.readTouch(PTB0,PTB3,PTB2,PTB1);    //http://electronics.stackexchange.com/questions/113223/4-wire-resisitive-touch-screen-not-working
-    int z1 = tft.readTouch(PTB3,PTB0,PTB2,PTB1);    //http://www.ti.com/lit/an/sbaa155a/sbaa155a.pdf
-    
-    if (z1!=0){
-        z = (float)z2/(float)z1;
-    }else{
-        z = 0;
-    }
-    int x = x2;
-    int y = y2;
-    return point(x,y,z);
-}
-
-    
-    
-int main(){
-    TFT.claim(stdout);          // send stdout to the TFT display
-    TFT.set_orientation(0);
-    TFT.set_font((unsigned char*) Arial12x12);  //set font to arial 12x12
-    TFT.foreground(Cyan);      // set text chars to Cyan
-    TFT.background(Purple);      // set text background to Purple
-
-    for(int i = 0; i<16; i++){
-        TFT.fillrect(i*15, 0, 15*(i+1), ColorPaletteHigh, colors[i]);   //Fill color palete with 16 colors defined in SPI_TFT_ILI9341.h
-    }
-    while(1){
-        // a point object holds x y and z coordinates.
-        Point p = getPoint();
-        //map the ADC value read to into pixel co-ordinates
-        p.x = map(p.x, TS_MINX, TS_MAXX, 0, 240);   //Use map functionm to size p.x to screen size
-        p.y = map(p.y, TS_MINY, TS_MAXY, 0, 320);   //Use map functionm to size p.y to screen size
-        p.z = 20+p.x * RXPLATE / Q * (p.z -1);  //Calc p.z based on above reference links
-        
-        v[2]=v[1];  //Rotate p.z touch values in array
-        v[1]=v[0];
-        v[0]=p.z;
-
-        /*TFT.locate(60,90);
-        printf("x = %d      \r\n", p.x);    //Uncomment these to see point data on screen and to obtain calibration values
-        TFT.locate(60,110);
-        printf("y = %d      \r\n", p.y);
-        TFT.locate(60,130);
-        printf("z = %d      \r\n", p.z);*/
-
-        // we have some minimum pressure we consider 'valid'
-        // pressure of 0 means no pressing!
-        if (p.z > 40 && p.z < PRESSURE & p.z == (v[1]+v[2])/2) {    //Validate that p.z senses a touch event
-            // Detect  paint brush color change
-            if(int(p.y) < ColorPaletteHigh+2){
-                color = colors[int(p.x)/15];    //Touch event occured in color palette, change color.
-            }else{
-                TFT.fillcircle(int(p.x),int(p.y),2,color);  //Touch event caused paint event with 2 pixel brush
-            }
-        }
-    }
-}
\ No newline at end of file