Minor changes.

- Changed some names up and removed a plan_reset() function that is
never used.
This commit is contained in:
Sonny Jeon 2013-01-06 12:04:02 -07:00
parent 5e7c25d480
commit 53286744d5
4 changed files with 10 additions and 18 deletions

View File

@ -125,7 +125,7 @@
#define ACCELERATION_TICKS_PER_SECOND 120L #define ACCELERATION_TICKS_PER_SECOND 120L
// NOTE: Make sure this value is less than 256, when adjusting both dependent parameters. // NOTE: Make sure this value is less than 256, when adjusting both dependent parameters.
#define INTERRUPTS_PER_ACCELERATION_TICK (ISR_TICKS_PER_SECOND/ACCELERATION_TICKS_PER_SECOND) #define ISR_TICKS_PER_ACCELERATION_TICK (ISR_TICKS_PER_SECOND/ACCELERATION_TICKS_PER_SECOND)
// The Ranade algorithm can use either floating point or long integers for its counters, but for // The Ranade algorithm can use either floating point or long integers for its counters, but for
// integers the counter values must be scaled since these values can be very small (10^-6). This // integers the counter values must be scaled since these values can be very small (10^-6). This

View File

@ -32,7 +32,7 @@
#include "protocol.h" #include "protocol.h"
#define SOME_LARGE_VALUE 1.0E+38 // Used by rapids and acceleration maximization calculations. Just needs #define SOME_LARGE_VALUE 1.0E+38 // Used by rapids and acceleration maximization calculations. Just needs
// to be larger than any feasible mm/min or mm/sec^2 value. // to be larger than any feasible (mm/min)^2 or mm/sec^2 value.
static block_t block_buffer[BLOCK_BUFFER_SIZE]; // A ring buffer for motion instructions static block_t block_buffer[BLOCK_BUFFER_SIZE]; // A ring buffer for motion instructions
static volatile uint8_t block_buffer_head; // Index of the next block to be pushed static volatile uint8_t block_buffer_head; // Index of the next block to be pushed
@ -52,12 +52,6 @@ typedef struct {
static planner_t pl; static planner_t pl;
void plan_init()
{
plan_reset_buffer();
memset(&pl, 0, sizeof(pl)); // Clear planner struct
}
// Returns the index of the next block in the ring buffer // Returns the index of the next block in the ring buffer
// NOTE: Removed modulo (%) operator, which uses an expensive divide and multiplication. // NOTE: Removed modulo (%) operator, which uses an expensive divide and multiplication.
static uint8_t next_block_index(uint8_t block_index) static uint8_t next_block_index(uint8_t block_index)
@ -342,11 +336,12 @@ static void planner_recalculate()
// } // }
} }
void plan_reset_buffer() void plan_init()
{ {
block_buffer_tail = block_buffer_head; block_buffer_tail = block_buffer_head;
next_buffer_head = next_block_index(block_buffer_head); next_buffer_head = next_block_index(block_buffer_head);
// block_buffer_planned = block_buffer_head; // block_buffer_planned = block_buffer_head;
memset(&pl, 0, sizeof(pl)); // Clear planner struct
} }
inline void plan_discard_current_block() inline void plan_discard_current_block()

View File

@ -73,9 +73,6 @@ void plan_set_current_position(int32_t x, int32_t y, int32_t z);
// Reinitialize plan with a partially completed block // Reinitialize plan with a partially completed block
void plan_cycle_reinitialize(int32_t step_events_remaining); void plan_cycle_reinitialize(int32_t step_events_remaining);
// Reset buffer
void plan_reset_buffer();
// Returns the status of the block ring buffer. True, if buffer is full. // Returns the status of the block ring buffer. True, if buffer is full.
uint8_t plan_check_full_buffer(); uint8_t plan_check_full_buffer();

View File

