Skip to content

Commit 09a840d

Browse files
committed
first puzzle
1 parent 2c68f27 commit 09a840d

File tree

2 files changed

+83
-5
lines changed

2 files changed

+83
-5
lines changed

busy_logic/src/main.cpp

Lines changed: 82 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -50,18 +50,72 @@ enum Mode {
5050

5151
};
5252

53+
54+
class XEvaluable {
55+
public:
56+
virtual uint8_t evaluate(XEvaluable &e...)=0;
57+
};
58+
59+
class Input : XEvaluable {
60+
uint8_t pin;
61+
public:
62+
Input(uint8_t _pin) : pin(_pin) {}
63+
void init(){
64+
pinMode(pin,INPUT);
65+
}
66+
67+
uint8_t evaluate() {
68+
return digitalRead(pin);
69+
}
70+
};
71+
72+
class Output : XEvaluable {
73+
uint8_t pin;
74+
public:
75+
Output(uint8_t _pin) : pin(_pin) {}
76+
void init(){
77+
pinMode(pin,OUTPUT);
78+
}
79+
80+
uint8_t evaluate() {
81+
uint8_t val=1;
82+
digitalWrite(pin, val);
83+
return digitalRead(val);
84+
}
85+
}
86+
;
87+
88+
89+
90+
5391
Gate g0(2,3,4, Gate::Mode::AND );
5492
Gate g1(5,6,7, Gate::Mode::XOR );
5593
Gate g2(8,9,10, Gate::Mode::XOR );
5694
Gate g3(16,14,15, Gate::Mode::XOR );
5795

96+
int I1=2;
97+
int I2=3;
98+
int I3=5;
99+
int I4=6;
100+
int I5=8;
101+
int I6=9;
102+
int I7=16;
103+
int I8=14;
104+
105+
int O1=4;
106+
int O2=7;
107+
int O3=10;
108+
int O4=15;
109+
58110
void setup()
59111
{
60112
Serial.begin(115200);
61113
Serial.println("startup...");
62114

63115
// initialize LED digital pin as an output.
64116
pinMode(LED_BUILTIN, OUTPUT);
117+
118+
65119

66120
g0.init();
67121
g1.init();
@@ -85,10 +139,33 @@ void sb(int t){
85139
}
86140

87141
void loop() {
88-
g0.update();
89-
g1.update();
90-
g2.update();
91-
g3.update();
92-
sb(100);
142+
// g0.update();
143+
// g1.update();
144+
// g2.update();
145+
// g3.update();
146+
147+
int i1=digitalRead(I1);
148+
int i2=digitalRead(I2);
149+
int i3=digitalRead(I3);
150+
int i4=digitalRead(I4);
151+
int i5=digitalRead(I5);
152+
int i6=digitalRead(I6);
153+
int i7=digitalRead(I7);
154+
int i8=digitalRead(I8);
155+
156+
int o1=i1 && i8;
157+
int o2=i4 && i6;
158+
int o3=i2 ^ i5;
159+
int o4=i3 ^ i7;
160+
// int o1=i1^i4^i6^i7^i8;
161+
// int o2=i1^i3^i5^i7;
162+
// int o3=i2^i4^i6^i7^i8;
163+
// int o4=i1^i2^i3^i4^i5^i6^i7^i8;
164+
165+
digitalWrite(O1,o1);
166+
digitalWrite(O2,o2);
167+
digitalWrite(O3,o3);
168+
digitalWrite(O4,o4);
169+
sb(10);
93170
}
94171

esp_shutter/src/main.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,7 @@ void processCommands(){
112112
}
113113
}
114114
}
115+
115116
void loop() {
116117
kmqtt.loop();
117118

0 commit comments

Comments
 (0)