|
|
- #ifndef _BLMC_H_
- #define _BLMC_H_
-
- #define FLAG_RUN_MASK 0x00F
- #define FLAG_PWM_SPINUP 0x001
- #define FLAG_PWM_NORMAL 0x002
- #define FLAG_COM_SPINUP 0x004
- #define FLAG_COM_NORMAL 0x008
-
- #define FLAG_SOFTERR_MASK 0x0F0
- #define FLAG_CURRENT_LIMIT 0x010
- #define FLAG_I2C_TIMEOUT 0x020
-
- #define FLAG_HARDERR_MASK 0xF00
- #define FLAG_UNDERVOLTAGE 0x100
- #define FLAG_OVERCURRENT 0x200
- #define FLAG_SELFTEST_FAILED 0x400
- #define FLAG_INVALID_EEPROM 0x800
-
- #define FLAG_I2C_ACTIVE 0x1000
-
- struct blmc_ {
- uint16_t flags;
-
- uint8_t pwm; // pwm setpoint
- uint8_t pwm_limit; // increased by current-limit
-
- uint16_t rpm;
- uint16_t rpm_tmp;
- uint16_t rpm_tmp_old;
-
- uint16_t current;
- uint16_t voltage;
- };
-
- void trigger_adc(uint8_t channel);
- void setpwm(uint8_t pwm);
- void spinup(void);
-
- #endif
|