nucleo側のプログラム

Dependents:   serial_connected_mcu_nucleo serial_connected_mcu_nucleo

Fork of serial_connected_mcu by tarou yamada

serial_connected_mcu.hpp

Committer:
inst
Date:
2016-07-30
Revision:
11:6f8e34a71c7e
Parent:
6:a0cc9c27cedf
Child:
12:810a484f113f

File content as of revision 11:6f8e34a71c7e:

#ifndef INCUDED_SERIAL_CONNECTED_MCU_HPP
#define INCUDED_SERIAL_CONNECTED_MCU_HPP

#include "rotary_encoder_ab_phase.hpp"
#include "servo.hpp"
#include "serial_connected_mcu_slave.hpp"
#include "mbed.h"

namespace serial_connected_mcu {

class serial_connected_mcu {
public:
    static serial_connected_mcu* instance();
    void update();

private:
    serial_connected_mcu();
    ~serial_connected_mcu();
    
    // 実体を記述しない
    void operator=(const serial_connected_mcu&);
    serial_connected_mcu(const serial_connected_mcu&);
    
    static serial_connected_mcu* _instance;
    
    static const int16_t _init_write_data[SIZE_OF_WRITE_DATA];
    
    static const PinName _servo_pins[];
    static TIM_TypeDef* _encoder_timers[];
    static const size_t _encoder_pulse_per_revol;
    static const PinName _analog_input_pins[];
    
    static const size_t _servo_num;
    static const size_t _encoder_num;
    static const size_t _analog_input_num;
    
    servo** _servos;
    rotary_encoder_ab_phase** _encoders;
    AnalogIn** _analog_inputs;
    
    float* _prev_encoders_values;
    float 
    Timer _timer;
    
    serial_connected_mcu_slave _slave;
};

} /* namespace serial_connected_mcu */

#endif