Merge branch 'master' of mjesec.ffzg.hr:/git/Arduino
[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 uint8_t btn[6];
18 uint8_t btn_toggle[6] = { 0,0,0,0,0,0 };
19
20 int btn_read(char *line)
21 {
22   int ret = 0;
23   static uint8_t shiftdata = 0;
24   uint8_t led = B10001 << (shiftdata++ & 3);
25
26   Serial.print("btn_toggle=");
27   for(int i=0; i<=6; i++) {
28     btn[i] = digitalRead(i);
29     if ( i == 0 ) btn[i] = !btn[i];
30     if ( btn[i] ) {
31       digitalWrite(8+i, 1);
32       if ( btn_toggle[i] == 0 ) {
33         btn_toggle[i]++; // press
34       }
35     } else {
36       digitalWrite(8+i, 0);
37       if ( btn_toggle[i] == 1 ) {
38         btn_toggle[i]++; // release
39       }
40     }
41     if (btn_toggle[i] == 2) {
42       ret++;
43       //digitalWrite(8+i, 1);
44     }
45     Serial.print(btn_toggle[i]);
46   }
47   Serial.println();
48   
49   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",
50     digitalRead(0) ? '_' : '0',
51     digitalRead(1) ? '1' : '_',
52     digitalRead(2) ? '2' : '_',
53     digitalRead(3) ? '3' : '_',
54     digitalRead(4) ? '4' : '_',
55     digitalRead(5) ? '5' : '_',
56     digitalRead(6) ? '6' : '_',
57     digitalRead(16) ? '1' : '_',
58     digitalRead(17) ? '2' : '_',
59     digitalRead(18) ? '3' : '_',
60     digitalRead(19) ? '4' : '_',
61     led & B10000000 ? '7' : '_',
62     led & B01000000 ? '6' : '_',
63     led & B00100000 ? '5' : '_',
64     led & B00010000 ? '4' : '_',
65     led & B00001000 ? '3' : '_',
66     led & B00000100 ? '2' : '_',
67     led & B00000010 ? '1' : '_',
68     led & B00000001 ? '0' : '_'
69   );
70   //for(int i = 0; i < 8; i++)
71   //  digitalWrite(8+i, led & (1<<i) ? 1 : 0);
72   return ret;
73 }