61ea201957e6814634f82f0af89cedc61467ca2d
[Arduino] / c2_ulx3s_test / btn.cpp
1 #include <Arduino.h>
2
3 void btn_init()
4 {
5   int i;
6   // buttons
7   for(i = 0; i < 6; i++)
8     pinMode(i, INPUT);
9   // switches
10   for(i = 16; i < 20; i++)
11     pinMode(i, INPUT);
12   // leds
13   for(i = 8; i < 16; i++)
14     pinMode(i, OUTPUT);
15 }
16
17 void btn_read(char *line)
18 {
19   static uint8_t shiftdata = 0;
20   uint8_t led = B10001 << (shiftdata++ & 3);
21   sprintf(line, "BTN:%c%c%c%c%c%c%c SW:%c%c%c%c LED:%c%c%c%c%c%c%c%c\n",
22     digitalRead(0) ? '_' : '0',
23     digitalRead(1) ? '1' : '_',
24     digitalRead(2) ? '2' : '_',
25     digitalRead(3) ? '3' : '_',
26     digitalRead(4) ? '4' : '_',
27     digitalRead(5) ? '5' : '_',
28     digitalRead(6) ? '6' : '_',
29     digitalRead(16) ? '1' : '_',
30     digitalRead(17) ? '2' : '_',
31     digitalRead(18) ? '3' : '_',
32     digitalRead(19) ? '4' : '_',
33     led & B10000000 ? '7' : '_',
34     led & B01000000 ? '6' : '_',
35     led & B00100000 ? '5' : '_',
36     led & B00010000 ? '4' : '_',
37     led & B00001000 ? '3' : '_',
38     led & B00000100 ? '2' : '_',
39     led & B00000010 ? '1' : '_',
40     led & B00000001 ? '0' : '_'
41   );
42   for(int i = 0; i < 8; i++)
43     digitalWrite(8+i, led & (1<<i) ? 1 : 0);
44 }