Projet_S3

Dependencies:   mbed

Revision:
0:3cb0bc1eb7fa
Child:
1:95a7e179a181
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Mon May 09 12:49:08 2016 +0000
@@ -0,0 +1,83 @@
+// 401version Ci   image 0x 0y en haut à gauche
+// led en 16 lignes ( repère fleché  0 0 )
+// image defilante .. version direct bmp classée en c et p 
+// rx en 200K bauds
+// multi usages
+#include "mbed.h"
+//#include "stm32f4xx_hal_iwdg.h"
+#define LOW 0
+#define HIGH 1
+#define R 0
+#define V 1
+#define B 2
+DigitalOut sd(PC_9);
+Serial serie(NC, PC_7);  // tx, rx  
+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 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)
+//DigitalIn  X0(PB_13);DigitalIn  X1(PB_14);DigitalIn  X2(PB_15);
+//DigitalIn  Y0(PB_9) ;DigitalIn  Y1(PB_8) ;DigitalIn  Y2(PC_9) ;
+
+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 arr ; int prim ; int ptdat ;// arr char arrivé,  prim temoin inactivité; ptdata nombre d'octet a recevoir ..
+char rect[55];          // rec et commende 55 octets max
+char tabc[1024] ;       // pour y placer 256x4 =  r+v+b+1
+char tabp[200][200];    // pour y placer les pixels arrives ici 200/200
+long  ptfin ; // pointeur fin ( 2 + 256 3 + 256*256* 4 )
+int pt1 ; int pt2 ; int pt3 ;int pt4 ;
+int pttr ; int pttv ; int pttb; 
+int etat ; // etat des actions a faire .. draw .. bmp .. ..
+int com ; int com1 ; int com2 ; int com3 ; int com4 ; int ordrefait ; // com et passage parrametre commande 
+int longtempsa0 ; int trop ; // indique très longtemps sans RX ?? que faire ? on verra 
+int Li ; int Hi ;// indicateurs : taille, largeur, hauteur
+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
+int ptx; int pty ; int xx ; int yy ; // utile dans recv > 1078
+int bcl ;
+      
+#include "LED.h"       // transferts LED <>401
+//#include "tests.h"     // oulils de test ( pas forcement utiles)
+//#include "serie.h"     // transfert RX 401<>1768
+#include "draw.h"  // le tableau effectue un programme dans draw
+//#include "etatbmp.h"   // le tableau reagit à des commandes du 1768  r g 
+//#include "wdt.h"       // watch dog  securité
+
+
+
+//***************************************************fin wdt
+void init ()
+   {
+ 
+    prim =  3;    // compteur de vides de rx 
+    ptfin = 54 ;  // preset au cas ou trame de commande  
+    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
+    etat = 'd' ; // d draw état natif au reveil
+    longtempsa0 = 0 ; trop = 0 ;
+    Tr();  // efface T
+    Ir();  // efface I
+    ordrefait = 0;
+   }
+
+int main()
+{
+init(); // initialisations importantes
+
+//
+while(1)
+    {      
+    if ( etat == 'd' ) draw();  //  on est en draw d'un programme local ( TR ) sur une matrice
+           
+    IversT();   // recharge i vers T
+    Taffi();    // on met T vers les LEDs
+
+    }
+}