@ -182,7 +182,7 @@ ISR(TIMER2_COMPA_vect)
// Initialize Ranade variables // Initialize Ranade variables
st.d_counter = current_block->d_next; st.d_counter = current_block->d_next;
st.delta_d = current_block->initial_rate; st.delta_d = current_block->initial_rate;
st.ramp_count = INTERRUPTS_PER_ACCELERATION_TICK/2; st.ramp_count = ISR_TICKS_PER_ACCELERATION_TICK/2;
// Initialize ramp type. // Initialize ramp type.
if (st.step_events_remaining == current_block->decelerate_after) { st.ramp_type = DECEL_RAMP; } if (st.step_events_remaining == current_block->decelerate_after) { st.ramp_type = DECEL_RAMP; }
@ -203,7 +203,7 @@ ISR(TIMER2_COMPA_vect)
// Tick acceleration ramp counter // Tick acceleration ramp counter
st.ramp_count--; st.ramp_count--;
if (st.ramp_count == 0) { if (st.ramp_count == 0) {
st.ramp_count = INTERRUPTS_PER_ACCELERATION_TICK; // Reload ramp counter st.ramp_count = ISR_TICKS_PER_ACCELERATION_TICK; // Reload ramp counter
if (st.ramp_type == ACCEL_RAMP) { // Adjust velocity for acceleration if (st.ramp_type == ACCEL_RAMP) { // Adjust velocity for acceleration
st.delta_d += current_block->rate_delta; st.delta_d += current_block->rate_delta;
if (st.delta_d >= current_block->nominal_rate) { // Reached cruise state. if (st.delta_d >= current_block->nominal_rate) { // Reached cruise state.
@ -232,7 +232,7 @@ ISR(TIMER2_COMPA_vect)
if (sys.state == STATE_HOLD) { if (sys.state == STATE_HOLD) {
if (st.ramp_type != DECEL_RAMP) { if (st.ramp_type != DECEL_RAMP) {
st.ramp_type = DECEL_RAMP; st.ramp_type = DECEL_RAMP;
st.ramp_count = INTERRUPTS_PER_ACCELERATION_TICK/2; st.ramp_count = ISR_TICKS_PER_ACCELERATION_TICK/2;
} }
if (st.delta_d <= current_block->rate_delta) { if (st.delta_d <= current_block->rate_delta) {
st_go_idle(); st_go_idle();
@ -279,9 +279,9 @@ ISR(TIMER2_COMPA_vect)
st.ramp_type = DECEL_RAMP; st.ramp_type = DECEL_RAMP;
if (st.step_events_remaining == current_block->decelerate_after) { if (st.step_events_remaining == current_block->decelerate_after) {
if (st.delta_d == current_block->nominal_rate) { if (st.delta_d == current_block->nominal_rate) {
st.ramp_count = INTERRUPTS_PER_ACCELERATION_TICK/2; // Set ramp counter for trapezoid st.ramp_count = ISR_TICKS_PER_ACCELERATION_TICK/2; // Set ramp counter for trapezoid
} else { } else {
st.ramp_count = INTERRUPTS_PER_ACCELERATION_TICK-st.ramp_count; // Set ramp counter for triangle st.ramp_count = ISR_TICKS_PER_ACCELERATION_TICK-st.ramp_count; // Set ramp counter for triangle
} }
} }
} }
@ -373,7 +373,7 @@ void st_cycle_reinitialize()
// Replan buffer from the feed hold stop location. // Replan buffer from the feed hold stop location.
plan_cycle_reinitialize(st.step_events_remaining); plan_cycle_reinitialize(st.step_events_remaining);
st.ramp_type = ACCEL_RAMP; st.ramp_type = ACCEL_RAMP;
st.ramp_count = INTERRUPTS_PER_ACCELERATION_TICK/2; st.ramp_count = ISR_TICKS_PER_ACCELERATION_TICK/2;
st.delta_d = 0; st.delta_d = 0;
sys.state = STATE_QUEUED; sys.state = STATE_QUEUED;
} else { } else {