X-Git-Url: http://git.linex4red.de/pub/USBasp.git/blobdiff_plain/f33b282009cb4385283a537a3b3ec0f64ec19bd6..2b21a1552d1a5b107120f4ac2e9ac357c999cc34:/Projects/MissleLauncher/MissileLauncher.c?ds=inline diff --git a/Projects/MissleLauncher/MissileLauncher.c b/Projects/MissleLauncher/MissileLauncher.c index e70187be5..aefeb7475 100644 --- a/Projects/MissleLauncher/MissileLauncher.c +++ b/Projects/MissleLauncher/MissileLauncher.c @@ -10,6 +10,9 @@ USB Missle Launcher Demo Copyright (C) Dave Fletcher, 2009. fletch at fletchtronics dot net + + Based on research by Scott Weston at + http://code.google.com/p/pymissle */ /* @@ -50,23 +53,49 @@ #include "MissileLauncher.h" -/** Command constants */ -uint8_t CMD_INITA[8] = { 85, 83, 66, 67, 0, 0, 4, 0 }; -uint8_t CMD_INITB[8] = { 85, 83, 66, 67, 0, 64, 2, 0 }; -uint8_t CMD_STOP[8] = { 0, 0, 0, 0, 0, 0, 8, 8 }; -uint8_t CMD_LEFT[8] = { 0, 1, 0, 0, 0, 0, 8, 8 }; -uint8_t CMD_RIGHT[8] = { 0, 0, 1, 0, 0, 0, 8, 8 }; -uint8_t CMD_UP[8] = { 0, 0, 0, 1, 0, 0, 8, 8 }; -uint8_t CMD_DOWN[8] = { 0, 0, 0, 0, 1, 0, 8, 8 }; -uint8_t CMD_LEFTUP[8] = { 0, 1, 0, 1, 0, 0, 8, 8 }; -uint8_t CMD_RIGHTUP[8] = { 0, 0, 1, 1, 0, 0, 8, 8 }; -uint8_t CMD_LEFTDOWN[8] = { 0, 1, 0, 0, 1, 0, 8, 8 }; -uint8_t CMD_RIGHTDOWN[8] = { 0, 0, 1, 0, 1, 0, 8, 8 }; -uint8_t CMD_FIRE[8] = { 0, 0, 0, 0, 0, 1, 8, 8 }; +/** Launcher first init command report data sequence */ +static const uint8_t CMD_INITA[8] = { 85, 83, 66, 67, 0, 0, 4, 0 }; +/** Launcher second init command report data sequence */ +static const uint8_t CMD_INITB[8] = { 85, 83, 66, 67, 0, 64, 2, 0 }; + +/** Launcher command report data sequence to stop all movement */ +static const uint8_t CMD_STOP[8] = { 0, 0, 0, 0, 0, 0, 8, 8 }; + +/** Launcher command report data sequence to move left */ +static const uint8_t CMD_LEFT[8] = { 0, 1, 0, 0, 0, 0, 8, 8 }; + +/** Launcher command report data sequence to move right */ +static const uint8_t CMD_RIGHT[8] = { 0, 0, 1, 0, 0, 0, 8, 8 }; + +/** Launcher command report data sequence to move up */ +static const uint8_t CMD_UP[8] = { 0, 0, 0, 1, 0, 0, 8, 8 }; + +/** Launcher command report data sequence to move down */ +static const uint8_t CMD_DOWN[8] = { 0, 0, 0, 0, 1, 0, 8, 8 }; + +/** Launcher command report data sequence to move left and up */ +static const uint8_t CMD_LEFTUP[8] = { 0, 1, 0, 1, 0, 0, 8, 8 }; + +/** Launcher command report data sequence to move right and up */ +static const uint8_t CMD_RIGHTUP[8] = { 0, 0, 1, 1, 0, 0, 8, 8 }; + +/** Launcher command report data sequence to move left and down */ +static const uint8_t CMD_LEFTDOWN[8] = { 0, 1, 0, 0, 1, 0, 8, 8 }; + +/** Launcher command report data sequence to move right and down */ +static const uint8_t CMD_RIGHTDOWN[8] = { 0, 0, 1, 0, 1, 0, 8, 8 }; + +/** Launcher command report data sequence to fire a missle */ +static const uint8_t CMD_FIRE[8] = { 0, 0, 0, 0, 0, 1, 8, 8 }; + +/** Last command sent to the launcher, to determine what new command (if any) must be sent */ uint8_t* CmdState; + +/** Buffer to hold a command to send to the launcher */ uint8_t CmdBuffer[LAUNCHER_CMD_BUFFER_SIZE]; + /** Main program entry point. This routine configures the hardware required by the application, then * starts the scheduler to run the application tasks. */