Subversion Repositories Code-Repo

Compare Revisions

Ignore whitespace Rev 212 → Rev 214

/PIC Stuff/Cerebot_32MX7_LED_Cube/CUBE.c
4,6 → 4,7
#include "CUBE.h"
#include "SPI1.h"
#include "glcdfont.h"
#include "UART1.h"
 
static CUBE_DATA *cube_data_ptr;
 
758,6 → 759,10
}
// Process data
switch (cube_data_ptr->frame_state) {
case IDLE:
// Reflect the character back to the transmitter
UART1_Write(&c, 1);
break;
case READ_LENGTH_MSB: // Save MSB of length
cube_data_ptr->frame_length |= (c << 8);
cube_data_ptr->frame_state = READ_LENGTH_LSB;
775,17 → 780,17
cube_data_ptr->frame_checksum += c;
cube_data_ptr->frame_buffer[cube_data_ptr->frame_index] = c;
cube_data_ptr->frame_index++;
if (cube_data_ptr->frame_index == cube_data_ptr->frame_length)
if (cube_data_ptr->frame_index == cube_data_ptr->frame_length - 1)
cube_data_ptr->frame_state = READ_CHECKSUM;
break;
case READ_CHECKSUM: // Process frame if checksum is valid
if (0xFF - (cube_data_ptr->frame_checksum && 0xFF) == c)
cube_data_ptr->frame_checksum = 0xFF - cube_data_ptr->frame_checksum;
if (cube_data_ptr->frame_checksum == c) {
Cube_Data_In_Process_Frame();
}
cube_data_ptr->frame_state = IDLE;
break;
case IDLE:
default:
// Do nothing
break;
}
}