final lab 6, écran lcd
Dependencies: mbed-rtos mbed mlcd_32pt
Diff: testLab6.cpp
- Revision:
- 3:e3681694d955
- Parent:
- 2:dfd0d133d964
- Child:
- 4:cb1507dc9dd9
diff -r dfd0d133d964 -r e3681694d955 testLab6.cpp --- a/testLab6.cpp Fri Dec 06 20:06:30 2013 +0000 +++ b/testLab6.cpp Mon Dec 09 20:46:01 2013 +0000 @@ -5,13 +5,27 @@ #include "Serial.h" //Librairie pour la communication série #include "rtos.h" +#define ACK 0x06 +#define NAK 0x15 +#define ON 1 +#define OFF 0 +#define DEBUT_LIGNE 0 +#define NOIR 0xFFFF +#define WIDTH 1 +#define HEIGHT 1 +#define LIGNE_SUIV 15 + AnalogIn ir(p19); //Initialisation de la pin qui reçoit la valeur du capteur infra-rouge DigitalOut myled(LED4); //Sert surtout au dépannage DigitalOut myled2(LED2); //Sert surtout au dépannage +DigitalOut myled3(LED3); Serial terminal (USBTX,USBRX); //pour envoyer au port de communication +int lignes = 0; bool couleur; +Mutex flag; +unsigned char message[50]; void lectureCapteur (void const *args) { @@ -20,25 +34,8 @@ if(ir < .6) { couleur = false; - - } - else - { - couleur = true; - - } - Thread::wait(1000); - } -} - -void envoiMessage (void const *args) -{ - - while(1) - { - if (couleur == false) - { - printf("c'est noir! (%f)\n \r", ir.read()); + sprintf((char*)message,"c'est noir! (%f)\n \r", ir.read()); + printf((char*)message); myled = 1; Thread::wait(500); myled = 0; @@ -46,23 +43,82 @@ } else { - printf("c'est blanc! (%f)\n \r", ir.read()); + couleur = true; + sprintf((char*)message,"c'est blanc! (%f)\n \r", ir.read()); + printf((char*)message); myled2 = 1; Thread::wait(500); myled2 = 0; - Thread::wait(500); - } - } + Thread::wait(500); + } + + } } +void envoiMessage (void const *args) +{ + while(1) + { + if (couleur == false) + { + drawString(DEBUT_LIGNE, lignes, FONT_8_12, NOIR, WIDTH, HEIGHT, message); + lignes += LIGNE_SUIV; + Thread::wait(1000); + } + else + { + drawString(DEBUT_LIGNE, lignes, FONT_8_12, NOIR, WIDTH, HEIGHT, message); + lignes += LIGNE_SUIV; + Thread::wait(1000); + } + + if (lignes >= 225) + { + copier_coller(); + + lignes -= LIGNE_SUIV; + } + } +} + +/*void resetEcran (void const *args) +{ + if (double_clic()) { + flag.lock(); + sprintf((char*)message,"Reset de l'ecran"); + drawString(DEBUT_LIGNE, lignes, FONT_8_12, NOIR, WIDTH, HEIGHT, message); + lignes = 0; + } + +} +*/ + int main() { + int retour = 0; + int bckground = 0; + + init_lcd(); + //bckground = rgb(0,255,0);//213,44,180 + //retour = setbgColor(bckground); - init_com(BAUD9600); - + if (retour == NAK) + { + myled3 = ON; + } + else + { + sprintf((char*)message,"Lecture du capteur\n\r"); + printf("%s", (char*)message); + drawString(DEBUT_LIGNE, lignes, FONT_8_12, NOIR, WIDTH, HEIGHT, message); + lignes += LIGNE_SUIV; + } + + Thread thread(lectureCapteur); - Thread thread1(envoiMessage); + Thread thread1(envoiMessage); + //Thread thread2(resetEcran); while(true);