From: Michael Wiebusch Date: Mon, 15 Dec 2014 15:59:26 +0000 (+0100) Subject: move_plate() now in timer 1 interrup routine, plate_ready() signal to main loop X-Git-Url: https://jspc29.x-matter.uni-frankfurt.de/git/?a=commitdiff_plain;h=5963add0a2b331dc8cae2c3c8bb903a21c8423e8;p=coral.git move_plate() now in timer 1 interrup routine, plate_ready() signal to main loop --- 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<