/PIC Stuff/Cerebot_32MX7_LED_Cube/ETHERNET.c |
---|
File deleted |
\ No newline at end of file |
/PIC Stuff/Cerebot_32MX7_LED_Cube/ETHERNET.h |
---|
File deleted |
/PIC Stuff/Cerebot_32MX7_LED_Cube/TRON.c |
---|
34,7 → 34,6 |
void Tron_Main(void) { |
// Main function, loops and delays while updating the frame every x milliseconds |
Tron_Update_Direction(0x04,0x04); |
Controller_Set_Leds(0x01,0x01); |
Delay_MS(2000); |
while (1) { |
Tron_Update_Frame(); |
/PIC Stuff/Cerebot_32MX7_LED_Cube/nbproject/Makefile-genesis.properties |
---|
1,8 → 1,8 |
# |
#Sat Jan 25 17:19:01 EST 2014 |
default.com-microchip-mplab-nbide-toolchainXC32-XC32LanguageToolchain.md5=83f4565fa27ad9b8015f63d69ef74f66 |
default.languagetoolchain.dir=C\:\\Program Files (x86)\\Microchip\\xc32\\v1.31\\bin |
com-microchip-mplab-nbide-embedded-makeproject-MakeProject.md5=1f98a0eed69cb2a45c12981fa9470927 |
default.languagetoolchain.version=1.31 |
#Thu Dec 12 23:31:57 EST 2013 |
default.com-microchip-mplab-nbide-toolchainXC32-XC32LanguageToolchain.md5=a7430524a414be59f5ce2a8f8797db6d |
default.languagetoolchain.dir=C\:\\Program Files (x86)\\Microchip\\xc32\\v1.21\\bin |
com-microchip-mplab-nbide-embedded-makeproject-MakeProject.md5=0d2b1469ad71adb787c711a416386331 |
default.languagetoolchain.version=1.21 |
host.platform=windows |
conf.ids=default |
/PIC Stuff/Cerebot_32MX7_LED_Cube/nbproject/configurations.xml |
---|
19,7 → 19,6 |
<itemPath>CONTROLLERS.h</itemPath> |
<itemPath>SNAKE.h</itemPath> |
<itemPath>TRON.h</itemPath> |
<itemPath>ETHERNET.h</itemPath> |
</logicalFolder> |
<logicalFolder name="LinkerScript" |
displayName="Linker Files" |
42,7 → 41,6 |
<itemPath>CONTROLLERS.c</itemPath> |
<itemPath>SNAKE.c</itemPath> |
<itemPath>TRON.c</itemPath> |
<itemPath>ETHERNET.c</itemPath> |
</logicalFolder> |
<logicalFolder name="ExternalFiles" |
displayName="Important Files" |
61,7 → 59,7 |
<targetPluginBoard></targetPluginBoard> |
<platformTool>PK3OBPlatformTool</platformTool> |
<languageToolchain>XC32</languageToolchain> |
<languageToolchainVersion>1.31</languageToolchainVersion> |
<languageToolchainVersion>1.21</languageToolchainVersion> |
<platform>3</platform> |
</toolsSet> |
<compileType> |
182,7 → 180,6 |
<property key="ToolFirmwareFilePath" |
value="Press to browse for a specific firmware version"/> |
<property key="ToolFirmwareOption.UseLatestFirmware" value="true"/> |
<property key="firmware.download.all" value="false"/> |
<property key="memories.bootflash" value="false"/> |
<property key="memories.configurationmemory" value="false"/> |
<property key="memories.eeprom" value="false"/> |
/PIC Stuff/Cerebot_32MX7_LED_Cube/nbproject/Makefile-default.mk |
---|
45,17 → 45,17 |
DISTDIR=dist/${CND_CONF}/${IMAGE_TYPE} |
# Source Files Quoted if spaced |
SOURCEFILES_QUOTED_IF_SPACED=main.c SPI1.c TIMER5.c CUBE.c PWM2.c BTN.c TIMER4.c UART1.c SPI4.c ANIMATIONS.c I2C1.c CONTROLLERS.c SNAKE.c TRON.c ETHERNET.c |
SOURCEFILES_QUOTED_IF_SPACED=main.c SPI1.c TIMER5.c CUBE.c PWM2.c BTN.c TIMER4.c UART1.c SPI4.c ANIMATIONS.c I2C1.c CONTROLLERS.c SNAKE.c TRON.c |
# Object Files Quoted if spaced |
OBJECTFILES_QUOTED_IF_SPACED=${OBJECTDIR}/main.o ${OBJECTDIR}/SPI1.o ${OBJECTDIR}/TIMER5.o ${OBJECTDIR}/CUBE.o ${OBJECTDIR}/PWM2.o ${OBJECTDIR}/BTN.o ${OBJECTDIR}/TIMER4.o ${OBJECTDIR}/UART1.o ${OBJECTDIR}/SPI4.o ${OBJECTDIR}/ANIMATIONS.o ${OBJECTDIR}/I2C1.o ${OBJECTDIR}/CONTROLLERS.o ${OBJECTDIR}/SNAKE.o ${OBJECTDIR}/TRON.o ${OBJECTDIR}/ETHERNET.o |
POSSIBLE_DEPFILES=${OBJECTDIR}/main.o.d ${OBJECTDIR}/SPI1.o.d ${OBJECTDIR}/TIMER5.o.d ${OBJECTDIR}/CUBE.o.d ${OBJECTDIR}/PWM2.o.d ${OBJECTDIR}/BTN.o.d ${OBJECTDIR}/TIMER4.o.d ${OBJECTDIR}/UART1.o.d ${OBJECTDIR}/SPI4.o.d ${OBJECTDIR}/ANIMATIONS.o.d ${OBJECTDIR}/I2C1.o.d ${OBJECTDIR}/CONTROLLERS.o.d ${OBJECTDIR}/SNAKE.o.d ${OBJECTDIR}/TRON.o.d ${OBJECTDIR}/ETHERNET.o.d |
OBJECTFILES_QUOTED_IF_SPACED=${OBJECTDIR}/main.o ${OBJECTDIR}/SPI1.o ${OBJECTDIR}/TIMER5.o ${OBJECTDIR}/CUBE.o ${OBJECTDIR}/PWM2.o ${OBJECTDIR}/BTN.o ${OBJECTDIR}/TIMER4.o ${OBJECTDIR}/UART1.o ${OBJECTDIR}/SPI4.o ${OBJECTDIR}/ANIMATIONS.o ${OBJECTDIR}/I2C1.o ${OBJECTDIR}/CONTROLLERS.o ${OBJECTDIR}/SNAKE.o ${OBJECTDIR}/TRON.o |
POSSIBLE_DEPFILES=${OBJECTDIR}/main.o.d ${OBJECTDIR}/SPI1.o.d ${OBJECTDIR}/TIMER5.o.d ${OBJECTDIR}/CUBE.o.d ${OBJECTDIR}/PWM2.o.d ${OBJECTDIR}/BTN.o.d ${OBJECTDIR}/TIMER4.o.d ${OBJECTDIR}/UART1.o.d ${OBJECTDIR}/SPI4.o.d ${OBJECTDIR}/ANIMATIONS.o.d ${OBJECTDIR}/I2C1.o.d ${OBJECTDIR}/CONTROLLERS.o.d ${OBJECTDIR}/SNAKE.o.d ${OBJECTDIR}/TRON.o.d |
# Object Files |
OBJECTFILES=${OBJECTDIR}/main.o ${OBJECTDIR}/SPI1.o ${OBJECTDIR}/TIMER5.o ${OBJECTDIR}/CUBE.o ${OBJECTDIR}/PWM2.o ${OBJECTDIR}/BTN.o ${OBJECTDIR}/TIMER4.o ${OBJECTDIR}/UART1.o ${OBJECTDIR}/SPI4.o ${OBJECTDIR}/ANIMATIONS.o ${OBJECTDIR}/I2C1.o ${OBJECTDIR}/CONTROLLERS.o ${OBJECTDIR}/SNAKE.o ${OBJECTDIR}/TRON.o ${OBJECTDIR}/ETHERNET.o |
OBJECTFILES=${OBJECTDIR}/main.o ${OBJECTDIR}/SPI1.o ${OBJECTDIR}/TIMER5.o ${OBJECTDIR}/CUBE.o ${OBJECTDIR}/PWM2.o ${OBJECTDIR}/BTN.o ${OBJECTDIR}/TIMER4.o ${OBJECTDIR}/UART1.o ${OBJECTDIR}/SPI4.o ${OBJECTDIR}/ANIMATIONS.o ${OBJECTDIR}/I2C1.o ${OBJECTDIR}/CONTROLLERS.o ${OBJECTDIR}/SNAKE.o ${OBJECTDIR}/TRON.o |
# Source Files |
SOURCEFILES=main.c SPI1.c TIMER5.c CUBE.c PWM2.c BTN.c TIMER4.c UART1.c SPI4.c ANIMATIONS.c I2C1.c CONTROLLERS.c SNAKE.c TRON.c ETHERNET.c |
SOURCEFILES=main.c SPI1.c TIMER5.c CUBE.c PWM2.c BTN.c TIMER4.c UART1.c SPI4.c ANIMATIONS.c I2C1.c CONTROLLERS.c SNAKE.c TRON.c |
CFLAGS= |
175,12 → 175,6 |
@${RM} ${OBJECTDIR}/TRON.o |
@${FIXDEPS} "${OBJECTDIR}/TRON.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ -c ${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -fframe-base-loclist -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -O1 -funroll-loops -MMD -MF "${OBJECTDIR}/TRON.o.d" -o ${OBJECTDIR}/TRON.o TRON.c |
${OBJECTDIR}/ETHERNET.o: ETHERNET.c nbproject/Makefile-${CND_CONF}.mk |
@${MKDIR} ${OBJECTDIR} |
@${RM} ${OBJECTDIR}/ETHERNET.o.d |
@${RM} ${OBJECTDIR}/ETHERNET.o |
@${FIXDEPS} "${OBJECTDIR}/ETHERNET.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ -c ${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -fframe-base-loclist -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -O1 -funroll-loops -MMD -MF "${OBJECTDIR}/ETHERNET.o.d" -o ${OBJECTDIR}/ETHERNET.o ETHERNET.c |
else |
${OBJECTDIR}/main.o: main.c nbproject/Makefile-${CND_CONF}.mk |
@${MKDIR} ${OBJECTDIR} |
266,12 → 260,6 |
@${RM} ${OBJECTDIR}/TRON.o |
@${FIXDEPS} "${OBJECTDIR}/TRON.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ -c ${MP_CC} $(MP_EXTRA_CC_PRE) -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -O1 -funroll-loops -MMD -MF "${OBJECTDIR}/TRON.o.d" -o ${OBJECTDIR}/TRON.o TRON.c |
${OBJECTDIR}/ETHERNET.o: ETHERNET.c nbproject/Makefile-${CND_CONF}.mk |
@${MKDIR} ${OBJECTDIR} |
@${RM} ${OBJECTDIR}/ETHERNET.o.d |
@${RM} ${OBJECTDIR}/ETHERNET.o |
@${FIXDEPS} "${OBJECTDIR}/ETHERNET.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ -c ${MP_CC} $(MP_EXTRA_CC_PRE) -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -O1 -funroll-loops -MMD -MF "${OBJECTDIR}/ETHERNET.o.d" -o ${OBJECTDIR}/ETHERNET.o ETHERNET.c |
endif |
# ------------------------------------------------------------------------------------ |
285,7 → 273,7 |
ifeq ($(TYPE_IMAGE), DEBUG_RUN) |
dist/${CND_CONF}/${IMAGE_TYPE}/Cerebot_32MX7_LED_Cube.${IMAGE_TYPE}.${OUTPUT_SUFFIX}: ${OBJECTFILES} nbproject/Makefile-${CND_CONF}.mk |
@${MKDIR} dist/${CND_CONF}/${IMAGE_TYPE} |
${MP_CC} $(MP_EXTRA_LD_PRE) -mdebugger -D__MPLAB_DEBUGGER_PK3=1 -mprocessor=$(MP_PROCESSOR_OPTION) -o dist/${CND_CONF}/${IMAGE_TYPE}/Cerebot_32MX7_LED_Cube.${IMAGE_TYPE}.${OUTPUT_SUFFIX} ${OBJECTFILES_QUOTED_IF_SPACED} -mreserve=data@0x0:0x1FC -mreserve=boot@0x1FC02000:0x1FC02FEF -mreserve=boot@0x1FC02000:0x1FC024FF -Wl,--defsym=__MPLAB_BUILD=1$(MP_EXTRA_LD_POST)$(MP_LINKER_FILE_OPTION),--defsym=__MPLAB_DEBUG=1,--defsym=__DEBUG=1,--defsym=__MPLAB_DEBUGGER_PK3=1,--report-mem |
${MP_CC} $(MP_EXTRA_LD_PRE) -mdebugger -D__MPLAB_DEBUGGER_PK3=1 -mprocessor=$(MP_PROCESSOR_OPTION) -o dist/${CND_CONF}/${IMAGE_TYPE}/Cerebot_32MX7_LED_Cube.${IMAGE_TYPE}.${OUTPUT_SUFFIX} ${OBJECTFILES_QUOTED_IF_SPACED} -Wl,--defsym=__MPLAB_BUILD=1$(MP_EXTRA_LD_POST)$(MP_LINKER_FILE_OPTION),--defsym=__ICD2RAM=1,--defsym=__MPLAB_DEBUG=1,--defsym=__DEBUG=1,--defsym=__MPLAB_DEBUGGER_PK3=1,--report-mem |
else |
dist/${CND_CONF}/${IMAGE_TYPE}/Cerebot_32MX7_LED_Cube.${IMAGE_TYPE}.${OUTPUT_SUFFIX}: ${OBJECTFILES} nbproject/Makefile-${CND_CONF}.mk |
/PIC Stuff/Cerebot_32MX7_LED_Cube/nbproject/private/configurations.xml |
---|
4,8 → 4,8 |
<defaultConf>0</defaultConf> |
<confs> |
<conf name="default" type="2"> |
<platformToolSN>:=MPLABCommUSB:=04D8:=8108:=0002:=Digilent:=Cerebot 32MX7:=D370400:=x:=en</platformToolSN> |
<languageToolchainDir>C:\Program Files (x86)\Microchip\xc32\v1.31\bin</languageToolchainDir> |
<platformToolSN>:=MPLABCommUSB:=04D8:=8108:=0002:=Digilent:=CerebotMX7CK:=D459520:=x:=en</platformToolSN> |
<languageToolchainDir>C:\Program Files (x86)\Microchip\xc32\v1.21\bin</languageToolchainDir> |
<mdbdebugger version="1"> |
<placeholder1>place holder 1</placeholder1> |
<placeholder2>place holder 2</placeholder2> |
/PIC Stuff/Cerebot_32MX7_LED_Cube/nbproject/Makefile-local-default.mk |
---|
19,19 → 19,19 |
# Adding MPLAB X bin directory to path. |
PATH:=C:/Program Files (x86)/Microchip/MPLABX/mplab_ide/mplab_ide/modules/../../bin/:$(PATH) |
# Path to java used to run MPLAB X when this makefile was created |
MP_JAVA_PATH="C:\Program Files (x86)\Microchip\MPLABX\sys\java\jre1.7.0_25-windows-x64\java-windows/bin/" |
MP_JAVA_PATH="C:\Program Files (x86)\Microchip\MPLABX\sys\java\jre1.7.0_17/bin/" |
OS_CURRENT="$(shell uname -s)" |
MP_CC="C:\Program Files (x86)\Microchip\xc32\v1.31\bin\xc32-gcc.exe" |
MP_CPPC="C:\Program Files (x86)\Microchip\xc32\v1.31\bin\xc32-g++.exe" |
MP_CC="C:\Program Files (x86)\Microchip\xc32\v1.21\bin\xc32-gcc.exe" |
MP_CPPC="C:\Program Files (x86)\Microchip\xc32\v1.21\bin\xc32-g++.exe" |
# MP_BC is not defined |
MP_AS="C:\Program Files (x86)\Microchip\xc32\v1.31\bin\xc32-as.exe" |
MP_LD="C:\Program Files (x86)\Microchip\xc32\v1.31\bin\xc32-ld.exe" |
MP_AR="C:\Program Files (x86)\Microchip\xc32\v1.31\bin\xc32-ar.exe" |
MP_AS="C:\Program Files (x86)\Microchip\xc32\v1.21\bin\xc32-as.exe" |
MP_LD="C:\Program Files (x86)\Microchip\xc32\v1.21\bin\xc32-ld.exe" |
MP_AR="C:\Program Files (x86)\Microchip\xc32\v1.21\bin\xc32-ar.exe" |
DEP_GEN=${MP_JAVA_PATH}java -jar "C:/Program Files (x86)/Microchip/MPLABX/mplab_ide/mplab_ide/modules/../../bin/extractobjectdependencies.jar" |
MP_CC_DIR="C:\Program Files (x86)\Microchip\xc32\v1.31\bin" |
MP_CPPC_DIR="C:\Program Files (x86)\Microchip\xc32\v1.31\bin" |
MP_CC_DIR="C:\Program Files (x86)\Microchip\xc32\v1.21\bin" |
MP_CPPC_DIR="C:\Program Files (x86)\Microchip\xc32\v1.21\bin" |
# MP_BC_DIR is not defined |
MP_AS_DIR="C:\Program Files (x86)\Microchip\xc32\v1.31\bin" |
MP_LD_DIR="C:\Program Files (x86)\Microchip\xc32\v1.31\bin" |
MP_AR_DIR="C:\Program Files (x86)\Microchip\xc32\v1.31\bin" |
MP_AS_DIR="C:\Program Files (x86)\Microchip\xc32\v1.21\bin" |
MP_LD_DIR="C:\Program Files (x86)\Microchip\xc32\v1.21\bin" |
MP_AR_DIR="C:\Program Files (x86)\Microchip\xc32\v1.21\bin" |
# MP_BC_DIR is not defined |
/PIC Stuff/Cerebot_32MX7_LED_Cube/nbproject/project.xml |
---|
9,7 → 9,6 |
<cpp-extensions/> |
<header-extensions>h</header-extensions> |
<sourceEncoding>ISO-8859-1</sourceEncoding> |
<asminc-extensions/> |
<make-dep-projects/> |
</data> |
</configuration> |
/PIC Stuff/Cerebot_32MX7_LED_Cube/main.c |
---|
40,7 → 40,6 |
#include "SPI1.h" |
#include "SPI4.h" |
#include "I2C1.h" |
#include "ETHERNET.h" |
#include "TIMER4.h" |
#include "TIMER5.h" |
#include "CUBE.h" |
143,10 → 142,6 |
LED3_LAT = 0; |
LED4_LAT = 0; |
// Initialize the Ethernet module |
ETH_DATA eth_data; |
ETH_Init(ð_data, NULL, &Cube_Ethernet_Frame_In); |
// Initialize the SPI1 module |
SPI1_DATA spi_1_data; |
SPI1_Init(&spi_1_data, NULL); |
217,9 → 212,6 |
Tron_Init(&tron_data); |
Tron_Main(); |
break; |
case BOARD_MODE_ETHERNET: |
while(1); |
break; |
case BOARD_MODE_IDLE: |
default: |
Idle_Animation_Sequence(); |
253,7 → 245,7 |
// UART1_Write(start_text, 18); |
// Set the overlay text |
uint8_t text_string[] = "Welcome to the CCM Lab "; |
uint8_t text_string[] = "Welcome to the AMP Lab "; |
Cube_Text_Init(text_string, 27, 0xFF, 0xFF, 0xFF); |
// Loop through some preset animations |
/PIC Stuff/Cerebot_32MX7_LED_Cube/CUBE.h |
---|
122,7 → 122,6 |
void Cube_Data_In(uint8_t c); |
void Cube_Data_In_Process_Frame(void); |
void Cube_Data_Direct_Write_All(uint8_t *buffer); |
void Cube_Ethernet_Frame_In(void); |
#endif /* CUBE_H */ |
/PIC Stuff/Cerebot_32MX7_LED_Cube/README.txt |
---|
13,7 → 13,6 |
TIMER5 - Used by the cube code for the update layer interrupt |
UART1 - Used by the cube code for reading in frame data |
PWM2 - Generates a constant ~20MHz output, uses TIMER2 |
ETHERNET - Used to remote-update the cube |
PERIPHERAL INTERRUPT PRIORITY LEVELS: |
IPL1 = lowest, IPL7 = highest priority |
23,7 → 22,6 |
TIMER5 - Priority 3, Subpriority 1 |
TIMER4 - Priority 1, Subpriority 1 |
UART1 - Priority 2, Subpriority 1 |
ETHERNET - Priority 2, Subpriority 2 |
PIN I/Os: |
/PIC Stuff/Cerebot_32MX7_LED_Cube/defines.h |
---|
8,8 → 8,8 |
#include <stdint.h> |
// Uncomment ONE of the following: |
#define CEREBOT_32MX7 |
// #define CEREBOT_MX7CK |
//#define CEREBOT_32MX7 |
#define CEREBOT_MX7CK |
// Power supply must be 5V for proper operation of the board! |
42,10 → 42,9 |
#define RESET_CFG 0x06 // Config mismatch reset |
// Board 'modes' (idle/games/etc) |
#define BOARD_MODE_IDLE 0x01 |
#define BOARD_MODE_SNAKE 0x02 |
#define BOARD_MODE_TRON 0x03 |
#define BOARD_MODE_ETHERNET 0x04 |
#define BOARD_MODE_IDLE 0x01 |
#define BOARD_MODE_SNAKE 0x02 |
#define BOARD_MODE_TRON 0x03 |
typedef struct { |
uint8_t cube_mode; |
/PIC Stuff/Cerebot_32MX7_LED_Cube/CUBE.c |
---|
3,7 → 3,6 |
#include "SPI1.h" |
#include "glcdfont.h" |
#include "UART1.h" |
#include "ETHERNET.h" |
static CUBE_DATA *cube_data_ptr; |
844,34 → 843,4 |
void Cube_Data_Direct_Write_All(uint8_t *buffer) { |
memcpy(cube_data_ptr->GCS, buffer, CUBE_LAYER_COUNT * GCS_LAYER_SIZE); |
} |
void Cube_Ethernet_Frame_In(void) { |
uint8_t i,j,k; |
uint8_t buffer[2048]; |
uint16_t length; |
uint16_t index = 1; |
// Read and process the ethernet packet |
if (ETH_Read_Packet(buffer, &length)) { |
// Check the first byte to determine what to do |
if (buffer[0] == 0x1) { |
Reset_Board(BOARD_MODE_ETHERNET); |
} |
if (buffer[0] == 0x2) { |
Reset_Board(BOARD_MODE_IDLE); |
} |
if (buffer[0] == 0xA) { |
ClearWDT(); |
// Update the cube |
for (i = 0; i < CUBE_LAYER_COUNT; i++) { |
for (j = 0; j < CUBE_COLUMN_COUNT; j++) { |
for (k = 0; k < CUBE_ROW_COUNT; k++) { |
Cube_Set_Pixel(i, k, j, buffer[index], buffer[index+1], buffer[index+2]); |
index += 3; |
} |
} |
} |
} |
} |
} |