Projet_S3

Dependencies:   mbed

Revision:
6:edb27e228558
Parent:
5:10349dda4f42
Child:
7:315630fad89f
--- a/main.cpp	Fri Nov 25 14:55:07 2016 +0000
+++ b/main.cpp	Fri Oct 12 09:16:23 2018 +0000
@@ -1,6 +1,10 @@
-// duj401  pour TR de s2
-// sans serie wdt ou autre 
-// lieu de programmation >>> dans le draw !!
+//***************************************************
+// the "base" pour  1 plaque a led  32/32 sur f401
+// version utilisable en TP de S2 et dans les projets de S3
+// reception série à 115K bauds  protocole "duj"
+// A B C D    A B adresses C couleur D commande et couleur
+// consulter la doc du protocole
+//**************************************************
 
 #include "mbed.h"
 #define LOW 0
@@ -8,61 +12,60 @@
 #define R 0
 #define V 1
 #define B 2
-
-AnalogIn canx(PC_4);AnalogIn cany(PB_1); DigitalOut plus(PB_15); //adxl335
-
+// definition des broches pour  carte F401
+AnalogIn canx(PC_4);AnalogIn cany(PB_1); DigitalOut plus(PB_15); DigitalOut gnd(PB_14);//adxl335
+DigitalOut sd(PC_9);     // indicateur de fonctionnement 
 BusOut ABCD(PA_14,PB_0,PA_15,PC_1); // version 32/32  nucleo f401 
-BusOut RVB(PA_7,PA_5,PA_4,PA_1,PA_6,PA_0);  // RVB  ( R a droite )un seul a ecrire
+DigitalOut B1(PA_7);DigitalOut V1(PA_4);DigitalOut R1(PA_6);
+DigitalOut B0(PA_5);DigitalOut V0(PA_1);DigitalOut R0(PA_0);
 DigitalOut CLK(PC_2);    //  Data clock    - rising edge
-DigitalOut LAT(PC_0);    //  Data latch    - active low (pulse up after data load)
-DigitalOut OE(PC_3);     //  Output enable - active low (hold high during data load, bring low after LAT pulse)
+DigitalOut LAT(PC_0);    //  Data latch    - active low 
+DigitalOut OE(PC_3);     //  Output enable - active low 
+Serial serie(NC, PC_7);  //  tx, rx   ( pas de tx utilisé)
+     
+// variables de lecture
+    int ccx ; int ccy ;         // acceleration
+// variables en écriture
+     int br = 4 ; int bb = 0; int bv= 0 ; // prepo couleurs ( circle et char)     
+//variables  de travail diverses 
+    int ZX ; int ZY ; int ZR ; int ZV ; int ZB ; // pour tirrage aléatoire couleurs
+    int Zin = 100;  // variable de decomptage ( timer soft )
+    int vc = 0;  // ? 
 
-char T[32][16][4]; // Tampon affichage 4 temps  R1R2V1V2B1B2 32x32 (2*16 )
-char I[32][32][3]; // Y X rvb .. Image 32x32 en RVB   0 à 15   0: noir 
-int  L; int M ; int O ; //    variables globales idiotes
-char J; char K ; char Q; char S ; char D;  char F; // variables à la con
-char G; char H ; char GG;
-char T0 ; char T1 ; char T2 ; char T3;
-int pt1 ; int pt2 ; int pt3 ;int pt4 ;
-int dx ; int dy ; // position du 32/32 dans l'image li hi
-int ax ; int ay ;  int comf ;  // ax offset en plus de dx et dy 
-char pixt ; int rr; int vv ; int bb ; // pour des couleurs
-float xin; float yin;  // lecture accelero
-int accx ; int accy ;  // acceleration
-int ar; int av ; int ab ;     //couleurs de dessin
-int atr ; int atv ; int atb ; // couleurs du texte 
-int varmax;  int all ;//limite  maximum pour eclairage all = 1 limite temps
-      
-#include "LED.h"      // gestion e/s vers matrice a led
-#include "char.h"     // ecriture texte
-#include "draw.h"     // le tableau effectue votre  programme dansce draw
+#include "LED2.h"      // commandes gestion des led en ligne a ligne 
+#include "char.h"      // char pour écrire à creuser
+#include "draw.h"      // char pour écrire à creuser
+#include "serie.h"     // gestion demandes par liaison serie
+//***************************************************
 
-//***************************************************fin wdt
 void init ()
-   {all = 0  ; // pas de limite expo
-    atr = 0 ; atv = 5 ; atb = 0 ;  // couleur texte rouge
-    ar = 0  ; av = 0 ; ab = 0 ; // couleur dessin noir
-    dx = 0 ; dy = 0 ; // recherche adresse du tableau dans un 8*8
-    ax = 0 ; ay = 0; // offset a ajouter a dx et dy pour mouvement
-    Tr();  // efface T
-    Ir();  // efface I
-    plus = HIGH ;
+   {
+    serie.baud(115200);  // from xbee k bits/sec 
+    serie.attach(&interrupt, Serial::RxIrq);  // autorise IT de liaison serie 
+    g1 = 10 ; g2 = 100 ; g3 = 200 ;  // initialisation petit gamma  
+    gnd = 0 ;plus = 1 ;  // accéléro en marche
+    Tr2();   // efface  les tableaux
    }
 
 int main()
 {
 init(); // initialisations importantes
+   charr(5,5,'y');
+       
+            
+while( Zin > 0)  // 
+   {
+    Taffi();   // on met T vers les LEDs
+    Zin = Zin-1;
+   } // etape de 2 secondes
+    Tr2();  // efface 
+    clown();
+    
+while(1)  // boucle principal 
+    {          // permanence 
+    accel();  //   mesure sur capteur accéleration x et y 
+    draw(); 
+    Taffi();   // on met T vers les LEDs
 
-//
-while(1)  // boucle sans fin ( temps d'execution 30 ms )
-    {  
-    xin = canx.read(); yin= cany.read(); 
-  //  accx = xin * 150-75; accy = yin * 150 - 75 ;      
-    accx = xin * 1500-750; accy = yin * 1500 - 750 ;  // on amplifie !
-    draw();  //   dans draw.h c'est le lieu de votre programme en Tr
-           
-    IversT();   // recharge votre image I  vers T
-    Taffi();    // passe T vers les LEDs
-    Ir();       // efface le dessin dans image I  
     }
 }