Advertisement
Guest User

Hei

a guest
Mar 22nd, 2018
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.06 KB | None | 0 0
  1. #include <Arduino.h>
  2. #include <LiquidCrystal.h>
  3. #include <Arduino_FreeRTOS.h>
  4. #include <string.h>
  5. #include <queue.h>
  6.  
  7. #include <struct.hpp>
  8.  
  9. LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
  10.  
  11. void taskOne(void *pvParameters);
  12. void taskTwo(void *pvParameters);
  13. QueueHandle_t queue;
  14.  
  15. void setup() {
  16. Serial.begin(115200);
  17. lcd.begin(16, 2);
  18. pinMode(7, OUTPUT);
  19. pinMode(8, OUTPUT);
  20. queue = xQueueCreate(10, sizeof(struct_t));
  21. xTaskCreate(taskOne, "Task one", 256, queue, 2, NULL);
  22. xTaskCreate(taskTwo, "Task two", 256, queue, 2, NULL);
  23. }
  24.  
  25. void loop() {
  26. }
  27.  
  28. void taskOne(void* queue)
  29. {
  30. struct_t message;
  31.  
  32. char kopi[30];
  33.  
  34. memset(kopi, 0x00, strlen(kopi));
  35.  
  36. Serial.readBytes(kopi, 50);
  37.  
  38. strcat(kopi, "\0");
  39.  
  40. strcpy(message.goddag, kopi);
  41.  
  42.  
  43.  
  44.  
  45.  
  46. while(1)
  47. {
  48. xQueueSend(queue, &message, portMAX_DELAY);
  49.  
  50. memset(message.goddag, 0, strlen(message.goddag));
  51. // Suspend for three seconds until we send again
  52. vTaskDelay(pdMS_TO_TICKS(3000));
  53. }
  54. }
  55.  
  56. // Task two waits for a message then prints out what it received.
  57. // xQueueReceive() blocks the task until a message is available.
  58. void taskTwo(void* queue)
  59. {
  60. struct_t message;
  61. while (1)
  62. {
  63. xQueueReceive(queue, &message, portMAX_DELAY);
  64.  
  65. char log[30];
  66.  
  67. memset(log, 0x00, sizeof(log));
  68.  
  69. //sprintf(log, "%s", message.goddag);
  70.  
  71. strcpy(log, message.goddag);
  72.  
  73. Serial.println(log);
  74. //Serial.println(log);
  75.  
  76. if (strcmp(log, "2")) {
  77. digitalWrite(7, HIGH);
  78. } else if (strcmp(log, "1")) {
  79. digitalWrite(7, LOW);
  80. }
  81. /*
  82. if (message.goddag == "3") {
  83. digitalWrite(8, HIGH);
  84. } else if(message.goddag == "4") {
  85. digitalWrite(8, LOW);
  86. }
  87.  
  88. if (message.goddag == "tone") {
  89. int hei = Serial.parseInt();
  90. Serial.println(hei);
  91. tone(10, hei);
  92. }
  93.  
  94. if (message.goddag == "lcd") {
  95.  
  96. String myChar = Serial.readString();
  97. lcd.print(myChar);
  98. }else if(message.goddag == "lcdoff"){
  99. lcd.clear();
  100. }
  101.  
  102. if (message.goddag == "pot") {
  103. int val = analogRead(A0);
  104. Serial.println(val);
  105. }
  106. */
  107. }
  108. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement