70 CHOPCONF_register.tbl = 2;
71 CHOPCONF_register.vsense =
false;
72 CHOPCONF_register.vhighfs =
false;
73 CHOPCONF_register.vhighchm =
false;
74 CHOPCONF_register.sync = 4;
75 CHOPCONF_register.mres = 0;
76 CHOPCONF_register.intpol =
true;
77 CHOPCONF_register.dedge =
false;
78 CHOPCONF_register.diss2g =
false;
81 PWMCONF_register.pwm_ofs = 30;
82 PWMCONF_register.pwm_grad = 0;
83 PWMCONF_register.pwm_freq = 0;
84 PWMCONF_register.pwm_autoscale =
true;
85 PWMCONF_register.pwm_autograd =
true;
86 PWMCONF_register.freewheel = 0;
87 PWMCONF_register.pwm_reg = 4;
88 PWMCONF_register.pwm_lim = 12;
103 constexpr uint32_t V_fs = 325;
107 const uint16_t RS_scaled =
Rsense * 0xFFFF;
108 uint32_t numerator = 11585;
109 numerator *= RS_scaled;
114 uint32_t denominator = V_fs * 0xFFFF >> 8;
116 scaler = numerator / denominator;
118 if (scaler > 255) scaler = 0;
119 else if (scaler < 128) CS--;
120 }
while(0 < scaler && scaler < 128);
136 if (!scaler) scaler = 256;
137 uint32_t numerator = scaler * (CS+1);
140 numerator *= 1000000;
141 uint32_t denominator =
Rsense*1000;
144 return numerator / denominator;
149 GCONF(GCONF_register.sr);
154 THIGH(THIGH_register.sr);
156 VDCMIN(VDCMIN_register.sr);
159 DCCTRL(DCCTRL_register.sr);