Subversion Repositories Code-Repo

Compare Revisions

Ignore whitespace Rev 260 → Rev 261

/PIC Stuff/Cerebot_32MX7_LED_Cube/main.c
90,14 → 90,14
}
 
// Initialize a persistent operational state machine
static BOARD_STATE op_state __attribute__((persistent));
volatile static uint8_t op_state __attribute__((persistent));
 
uint8_t Get_Board_State(void) {
return op_state.cube_mode;
return op_state;
}
 
void Reset_Board(uint8_t next_state) {
op_state.cube_mode = next_state;
op_state = next_state;
// Executes a software reset
INTDisableInterrupts();
143,10 → 143,6
LED3_LAT = 0;
LED4_LAT = 0;
 
// Initialize the Ethernet module
ETH_DATA eth_data;
ETH_Init(&eth_data, NULL, &Cube_Ethernet_Frame_In);
 
// Initialize the SPI1 module
SPI1_DATA spi_1_data;
SPI1_Init(&spi_1_data, NULL);
159,9 → 155,9
I2C1_DATA i2c_1_data;
I2C1_Init(&i2c_1_data, I2C1_400KHZ, 0x20);
 
// Initialize the UART1 module
UART1_DATA uart_data;
UART1_Init(&uart_data, &Cube_Data_In);
// // Initialize the UART1 module
// UART1_DATA uart_data;
// UART1_Init(&uart_data, &Cube_Data_In);
 
// Initializs the PWM2 output to 20MHz
PWM2_Init();
178,6 → 174,7
// Start the controller polling and overlay rotation interrupt
TIMER4_DATA timer_4_data;
TIMER4_Init(&timer_4_data, &Controller_Update, NULL, 0);
// TIMER4_Init(&timer_4_data, NULL, NULL, 0);
 
// Process button inputs
BTN_DATA btn_data;
186,6 → 183,10
// Initialize controllers
CONTROLLER_DATA ctrl_data;
Controller_Init(&ctrl_data, NULL);
 
// Initialize the Ethernet module
ETH_DATA eth_data;
ETH_Init(&eth_data, NULL, &Cube_Ethernet_Frame_In);
SNAKE_DATA snake_data;
TRON_DATA tron_data;
196,7 → 197,7
if (last_reset == RESET_POR || last_reset == RESET_BOR ||
last_reset == RESET_PIN || last_reset == RESET_WDT ||
last_reset == RESET_CFG) {
op_state.cube_mode = BOARD_MODE_IDLE;
op_state = BOARD_MODE_IDLE;
}
 
PWM2_Start();
206,7 → 207,10
/* -------------------- END OF INITIALIZATION -------------------- */
/* ------------------------ BEGIN DISPLAY ------------------------ */
switch (op_state.cube_mode) {
switch (op_state) {
case BOARD_MODE_IDLE:
Idle_Animation_Sequence();
break;
case BOARD_MODE_SNAKE:;
Controller_Init(&ctrl_data, &Snake_Update_Direction);
Snake_Init(&snake_data);
218,14 → 222,13
Tron_Main();
break;
case BOARD_MODE_ETHERNET:
TIMER4_Stop();
while(1);
break;
case BOARD_MODE_IDLE:
default:
Idle_Animation_Sequence();
break;
}
 
while(1);
 
}
 
void Idle_Animation_Sequence(void) {