123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- #pragma once
- #include "config.h"
- #include "buttons.h"
- #include <stdint.h>
- #define FXP_SCALING 4000
- #define DIV_ROUND(a,b) (((a)+(b)/2)/(b))
- static const int32_t MIN_FREQ1 = 7000;
- static const int32_t MAX_FREQ1 = 30000;
- static const int32_t MIN_FREQ3 = 1000000;
- static const int32_t MAX_FREQ3 = 3000000;
- static const int32_t MIN_D1D2 = 0.005 * FXP_SCALING;//0.5%
- static const int32_t MAX_D1D2 = 0.495 * FXP_SCALING;//49.5%
- static const int32_t MAX_PH3 = 3000;
- typedef enum {
- ENABLE_FORCE_NONE = 0,
- ENABLE_FORCE_ENABLE,
- ENABLE_FORCE_DISABLE
- } enable_force_t;
- typedef struct {
- uint32_t f1;//Hz
- uint32_t _period1;//steps
- uint32_t D1;//4000/100%
- uint32_t _duty1;//steps
- uint32_t D2;//4000/100%
- uint32_t _duty2;//steps
- uint32_t Ph2;//4000steps/360*
- uint32_t _phase2;//steps
- uint32_t Ph3;//4000steps/360*
- uint32_t f3;//Hz
- uint32_t _period3;//steps
- uint32_t D3;//*0.1%
- uint32_t N3;//n
- enable_force_t ena;
- } tweaked_params_s;
- typedef struct {
- union {
- uint32_t data[14];
- tweaked_params_s regs;
- };
- } tweaked_params_union_s;
- void init_params(tweaked_params_s * pParams);
- uint32_t validate_generation_values(tweaked_params_s * pParams);
- void update_three_signal_values(tweaked_params_s * pParams, wb_mailbox_button_regs_t * pButtons);
- void inc_f1(tweaked_params_s * pParams, uint32_t val);
- void dec_f1(tweaked_params_s * pParams, uint32_t val);
|