2 bit Bridge Driver

Committer:
jm
Date:
Sat Feb 19 01:30:54 2011 +0000
Revision:
0:bfa30f27fe9d
jmBridge Module

Who changed what in which revision?

UserRevisionLine numberNew contents of line
jm 0:bfa30f27fe9d 1 /*************************************************************************
jm 0:bfa30f27fe9d 2 * @file jmBridge.h
jm 0:bfa30f27fe9d 3 * @brief Bridge control on mbed DIP5 to 30.
jm 0:bfa30f27fe9d 4 * Up to 4Bridges can be controlled at the same time.
jm 0:bfa30f27fe9d 5 *
jm 0:bfa30f27fe9d 6 * @version 1.0
jm 0:bfa30f27fe9d 7 * @date Feb 18, 2011
jm 0:bfa30f27fe9d 8 */
jm 0:bfa30f27fe9d 9
jm 0:bfa30f27fe9d 10 /*
jm 0:bfa30f27fe9d 11 * Module Command Line Interface
jm 0:bfa30f27fe9d 12 Format: command name (arg info)min..max values [optional argument]
jm 0:bfa30f27fe9d 13
jm 0:bfa30f27fe9d 14 bridge (Bridge ID)0..3 (PinA)0..432 (PinB)0..432 (Direction)0..1 (tOn)0..255 (tOff)0..255 (Cycles)[1..65535]
jm 0:bfa30f27fe9d 15
jm 0:bfa30f27fe9d 16 * Module Events
jm 0:bfa30f27fe9d 17 On terminating cycles, send Message: GPPBR id PinA PinB tOn tOff status
jm 0:bfa30f27fe9d 18
jm 0:bfa30f27fe9d 19 * Module Feedback and Help messages may be enabled/disabled by Command Lines.
jm 0:bfa30f27fe9d 20 feedback (enable/disable)0..1
jm 0:bfa30f27fe9d 21 help (enable/disable)0..1
jm 0:bfa30f27fe9d 22 */
jm 0:bfa30f27fe9d 23
jm 0:bfa30f27fe9d 24 #ifndef Bridgedef
jm 0:bfa30f27fe9d 25 #define Bridgedef 1
jm 0:bfa30f27fe9d 26
jm 0:bfa30f27fe9d 27 #define bridgeQty 4 // max number of Bridge
jm 0:bfa30f27fe9d 28
jm 0:bfa30f27fe9d 29 #include "LPC17xx.h"
jm 0:bfa30f27fe9d 30
jm 0:bfa30f27fe9d 31 // Module Data Structure
jm 0:bfa30f27fe9d 32 extern struct StructBridge{
jm 0:bfa30f27fe9d 33 uint8_t active;
jm 0:bfa30f27fe9d 34 uint8_t direction;
jm 0:bfa30f27fe9d 35 uint8_t tOff;
jm 0:bfa30f27fe9d 36 uint8_t tOn;
jm 0:bfa30f27fe9d 37 uint8_t state;
jm 0:bfa30f27fe9d 38 uint16_t pinA;
jm 0:bfa30f27fe9d 39 uint16_t pinB;
jm 0:bfa30f27fe9d 40 uint16_t eggTimer;
jm 0:bfa30f27fe9d 41 uint16_t cycles;
jm 0:bfa30f27fe9d 42 uint32_t dirBitValue;
jm 0:bfa30f27fe9d 43 LPC_GPIO_TypeDef * dirPort;
jm 0:bfa30f27fe9d 44 uint32_t driveBitValue;
jm 0:bfa30f27fe9d 45 LPC_GPIO_TypeDef * drivePort;
jm 0:bfa30f27fe9d 46 }sBridge[bridgeQty];
jm 0:bfa30f27fe9d 47
jm 0:bfa30f27fe9d 48 #endif
jm 0:bfa30f27fe9d 49
jm 0:bfa30f27fe9d 50 // Module Prototypes
jm 0:bfa30f27fe9d 51 void cli_Bridge(void);
jm 0:bfa30f27fe9d 52 void BridgeInit(void);
jm 0:bfa30f27fe9d 53 void BridgeSM(void);
jm 0:bfa30f27fe9d 54 void cli_BridgeDC(void);
jm 0:bfa30f27fe9d 55 void cli_GPPBD(void);
jm 0:bfa30f27fe9d 56 void rGPPBD(unsigned int id);
jm 0:bfa30f27fe9d 57
jm 0:bfa30f27fe9d 58 //-------------------------- CLIG PLUGS --------------------
jm 0:bfa30f27fe9d 59 // CLIG-INCLUDE
jm 0:bfa30f27fe9d 60 /*
jm 0:bfa30f27fe9d 61 #include "jmBridge.h"
jm 0:bfa30f27fe9d 62 */
jm 0:bfa30f27fe9d 63
jm 0:bfa30f27fe9d 64 // CLIG-CMD
jm 0:bfa30f27fe9d 65 /*
jm 0:bfa30f27fe9d 66 bridge cli_Bridge();
jm 0:bfa30f27fe9d 67 GPPBD cli_GPPBD();
jm 0:bfa30f27fe9d 68 bridgeDC cli_BridgeDC();
jm 0:bfa30f27fe9d 69 */
jm 0:bfa30f27fe9d 70
jm 0:bfa30f27fe9d 71 // CLIG-INIT
jm 0:bfa30f27fe9d 72 /*
jm 0:bfa30f27fe9d 73 BridgeInit();
jm 0:bfa30f27fe9d 74 */
jm 0:bfa30f27fe9d 75
jm 0:bfa30f27fe9d 76 // CLIG-TIMER
jm 0:bfa30f27fe9d 77 /*
jm 0:bfa30f27fe9d 78 // Module jmBridge
jm 0:bfa30f27fe9d 79 for(i=0;i<bridgeQty;i++)if(sBridge[i].eggTimer>0)sBridge[i].eggTimer--;
jm 0:bfa30f27fe9d 80 */
jm 0:bfa30f27fe9d 81
jm 0:bfa30f27fe9d 82 // CLIG-SM
jm 0:bfa30f27fe9d 83 /*
jm 0:bfa30f27fe9d 84 BridgeSM();
jm 0:bfa30f27fe9d 85 */
jm 0:bfa30f27fe9d 86