From 5963add0a2b331dc8cae2c3c8bb903a21c8423e8 Mon Sep 17 00:00:00 2001 From: Michael Wiebusch Date: Mon, 15 Dec 2014 16:59:26 +0100 Subject: [PATCH] move_plate() now in timer 1 interrup routine, plate_ready() signal to main loop --- firmware/main.c | 10 +++++----- firmware/plate.c | 26 +++++++++++++++++++++++++- firmware/plate.h | 6 +++--- 3 files changed, 33 insertions(+), 9 deletions(-) diff --git a/firmware/main.c b/firmware/main.c index a192a88..56bc262 100644 --- a/firmware/main.c +++ b/firmware/main.c @@ -226,7 +226,7 @@ int main(void){ init_motors(); SetupHardware(); - + init_plate_timer(); touchpad_init(); // you need to call this to setup the I/O pin! _delay_ms(500); sei(); @@ -236,10 +236,10 @@ int main(void){ while (1) { Usb2SerialTask(); parse_command(); // read data from virtual comport - touchpad_read(); // read data from touchpad - inc_target_plate_pos_x(4*delta_x()); - inc_target_plate_pos_y(-4*delta_y()); - if(move_plate()){ +// touchpad_read(); // read data from touchpad +// inc_target_plate_pos_x(4*delta_x()); +// inc_target_plate_pos_y(-4*delta_y()); + if(plate_ready()){ pos_report(); } } diff --git a/firmware/plate.c b/firmware/plate.c index aeb7be5..e1d3274 100644 --- a/firmware/plate.c +++ b/firmware/plate.c @@ -1,5 +1,6 @@ #include #include +#include #include #include "motors.h" #include "plate.h" @@ -13,6 +14,8 @@ int32_t plate_pos_x = 0,plate_pos_y = 0; int32_t target_plate_pos_x = 0,target_plate_pos_y = 0; +uint8_t ready = 0; + int32_t get_plate_pos_x(void){ return plate_pos_x; } @@ -44,6 +47,16 @@ void inc_target_plate_pos_y(int32_t value){ target_plate_pos_y += value; } +uint8_t plate_ready(void){ + if(ready){ + ready = 0; + return 1; + } else { + return 0; + } +} + + uint8_t move_plate(void){ int32_t todo_x,todo_y = 0; @@ -105,8 +118,19 @@ uint8_t move_plate(void){ +void init_plate_timer(void){ + TCCR1B |= (1<