You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
46 lines
1.2 KiB
46 lines
1.2 KiB
#include "SIM_I2CDevice.h" |
|
|
|
#include <AP_HAL/AP_HAL_Boards.h> |
|
|
|
#ifndef AP_SIM_TOSHIBALED_ENABLED |
|
#define AP_SIM_TOSHIBALED_ENABLED (CONFIG_HAL_BOARD == HAL_BOARD_SITL) |
|
#endif |
|
|
|
#if AP_SIM_TOSHIBALED_ENABLED |
|
|
|
namespace SITL { |
|
|
|
class ToshibaLEDDevReg : public I2CRegEnum { |
|
public: |
|
static constexpr uint8_t PWM0 = 0x01; |
|
static constexpr uint8_t PWM1 = 0x02; |
|
static constexpr uint8_t PWM2 = 0x03; |
|
static constexpr uint8_t ENABLE = 0x04; |
|
}; |
|
|
|
class ToshibaLED : public I2CDevice, protected I2CRegisters_8Bit |
|
{ |
|
public: |
|
void init() override { |
|
add_register("PWM0", ToshibaLEDDevReg::PWM0, I2CRegisters::RegMode::WRONLY); |
|
add_register("PWM1", ToshibaLEDDevReg::PWM1, I2CRegisters::RegMode::WRONLY); |
|
add_register("PWM2", ToshibaLEDDevReg::PWM2, I2CRegisters::RegMode::WRONLY); |
|
add_register("ENABLE", ToshibaLEDDevReg::ENABLE, I2CRegisters::RegMode::WRONLY); |
|
} |
|
|
|
void update(const class Aircraft &aircraft) override; |
|
|
|
int rdwr(I2C::i2c_rdwr_ioctl_data *&data) override { |
|
return I2CRegisters_8Bit::rdwr(data); |
|
} |
|
|
|
private: |
|
uint8_t last_print_pwm0; |
|
uint8_t last_print_pwm1; |
|
uint8_t last_print_pwm2; |
|
uint8_t last_print_enable; |
|
}; |
|
|
|
} // namespace SITL |
|
|
|
#endif // AP_SIM_TOSHIBALED_ENABLED
|
|
|