Main fall er fyrsta version sem virkar, klasi fyrir ofan er púslun úr því sem mun koma til með að endurskrifa main fall útfrá.
This commit is contained in:
@@ -0,0 +1,50 @@
|
|||||||
|
#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;
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user