RuiViana

Threads_Basico

Jul 11th, 2016
142
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <Thread.h>                           // Bibioteca das threads
  2. Thread LedA = Thread();                       // Define thread de
  3. Thread LedB = Thread();                       // Define thread
  4. unsigned long TempoA = 0;                     // Variavel para medir tempo
  5. unsigned long TempoB = 0;                     // Variavel para medir tempo
  6. int c;
  7. int d;
  8. byte Invertea = 0;
  9. byte Inverteb = 0;
  10. //-------------------------------------
  11. void setup()
  12. {
  13.   Serial.begin(9600);                         // Habilita serial a 9600
  14.   LedA.enabled = true;                        // Habilita o uso do Thread LedA
  15.   LedA.setInterval(10);                       // Thread de 10 ms para
  16.   LedA.onRun(LigaLedA);                       // Executa função
  17.  
  18.   LedB.enabled = true;                        // Habilita o uso do Thread LedB
  19.   LedB.setInterval(10);                       // Thread de 10 ms para
  20.   LedB.onRun(LigaLedB);                       // Executa função de
  21.  
  22.   pinMode(11, OUTPUT);                        // Led A
  23.   pinMode(12, OUTPUT);                        // Led B
  24.   TempoA = millis();                          // Tempo do Led A
  25.   TempoB = millis();                          // Tempo do Led A
  26. }
  27. //--------------------------------------
  28. void loop()
  29. {
  30.   if (LedA.shouldRun())                       // Se deve executar função Conta_Tempo()
  31.   {
  32.     Invertea = !Invertea;
  33.     digitalWrite(12 , Invertea);
  34.     LedA.run();                               // Execute função Conta_Tempo(
  35.   }
  36.   if (LedB.shouldRun())                       // Se deve executar função Le_Moedeiro()
  37.   {
  38.     Inverteb = !Inverteb;
  39.     digitalWrite(11 , Inverteb);
  40.     LedB.run();                               // Execute função Le_Moedeiro()
  41.   }
  42. }
  43. //--------------------------------------
  44. void LigaLedA()
  45. {
  46.   c++;
  47. }
  48. //--------------------------------------
  49. void LigaLedB()
  50. {
  51.   d++;
  52. }
RAW Paste Data