hw_dc_motor.h

Go to the documentation of this file.
00001 
00040 #ifndef HW_DC_MOTOR_H
00041 #define HW_DC_MOTOR_H
00042 
00043 #warning TODO:This is an example implementation, you must implement it!
00044 
00045 //DC motor 0
00046 #define DC_MOTOR0_EN_PIN      /* Implement me! */
00047 #define DC_MOTOR0_DIR_PIN     /* Implement me! */
00048 #define DC_MOTOR0_CLEAR       /* Implement me! */
00049 #define DC_MOTOR0_SET         /* Implement me! */
00050 
00051 /* Add other motor here */
00052 
00053 
00054 #define DC_MOTOR_PIN_INIT_MACRO(port, index) \
00055     do { \
00056         /* put here code to init pins */ \
00057     } while (0)
00058 
00059 
00060 #define DC_MOTOR_SET_ENABLE(index)     do { /* Implement me! */ } while (0)
00061 #define DC_MOTOR_SET_DISABLE(index)    do { /* Implement me! */ } while (0)
00062 #define DC_MOTOR_DIR_CW_MACRO(index)   do { /* Implement me! */ } while (0)
00063 #define DC_MOTOR_DIR_CCW_MACRO(index)  do { /* Implement me! */ } while (0)
00064 
00065 
00066 #define DC_MOTOR_ENABLE(index) \
00067    do {  \
00068         switch (index) \
00069         { \
00070         case 0:\
00071             DC_MOTOR_SET_ENABLE(0); \
00072             break; \
00073         /* Add other motor here */ \
00074         } \
00075     } while(0)
00076 
00077 #define DC_MOTOR_DISABLE(index) \
00078    do {  \
00079         switch (index) \
00080         { \
00081         case 0:\
00082             DC_MOTOR_SET_DISABLE(0); \
00083             break; \
00084         /* Add other motor here */ \
00085         } \
00086     } while(0)
00087 
00088 
00089 #define DC_MOTOR_DIR_CW(index) \
00090    do {  \
00091         switch (index) \
00092         { \
00093         case 0:\
00094             DC_MOTOR_DIR_CW_MACRO(0); \
00095             break; \
00096         /* Add other motor here */ \
00097         } \
00098     } while(0)
00099 
00100  #define DC_MOTOR_DIR_CCW(index) \
00101    do {  \
00102         switch (index) \
00103         { \
00104         case 0:\
00105             DC_MOTOR_DIR_CCW_MACRO(0); \
00106             break; \
00107         /* Add other motor here */ \
00108         } \
00109     } while(0)
00110 
00111 
00112 
00113 #define DC_MOTOR_SET_DIR(index, dir) \
00114     do { \
00115         if (dir) \
00116             DC_MOTOR_DIR_CW(index); \
00117         else \
00118             DC_MOTOR_DIR_CCW(index); \
00119     } while (0)
00120 
00121 #define DC_MOTOR_INIT(index) \
00122     do { \
00123         switch (index) \
00124         { \
00125         case 0: \
00126             DC_MOTOR_PIN_INIT_MACRO(A, 0); \
00127             break; \
00128         case 1: \
00129             DC_MOTOR_PIN_INIT_MACRO(A, 1); \
00130             break; \
00131         } \
00132     } while (0)
00133 
00134 #endif /* HW_DC_MOTOR_H */