/* spindle_control.h - spindle control methods Part of Grbl Copyright (c) 2012-2016 Sungeun K. Jeon for Gnea Research LLC Copyright (c) 2009-2011 Simen Svale Skogsrud Grbl is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. Grbl is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Grbl. If not, see . */ #ifndef spindle_control_h #define spindle_control_h // Initializes spindle pins and hardware PWM, if enabled. void spindle_init(); // Called by g-code parser when setting spindle state and requires a buffer sync. void spindle_run(uint8_t direction, float rpm); // Immediately sets spindle running state with direction and spindle rpm via PWM, if enabled. // Called by spindle_run() after sync and parking motion/spindle stop override during restore. void spindle_set_state(uint8_t state, uint8_t pwm_value); // Stop and start spindle routines. Called by all spindle routines and stepper ISR. inline void spindle_stop(); inline void spindle_set_speed(uint8_t pwm_value); // Variable spindle only. uint8_t spindle_compute_pwm_value(float rpm); // 328p PWM register is 8-bit. Variable spindle only. #endif