diff --git a/main.cpp b/main.cpp new file mode 100644 index 0000000..54faf56 --- /dev/null +++ b/main.cpp @@ -0,0 +1,50 @@ +#include +#include +#include + +#include "digital_in.h" +#include "digital_out.h" + + +int main() { + uint8_t cycle{0}; + int8_t counter{0}; + double ratio; + + bool last_lo = false; + + Digital_in encoderA{4}; + Digital_in encoderB{5}; + Digital_out led{5}; + + encoderA.init(); + encoderB.init(); + led.init(); + + Serial.begin(9600); + + while (true) { + _delay_us(100); + led.set_lo(); + + bool curr_hi = encoderA.is_hi(); + + if (last_lo && curr_hi) { + counter += encoderB.is_lo() ? -1 : 1; + led.set_hi(); + } + ++cycle; + + if (cycle == 255) { + ratio = counter / (0.0255 * 700); + counter = 0; + cycle = 0; + Serial.println(ratio); + } + + last_lo = !curr_hi; + } + + + return 0; +}