Jose Gutierrez Cabello / Mbed 2 deprecated projecte_v4_rtos

Dependencies:   mbed-rtos mbed Hc05 RawSerialPc

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 #include "mbed.h"
00002 #include "rtos.h"
00003 #include "Hc05.h"
00004 #include "RawSerialPc.h"
00005 
00006 
00007 RawSerialPc pc(USBTX, USBRX);    //Per provar si funciona, no cal al programa
00008 Hc05 bt(D8, D2);        //Crea l'objecte bt, connectat als pins D8 (TX) i D2 (RX) (és la connexió sèrie BT)
00009 
00010 //Aquest serà el meu fil, que va llegint cada 300ms del HC-05 
00011 void llegir_thread(void const *args) {
00012     while (true) {
00013         //Intenta llegir un string, i si el llegeix, el tracta
00014         if(bt.llegirString())
00015             bt.tractaString();      
00016         //Comprova la connexió (mira si ha rebut alguna cosa)
00017         bt.comprovaConnexio();
00018         //Temps del Thread que està esperant
00019         Thread::wait(100);
00020         
00021     }
00022 }
00023 
00024 //Aquest serà el programa principal
00025 int main() {
00026     
00027     Thread thread(llegir_thread);       //Inicia el fil llegir_thread
00028     //char m[128];                        //Per visualitzar el mode i el timer, no es necessari
00029     while (true) {
00030         //pc.enviaString(bt.strLlegit);   //Per veure l'ultim string llegit, no es necessari
00031         bt.calculaMotors(); //Calcula com s'han de moure els motors
00032         //snprintf(m, 128, "Mode: %d | timer: %dms", bt.getMode(), bt.getTimer()); //Per visualitzar el mode i el timer, no es necessari
00033         //pc.enviaString(m);              //Per visualitzar el mode i el timer, no es necessari
00034         //pc.enviaString(bt.strPos);      //Per visualitzar la posicio on ha d'anar el robot, no es necessari
00035         if((bt.getMode() == 0) || (bt.getMode() == 1) || (bt.getMode() == 2)) {
00036             pc.enviaString(bt.strM1);       //String motor1 que s'envia a l'arduino d'en Marcel
00037             pc.enviaString(bt.strM2);       //String motor2 que s'envia a l'arduino d'en Marcel
00038             pc.enviaString(bt.strM3);       //String motor3 que s'envia a l'arduino d'en Marcel
00039         }
00040         else if (bt.getMode() == 3) {
00041             ;//Mode automàtic (programa Eva)
00042         }
00043         else if (bt.getMode() == 4) {
00044             ;//Mode mando (programa Marc)
00045         }
00046         else {
00047             pc.enviaString("V000FM1");       //String motor1 que s'envia a l'arduino d'en Marcel
00048             pc.enviaString("V000FM2");       //String motor2 que s'envia a l'arduino d'en Marcel
00049             pc.enviaString("V000FM3");       //String motor3 que s'envia a l'arduino d'en Marcel
00050         }
00051         Thread::wait(500);              //Temps del Thread que està esperant
00052     }
00053 }