Files
ESP_Project1_H26/main.cpp
T

51 lines
860 B
C++

#include <avr/io.h>
#include <util/delay.h>
#include <Arduino.h>
#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;
}