mate-driver/firmware/main.c

43 lines
566 B
C

#include <avr/io.h>
#include <util/delay.h>
#include "pwm.h"
#include "input.h"
int main(void) {
hbridge_init();
input_init();
sei();
DDRD |= (1 << PD1);
while(1) {
while(!input_signal_ok()) {
pwm_cycle_break();
}
while(input_get_result() < -20 || input_get_result() > 20) {
pwm_cycle_break();
}
while(input_signal_ok()) {
int16_t speed = input_get_result();
if(speed > 20) {
pwm_cycle_forwards(speed / 2);
} else if (speed < -20){
pwm_cycle_backwards(-speed / 2);
} else {
pwm_cycle_break();
}
}
}
}