Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "implementacja.h"
- #define BUTTON1 2
- #define BUTTON2 3
- #define BUTTON3 4
- #define BUTTON4 5
- #define LED1 7
- #define LED2 8
- #define LED3 9
- #define LED4 10
- #define LED5 11
- #define LED6 12
- #define LED7 13
- char aK1;
- char aK2;
- char aK3;
- char aK4;
- char L1;
- char L2;
- char L3;
- char L4;
- char L5;
- char L6;
- char L7;
- struct SerialV
- {
- char inputs;
- char outputs;
- };
- union SerialValues
- {
- SerialV s;
- uint16_t v;
- };
- void setup() {
- // put your setup code here, to run once:
- pinMode(BUTTON1, INPUT);
- pinMode(BUTTON2, INPUT);
- pinMode(BUTTON3, INPUT);
- pinMode(BUTTON4, INPUT);
- pinMode(LED1, OUTPUT);
- pinMode(LED2, OUTPUT);
- pinMode(LED3, OUTPUT);
- pinMode(LED4, OUTPUT);
- pinMode(LED5, OUTPUT);
- pinMode(LED6, OUTPUT);
- pinMode(LED7, OUTPUT);
- noInterrupts();
- TCCR1A = 0;
- TCCR1B = 0;
- TCNT1 = 65536 - 6249;
- TCCR1B |= (1 << CS12); // 256 prescaler
- TIMSK1 |= (1 << TOIE1); // enable timer overflow interrupt
- interrupts();
- Serial.begin(9600);
- }
- ISR(TIMER1_OVF_vect) // interrupt service routine
- {
- TCNT1 = 65536 - 6249; // preload timer
- implementacja();
- char inputs = 0;
- char outputs = 0;
- byte msg[2];
- outputs |= ((L7 && 1) << 6) | ((L6 && 1) << 5) | ((L5 && 1) << 4) | ((L4 && 1) << 3) | ((L3 && 1) << 2) |((L2 && 1) << 1) | (L1 && 1);
- inputs |= ((aK4 && 1) << 3) | ((aK3 && 1) << 2) | ((aK2 && 1) << 1) | (aK1 && 1);
- msg[0] = inputs;
- msg[1] = outputs;
- if(Serial.availableForWrite() > 2)
- {
- Serial.write(msg, 2);
- }
- }
- void loop() {
- aK1 = digitalRead(BUTTON1);
- aK2 = digitalRead(BUTTON2);
- aK3 = digitalRead(BUTTON3);
- aK4 = digitalRead(BUTTON4);
- // put your main code here, to run repeatedly:
- digitalWrite(LED1, L1);
- digitalWrite(LED2, L2);
- digitalWrite(LED3, L3);
- digitalWrite(LED4, L4);
- digitalWrite(LED5, L5);
- digitalWrite(LED6, L6);
- digitalWrite(LED7, L7);
- }
Advertisement
Add Comment
Please, Sign In to add comment