43 lines
566 B
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();
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|