summaryrefslogtreecommitdiff
path: root/AT91SAM7S256/Source/c_cmd_alternate.c
diff options
context:
space:
mode:
Diffstat (limited to 'AT91SAM7S256/Source/c_cmd_alternate.c')
-rw-r--r--AT91SAM7S256/Source/c_cmd_alternate.c163
1 files changed, 0 insertions, 163 deletions
diff --git a/AT91SAM7S256/Source/c_cmd_alternate.c b/AT91SAM7S256/Source/c_cmd_alternate.c
deleted file mode 100644
index 9366296..0000000
--- a/AT91SAM7S256/Source/c_cmd_alternate.c
+++ /dev/null
@@ -1,163 +0,0 @@
-//
-// File Description:
-// This file contains an alternate implementation of c_cmd for testing purposes.
-// It implements the minimal standard interface for the module, and serves as
-// an example of output module control via C code.
-//
-
-void cCmdInit(void* pHeader)
-{
- pHeaders = pHeader;
-
- IOMapCmd.Awake = TRUE;
-
- dTimerInit();
- IOMapCmd.Tick = dTimerRead();
-
- return;
-}
-
-//Test: Start at speed 100 when enter is pressed; then progressively ramp down every half second until -100.
-void cCmdCtrl(void)
-{
- static UBYTE State = 0;
- static ULONG MyTick = 0;
-
- if (pMapButton->State[BTN1] & PRESSED_EV)
- {
- pMapButton->State[BTN1] &= ~PRESSED_EV;
-
- //Coast both motors
- pMapOutPut->Outputs[0].Mode = MOTORON;
- pMapOutPut->Outputs[1].Mode = MOTORON;
-
- pMapOutPut->Outputs[0].Speed = 0;
- pMapOutPut->Outputs[0].TachoLimit = 0;
- pMapOutPut->Outputs[0].RunState = MOTOR_RUN_STATE_IDLE;
- pMapOutPut->Outputs[0].RegMode = REGULATION_MODE_IDLE;
-
- pMapOutPut->Outputs[1].Speed = 0;
- pMapOutPut->Outputs[1].TachoLimit = 0;
- pMapOutPut->Outputs[1].RunState = MOTOR_RUN_STATE_IDLE;
- pMapOutPut->Outputs[1].RegMode = REGULATION_MODE_IDLE;
-
- pMapOutPut->Outputs[0].Flags = UPDATE_MODE | UPDATE_SPEED;
- pMapOutPut->Outputs[1].Flags = UPDATE_MODE | UPDATE_SPEED;
-
- //Drop out of ongoing state machine
- State = 255;
- }
-
- switch(State)
- {
- case 0:
- {
- //Initialize
- pMapOutPut->Outputs[0].Flags = UPDATE_RESET_COUNT;
- pMapOutPut->Outputs[1].Flags = UPDATE_RESET_COUNT;
- pMapOutPut->Outputs[0].RunState = MOTOR_RUN_STATE_IDLE;
- pMapOutPut->Outputs[1].RunState = MOTOR_RUN_STATE_IDLE;
-
- State++;
- }
- break;
-
- case 1:
- {
- //Kick off further states only if Enter button is pressed
- if ((pMapButton->State[BTN4] & PRESSED_EV))
- {
- //Clear pressed event so UI doesn't re-use it.
- pMapButton->State[BTN4] &= ~PRESSED_EV;
-
- pMapOutPut->Outputs[0].Mode = MOTORON | BRAKE | REGULATED;
- pMapOutPut->Outputs[1].Mode = MOTORON | BRAKE | REGULATED;
-
- pMapOutPut->Outputs[0].Speed = 50;
- pMapOutPut->Outputs[0].TachoLimit = 1152;
- pMapOutPut->Outputs[0].RunState = MOTOR_RUN_STATE_RUNNING;
- pMapOutPut->Outputs[0].SyncTurnParameter = 25;
- //pMapOutPut->Outputs[0].RegMode = REGULATION_MODE_MOTOR_SPEED;
- pMapOutPut->Outputs[0].RegMode = REGULATION_MODE_MOTOR_SYNC;
-
- pMapOutPut->Outputs[1].Speed = 50;
- pMapOutPut->Outputs[1].TachoLimit = 1152;
- pMapOutPut->Outputs[1].RunState = MOTOR_RUN_STATE_RUNNING;
- //pMapOutPut->Outputs[1].SyncTurnParameter = -7;
- //pMapOutPut->Outputs[1].RegMode = REGULATION_MODE_MOTOR_SPEED;
- pMapOutPut->Outputs[1].RegMode = REGULATION_MODE_MOTOR_SYNC;
-
- pMapOutPut->Outputs[0].Flags = UPDATE_MODE | UPDATE_SPEED | UPDATE_TACHO_LIMIT;
- pMapOutPut->Outputs[1].Flags = UPDATE_MODE | UPDATE_SPEED | UPDATE_TACHO_LIMIT;
-
- State++;
- }
- }
- break;
-
- case 2:
- {
- if (pMapOutPut->Outputs[0].RunState == MOTOR_RUN_STATE_IDLE)
- {
- pMapOutPut->Outputs[0].Mode = MOTORON;
- pMapOutPut->Outputs[1].Mode = MOTORON;
-
- pMapOutPut->Outputs[0].Speed = 0;
- pMapOutPut->Outputs[0].TachoLimit = 0;
- pMapOutPut->Outputs[0].RunState = MOTOR_RUN_STATE_IDLE;
- pMapOutPut->Outputs[0].RegMode = REGULATION_MODE_IDLE;
-
- pMapOutPut->Outputs[1].Speed = 0;
- pMapOutPut->Outputs[1].TachoLimit = 0;
- pMapOutPut->Outputs[1].RunState = MOTOR_RUN_STATE_IDLE;
- pMapOutPut->Outputs[1].RegMode = REGULATION_MODE_IDLE;
-
- pMapOutPut->Outputs[0].Flags = UPDATE_MODE | UPDATE_SPEED;
- pMapOutPut->Outputs[1].Flags = UPDATE_MODE | UPDATE_SPEED;
- State++;
- }
- }
- break;
-
- case 3:
- {
- pMapOutPut->Outputs[0].Mode = MOTORON | BRAKE | REGULATED;
- pMapOutPut->Outputs[1].Mode = MOTORON | BRAKE | REGULATED;
-
- pMapOutPut->Outputs[0].Speed = 50;
- pMapOutPut->Outputs[0].TachoLimit = 1152;
- pMapOutPut->Outputs[0].RunState = MOTOR_RUN_STATE_RUNNING;
- //pMapOutPut->Outputs[0].SyncTurnParameter = 5;
- //pMapOutPut->Outputs[0].RegMode = REGULATION_MODE_MOTOR_SPEED;
- pMapOutPut->Outputs[0].RegMode = REGULATION_MODE_MOTOR_SYNC;
-
- pMapOutPut->Outputs[1].Speed = 50;
- pMapOutPut->Outputs[1].TachoLimit = 1152;
- pMapOutPut->Outputs[1].RunState = MOTOR_RUN_STATE_RUNNING;
- //pMapOutPut->Outputs[1].RegMode = REGULATION_MODE_MOTOR_SPEED;
- pMapOutPut->Outputs[1].RegMode = REGULATION_MODE_MOTOR_SYNC;
-
- pMapOutPut->Outputs[0].Flags = UPDATE_MODE | UPDATE_SPEED | UPDATE_TACHO_LIMIT;
- pMapOutPut->Outputs[1].Flags = UPDATE_MODE | UPDATE_SPEED | UPDATE_TACHO_LIMIT;
-
- State = 2;
- }
- break;
-
- default:
- break;
- };
-
- //Busy loop to ensure return on 1ms boundary
- BUSY_WAIT_NEXT_MS;
-
- IOMapCmd.Tick = dTimerRead();
- MyTick++;
-
- return;
-}
-
-void cCmdExit(void)
-{
- return;
-}