yarf 0.1
Yet Another RepRap Firmware
src/movement/planner.h
Go to the documentation of this file.
00001 /*
00002  * planner.h
00003  *
00004  * Copyright 2011 Pieter Agten
00005  *
00006  * This file is part of Yarf.
00007  *
00008  * Yarf is free software: you can redistribute it and/or modify
00009  * it under the terms of the GNU General Public License as published by
00010  * the Free Software Foundation, either version 3 of the License, or
00011  * (at your option) any later version.
00012  *
00013  * Yarf is distributed in the hope that it will be useful,
00014  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00015  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00016  * GNU General Public License for more details.
00017  *
00018  * You should have received a copy of the GNU General Public License
00019  * along with Yarf.  If not, see <http://www.gnu.org/licenses/>.
00020  */
00021 
00031 #ifndef PLANNER_H
00032 #define PLANNER_H
00033 
00034 #include "yarf.h"
00035 #include "block.h"
00036 
00037 #include <stdbool.h>
00038 
00042 void plan_init(void);
00043 
00053 steps_t plan_get_virtual_position(unsigned char axis);
00054 
00064 void plan_set_virtual_position_rel(steps_t x, steps_t y, steps_t z, steps_t e);
00065 
00075 void plan_set_virtual_position_abs(steps_t x, steps_t y, steps_t z, steps_t e);
00076 
00077 
00089 void plan_calculate_trapezoid(block_t *b, speed_t entry_speed, speed_t exit_speed);
00090 
00091 
00121 void plan_linear_movement_rel(steps_t steps_x, steps_t steps_y, steps_t steps_z, steps_t steps_e, speed_t plateau_speed);
00122 
00123 
00152 void plan_linear_movement_abs(steps_t dest_x, steps_t dest_y, steps_t dest_z, steps_t dest_e, speed_t plateau_speed);
00153 
00162 void plan_home_axes(bool x, bool y, bool z);
00163 
00164 #endif //PLANNER_H
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines