MartinSRB

[НРС] Вежбе 16 - Задатак 2

May 14th, 2023 (edited)
726
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.03 KB | None | 0 0
  1. #include<arduinoPlatform.h>
  2. #include<tasks.h>
  3. #include<interrupts.h>
  4. #include<stdio.h>
  5. #include<serial.h>
  6. #include <pwm.h>
  7. #include<data.h>
  8.  
  9. extern serial Serial;
  10.  
  11. void turn_off_all_LED(){
  12.     for(int i = 26; i <= 29; ++i){
  13.         digitalWrite(i, LOW);
  14.     }
  15. }
  16.  
  17. void serial_check(int id, void* ptrt){
  18.     if(Serial.available()){ //Ovde koristim if jer ce uvek za jednu binarnu konverziju da koristi jednu cifru -> [0-9]
  19.         char dec_char = Serial.read();
  20.         if(dec_char >= '0' && dec_char <= '9'){
  21.             turn_off_all_LED(); //cistimo prethodni ispis za binarni broj (samo ako je uneta cifra ovo radim).
  22.             int dec = dec_char - '0',
  23.                 i   = 26;
  24.             while(dec / 2 > 0 || i <= 29){
  25.                 digitalWrite(i++, dec % 2);
  26.                 dec /= 2;
  27.             }
  28.         }
  29.     }
  30. }
  31.  
  32. void setup()
  33. {
  34.     Serial.begin(9600);
  35.     for(int i = 26; i <= 29; ++i){
  36.         pinMode(i, OUTPUT);
  37.     }
  38.     createTask(serial_check, 100, TASK_ENABLE, NULL);
  39. }
  40.  
  41. void loop()
  42. {
  43.  
  44. }
  45.  
Advertisement
Add Comment
Please, Sign In to add comment