final lab 6, écran lcd

Dependencies:   mbed-rtos mbed mlcd_32pt

testLab6.cpp

Committer:
annicksenecal
Date:
2013-12-09
Revision:
3:e3681694d955
Parent:
2:dfd0d133d964
Child:
4:cb1507dc9dd9

File content as of revision 3:e3681694d955:

// Print messages when the AnalogIn is greater than 50%

#include "mbed.h"       
#include "mlcd_32pt.h"      //Librairie pour l'écran LCD
#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)
{
   while(true)
   {
        if(ir < .6) 
        {
            couleur = false;
            sprintf((char*)message,"c'est noir! (%f)\n \r", ir.read());
            printf((char*)message);
            myled = 1;
            Thread::wait(500);
            myled = 0;
            Thread::wait(500);
        }
        else 
        {
            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); 
        }
        
    }   
}

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);
    
    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 thread2(resetEcran); 
    while(true);
    
    
        
}