Skip to content

Commit

Permalink
Merge pull request #17 from purduesigbots/standalone-mode
Browse files Browse the repository at this point in the history
Add standalone operational mode
  • Loading branch information
edjubuh authored Jun 22, 2017
2 parents 1f46578 + 966ec8e commit 0e4cd59
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 5 deletions.
7 changes: 4 additions & 3 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -27,16 +27,17 @@ OUT:=$(BINDIR)/$(OUTNAME)

# default version just uses the latest tag
VERSION := `git describe --abbrev=0`

# By default, compile program
all: $(BINDIR) $(OUT)

release:
$(eval CCFLAGS += -D FW_VERSION="$(VERSION)")

develop:
$(eval VERSION := `git describe --abbrev=1`)
$(eval CCFLAGS += -D FW_VERSION="$(VERSION)")

# By default, compile program
all: $(BINDIR) $(OUT)

# Remove all intermediate object files (remove the binary directory)
clean:
-rm -f $(OUT)
Expand Down
6 changes: 6 additions & 0 deletions include/API.h
Original file line number Diff line number Diff line change
Expand Up @@ -1586,6 +1586,12 @@ void waitUntil(unsigned long *previousWakeTime, const unsigned long time);
* This function should only be called once in initializeIO()
*/
void watchdogInit();
/**
* Enables the Cortex to run the op control task in a standalone mode- no VEXnet connection required.
*
* This function should only be called once in initializeIO()
*/
void standaloneModeEnable();

// End C++ extern to C
#ifdef __cplusplus
Expand Down
11 changes: 9 additions & 2 deletions src/supervisor.c
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
* supervisor.c - Functions for interfacing with the NXP supervisor processor responsible for
* handling the gory details of VEXnet
*
* Copyright (c) 2011-2016, Purdue University ACM SIGBots.
* Copyright (c) 2011-2017, Purdue University ACM SIGBots.
* All rights reserved.
*
* This Source Code Form is subject to the terms of the Mozilla Public
Expand Down Expand Up @@ -133,6 +133,12 @@ void _svNextByte() {
SPI1->DR = spiBufferTX[idx];
}

// standaloneModeEnable - enable standalone operation
void standaloneModeEnable() {
// set flag in outgoing SPI buffer to enable standlone mode
SV_OUT->flags |= 1;
}

// svInit - Initialize supervisor communications
void svInit() {
uint8_t i;
Expand All @@ -154,6 +160,7 @@ void svInit() {
spiBufferTX[i] = (uint16_t)0x0000;
SV_OUT->key = SV_MAGIC;
SV_OUT->mode = 2;
SV_OUT->flags = 0;
SV_OUT->version = 1;
// Load in empty motor values
svSetAllData((uint8_t)0x7F);
Expand Down Expand Up @@ -186,7 +193,7 @@ void svSynchronize() {
// HELLO message!
kwait(50);
print("\r\nPowered by PROS " FW_VERSION "\r\n" FW_DISCLAIMER
"\r\nPROS (C)2011-2014 Purdue ACM SIGBOTS\r\n");
"\r\nPROS (C)2011-2017 Purdue ACM SIGBOTS\r\n");
print("This program has ABSOLUTELY NO WARRANTY, not even an implied\r\n"
"warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\r\n\r\n");
}
Expand Down

0 comments on commit 0e4cd59

Please sign in to comment.