Ian Krase / PolyServo

Dependents:   Quadrapod

PolyServo.h

Committer:
ikrase
Date:
2015-07-04
Revision:
8:c09ae4fef420
Parent:
7:f9e1e813fa24
Child:
9:a40eac6bdfae

File content as of revision 8:c09ae4fef420:

#ifndef POLYSERVO_H
#define POLYSERVO_H

#include "mbed.h"
//#include "FPointer.h"
#include <vector>
//#include "SpecifiedTimeout.h"


#define SERVO_DISABLED -1       // This is going to take raw servo microsecond entries. 
#define PPM_PERIOD 20000  // In microseconds
#define NUM_SERVOS 12

void servo_set(int id);



class Polyservo {
public:
    
    std::vector<DigitalOut *> servos;
    //DigitalOut * servos; 
    
    //bool global_enable; 
    int positions[NUM_SERVOS];
    int numservos; 
    void disable();
    void enable(); 
    
    Polyservo(DigitalOut servo_pins[]);
    void set_position(int s, int pos);
    
    
    
    
    
private: 
    
    Ticker period_tick; 
    std::vector<Timeout *> servo_timers;
    //Timeout * servo_times; 
    
    //void servo_set(int id);
    
    void servos_reset(void);
    
    bool global_enable; 

    void servo0_set(void);
    void servo1_set(void);
    void servo2_set(void);
    void servo3_set(void);
    void servo4_set(void);
    void servo5_set(void);
    void servo6_set(void);
    void servo7_set(void);
    void servo8_set(void);
    void servo9_set(void);
    void servo10_set(void);
    void servo11_set(void);
    //void servo12_set(void);    
    
    void (*servo_sets[NUM_SERVOS])(void);

        

        
        
    
    
    
    
    
    


};



#endif