Hubert_M

Untitled

Apr 3rd, 2019
127
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.93 KB | None | 0 0
  1. #include "implementacja.h"
  2.  
  3. #define BUTTON1 2
  4. #define BUTTON2 3
  5. #define BUTTON3 4
  6. #define BUTTON4 5
  7.  
  8. #define LED1 7
  9. #define LED2 8
  10. #define LED3 9
  11. #define LED4 10
  12. #define LED5 11
  13. #define LED6 12
  14. #define LED7 13
  15.  
  16. char aK1;
  17. char aK2;
  18. char aK3;
  19. char aK4;
  20.  
  21. char L1;
  22. char L2;
  23. char L3;
  24. char L4;
  25. char L5;
  26. char L6;
  27. char L7;
  28.  
  29. struct SerialV
  30. {
  31. char inputs;
  32. char outputs;
  33. };
  34.  
  35. union SerialValues
  36. {
  37. SerialV s;
  38. uint16_t v;
  39. };
  40.  
  41. void setup() {
  42. // put your setup code here, to run once:
  43. pinMode(BUTTON1, INPUT);
  44. pinMode(BUTTON2, INPUT);
  45. pinMode(BUTTON3, INPUT);
  46. pinMode(BUTTON4, INPUT);
  47.  
  48. pinMode(LED1, OUTPUT);
  49. pinMode(LED2, OUTPUT);
  50. pinMode(LED3, OUTPUT);
  51. pinMode(LED4, OUTPUT);
  52. pinMode(LED5, OUTPUT);
  53. pinMode(LED6, OUTPUT);
  54. pinMode(LED7, OUTPUT);
  55.  
  56. noInterrupts();
  57. TCCR1A = 0;
  58. TCCR1B = 0;
  59.  
  60. TCNT1 = 65536 - 6249;
  61.  
  62. TCCR1B |= (1 << CS12); // 256 prescaler
  63. TIMSK1 |= (1 << TOIE1); // enable timer overflow interrupt
  64. interrupts();
  65.  
  66. Serial.begin(9600);
  67. }
  68.  
  69. ISR(TIMER1_OVF_vect) // interrupt service routine
  70. {
  71. TCNT1 = 65536 - 6249; // preload timer
  72. implementacja();
  73.  
  74. char inputs = 0;
  75. char outputs = 0;
  76.  
  77. byte msg[2];
  78.  
  79. outputs |= ((L7 && 1) << 6) | ((L6 && 1) << 5) | ((L5 && 1) << 4) | ((L4 && 1) << 3) | ((L3 && 1) << 2) |((L2 && 1) << 1) | (L1 && 1);
  80. inputs |= ((aK4 && 1) << 3) | ((aK3 && 1) << 2) | ((aK2 && 1) << 1) | (aK1 && 1);
  81.  
  82. msg[0] = inputs;
  83. msg[1] = outputs;
  84.  
  85. if(Serial.availableForWrite() > 2)
  86. {
  87. Serial.write(msg, 2);
  88. }
  89. }
  90.  
  91. void loop() {
  92.  
  93. aK1 = digitalRead(BUTTON1);
  94. aK2 = digitalRead(BUTTON2);
  95. aK3 = digitalRead(BUTTON3);
  96. aK4 = digitalRead(BUTTON4);
  97.  
  98. // put your main code here, to run repeatedly:
  99. digitalWrite(LED1, L1);
  100. digitalWrite(LED2, L2);
  101. digitalWrite(LED3, L3);
  102. digitalWrite(LED4, L4);
  103. digitalWrite(LED5, L5);
  104. digitalWrite(LED6, L6);
  105. digitalWrite(LED7, L7);
  106. }
Advertisement
Add Comment
Please, Sign In to add comment