Advertisement
ganryu

Untitled

Nov 9th, 2018
182
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.75 KB | None | 0 0
  1. #include <FreeRTOS_v821.h>
  2.  
  3. //Pines Leds
  4.  
  5. #define ledRed  42
  6. const int ledYellow = 40;
  7. const int ledGreen    = 41;
  8.  
  9. void initLeds(){
  10.     pinMode(ledRed,
  11.             OUTPUT);
  12.     pinMode(ledYellow,
  13.             OUTPUT);
  14.     pinMode(ledGreen,
  15.             OUTPUT);
  16. }
  17. static void task_red(void* params );
  18. static void task_green(void* params);
  19.  
  20. void setup(){
  21.     Serial.begin(115200);
  22.     initLeds();
  23.     xTaskCreate(task_red,
  24.                 "idRed",
  25.                 256,
  26.                 NULL,
  27.                 2,
  28.                 NULL);
  29.     xTaskCreate(task_yellow,
  30.                 "idYellow",
  31.                 256,
  32.                 NULL,
  33.                 1,
  34.                 NULL);
  35.     vTaskStartScheduler();
  36.     for (;;);  
  37. }
  38.  
  39. void loop(){
  40. }
  41.  
  42. static void task_red(void* params){
  43.     TickType_t xLastWakeTime; // Despertar a lo último.
  44.     const TickType_t xPeriod = pdMS_TO_TICKS(1000);
  45.     const TickType_t xC = pdMS_TO_TICKS(2000);
  46.     xLastWakeTime =  xTaskGetTickCount();
  47.     for(;;){
  48.         digitalWrite(ledRed,HIGH);
  49.         // vTaskDelay(xPeriod);
  50.         vTaskDelayUntil(&xLastWakeTime,xPeriod);
  51.         digitalWrite(ledRed,LOW);
  52.         vTaskDelayUntil(&xLastWakeTime,xC);
  53.         Serial.print("Ticks RED:");
  54.         long ticks = xTaskGetTickCount();
  55.         Serial.print(ticks);
  56.     }
  57. }
  58. static void task_yellow(void* params){
  59.     TickType_t xLastWakeTime;
  60.     const TickType_t xPeriod = pdMS_TO_TICKS(3000);
  61.     const TickType_t xC = pdMS_TO_TICKS(1000);
  62.     xLastWakeTime =  xTaskGetTickCount();
  63.     for(;;){
  64.         digitalWrite(ledGreen,HIGH);
  65.         // vTaskDelay(xPeriod);
  66.         vTaskDelayUntil(&xLastWakeTime,xC);
  67.         digitalWrite(ledGreen,LOW);
  68.         vTaskDelayUntil(&xLastWakeTime,xPeriod);
  69.     }
  70. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement