Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Diff: main.cpp
- 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
}
}