Ian Krase / PolyServo

Dependents:   Quadrapod

PolyServo.h

Committer:
ikrase
Date:
2015-06-27
Revision:
3:1d16a22386a8
Parent:
2:f982504e6e84
Child:
6:bad5554bb890

File content as of revision 3:1d16a22386a8:

#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

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


};



#endif