Ian Krase / PolyServo

Dependents:   Quadrapod

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers PolyServo.h Source File

PolyServo.h

00001 #ifndef POLYSERVO_H
00002 #define POLYSERVO_H
00003 
00004 #include "mbed.h"
00005 //#include "FPointer.h"
00006 #include <vector>
00007 //#include "SpecifiedTimeout.h"
00008 
00009 
00010 #define SERVO_DISABLED -1       // This is going to take raw servo microsecond entries. 
00011 #define PPM_PERIOD 20000  // In microseconds
00012 #define NUM_SERVOS 12
00013 
00014 //void servo_set(int id);
00015 
00016 
00017 class Polyservo {
00018 public:
00019     
00020     std::vector<DigitalOut *> servos;
00021     //DigitalOut * servos; 
00022     
00023     //bool global_enable; 
00024     int positions[NUM_SERVOS];
00025     int numservos; 
00026     void disable();
00027     void enable(); 
00028     
00029     Polyservo(DigitalOut servo_pins[]);
00030     void set_position(int s, int pos);
00031     
00032     typedef void (Polyservo::*PolyservoMbr)(void);
00033 
00034     
00035     
00036     
00037     
00038     
00039 private: 
00040     
00041     Ticker period_tick; 
00042     std::vector<Timeout *> servo_timers;
00043     //Timeout * servo_times; 
00044     
00045     //void servo_set(int id);
00046     
00047     void servos_reset(void);
00048     
00049     bool global_enable; 
00050 
00051     void servo0_set(void);
00052     void servo1_set(void);
00053     void servo2_set(void);
00054     void servo3_set(void);
00055     void servo4_set(void);
00056     void servo5_set(void);
00057     void servo6_set(void);
00058     void servo7_set(void);
00059     void servo8_set(void);
00060     void servo9_set(void);
00061     void servo10_set(void);
00062     void servo11_set(void);
00063     //void servo12_set(void);    
00064     
00065     
00066     
00067     //void (Polyservo::*)(void) myPtr;
00068     PolyservoMbr servo_sets[12];
00069     
00070 
00071         
00072 
00073         
00074         
00075     
00076     
00077     
00078     
00079     
00080     
00081 
00082 
00083 };
00084 
00085 
00086 
00087 
00088 #endif