circle buffers now power of two size and indicies are unsigned to help gcc make a few nice optimizations

This commit is contained in:
Simen Svale Skogsrud 2011-02-18 21:46:18 +01:00
parent 124bc363bd
commit 6152d16205
2 changed files with 6 additions and 6 deletions

View File

@ -64,11 +64,11 @@
#include "wiring_serial.h" #include "wiring_serial.h"
// The number of linear motions that can be in the plan at any give time // The number of linear motions that can be in the plan at any give time
#define BLOCK_BUFFER_SIZE 20 #define BLOCK_BUFFER_SIZE 16
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 int 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
static volatile int block_buffer_tail; // Index of the block to process now static volatile uint8_t block_buffer_tail; // Index of the block to process now
// The current position of the tool in absolute steps // The current position of the tool in absolute steps
static int32_t position[3]; static int32_t position[3];

View File

@ -31,12 +31,12 @@
// using a ring buffer (I think), in which rx_buffer_head is the index of the // using a ring buffer (I think), in which rx_buffer_head is the index of the
// location to which to write the next incoming character and rx_buffer_tail // location to which to write the next incoming character and rx_buffer_tail
// is the index of the location from which to read. // is the index of the location from which to read.
#define RX_BUFFER_SIZE 200 #define RX_BUFFER_SIZE 256
unsigned char rx_buffer[RX_BUFFER_SIZE]; unsigned char rx_buffer[RX_BUFFER_SIZE];
int rx_buffer_head = 0; uint8_t rx_buffer_head = 0;
int rx_buffer_tail = 0; uint8_t rx_buffer_tail = 0;
void beginSerial(long baud) void beginSerial(long baud)
{ {