|
|
@@ -21,7 +21,7 @@ static u32 sample_task(void *);
|
|
|
static samples_t _vbus;
|
|
|
static samples_t _vref;
|
|
|
#ifdef THROTTLE_CHAN
|
|
|
-static samples_t _throttle;
|
|
|
+static samples_t _throttle[2];
|
|
|
#endif
|
|
|
#ifdef U_VOL_ADC_CHAN
|
|
|
static samples_t _uvw_phase[3];
|
|
|
@@ -54,9 +54,14 @@ void samples_init(void){
|
|
|
sample_vbus();
|
|
|
|
|
|
#ifdef THROTTLE_CHAN
|
|
|
- _throttle.filted_value = (0);
|
|
|
- _throttle.value = (0);
|
|
|
- _throttle.lowpass = (0.01f);
|
|
|
+ _throttle[0].value = (float)adc_get_throttle() * THROTTLE_VOL_CEOF;
|
|
|
+ _throttle[0].filted_value = _throttle[0].value;
|
|
|
+ _throttle[0].lowpass = (0.01f);
|
|
|
+#ifdef THROTTLE2_CHAN
|
|
|
+ _throttle[1].value = (float)adc_get_throttle2() * THROTTLE_VOL_CEOF;
|
|
|
+ _throttle[1].filted_value = _throttle[1].value;
|
|
|
+ _throttle[1].lowpass = (0.01f);
|
|
|
+#endif
|
|
|
sample_throttle();
|
|
|
#endif
|
|
|
#ifdef U_VOL_ADC_CHAN
|
|
|
@@ -70,12 +75,12 @@ void samples_init(void){
|
|
|
#endif
|
|
|
#ifdef MOTOR_TEMP_ADC_CHAN
|
|
|
motor_temp.value = motor_temp.filted_value = 0;
|
|
|
- motor_temp.lowpass = 0.01f;
|
|
|
+ motor_temp.lowpass = 0.1f;
|
|
|
sample_motor_temp();
|
|
|
#endif
|
|
|
#ifdef MOS_TEMP_ADC_CHAN
|
|
|
mos_temp.value = mos_temp.filted_value = 0;
|
|
|
- mos_temp.lowpass = 0.01f;
|
|
|
+ mos_temp.lowpass = 0.1f;
|
|
|
sample_mos_temp();
|
|
|
#endif
|
|
|
#ifdef VBUS_I_CHAN
|
|
|
@@ -128,16 +133,42 @@ s16 get_mos_temp(void) {
|
|
|
|
|
|
float get_throttle_float(void) {
|
|
|
#ifdef THROTTLE_CHAN
|
|
|
- return _throttle.filted_value;
|
|
|
+ return _throttle[0].filted_value;
|
|
|
#else
|
|
|
return 0.0f;
|
|
|
#endif
|
|
|
}
|
|
|
|
|
|
+float get_throttle2_float(void) {
|
|
|
+#ifdef THROTTLE2_CHAN
|
|
|
+ return _throttle[1].filted_value;
|
|
|
+#else
|
|
|
+ return get_throttle_float();
|
|
|
+#endif
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
float get_adc_vref(void) {
|
|
|
return _vref.filted_value;
|
|
|
}
|
|
|
|
|
|
+float get_thro_5v_float(void) {
|
|
|
+ u16 adc = adc_get_thro_5v();
|
|
|
+ if (adc == 0) {
|
|
|
+ return 5.0f;
|
|
|
+ }
|
|
|
+ return (float)adc * (ADC_REFERENCE_VOLTAGE*(2.0f)/ADC_FULL_MAX);
|
|
|
+}
|
|
|
+
|
|
|
+float get_thro2_5v_float(void) {
|
|
|
+ u16 adc = adc_get_thro2_5v();
|
|
|
+ if (adc == 0) {
|
|
|
+ return 5.0f;
|
|
|
+ }
|
|
|
+ return (float)adc * (ADC_REFERENCE_VOLTAGE*(2.0f)/ADC_FULL_MAX);
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
static u32 sample_task(void *param) {
|
|
|
sample_vbus();
|
|
|
sample_ibus();
|
|
|
@@ -190,10 +221,17 @@ void sample_ibus_offset(u16 offset) {
|
|
|
void sample_throttle(void){
|
|
|
#ifdef THROTTLE_CHAN
|
|
|
s16 vadc = adc_get_throttle();
|
|
|
- _throttle.value = (float)vadc * THROTTLE_VOL_CEOF;
|
|
|
- LowPass_Filter(_throttle.filted_value, _throttle.value, _throttle.lowpass);
|
|
|
+ _throttle[0].value = (float)vadc * THROTTLE_VOL_CEOF;
|
|
|
+ LowPass_Filter(_throttle[0].filted_value, _throttle[0].value, _throttle[0].lowpass);
|
|
|
#endif
|
|
|
+#ifdef THROTTLE2_CHAN
|
|
|
+ s16 vadc2 = adc_get_throttle2();
|
|
|
+ _throttle[1].value = (float)vadc2 * THROTTLE_VOL_CEOF;
|
|
|
+ LowPass_Filter(_throttle[1].filted_value, _throttle[1].value, _throttle[1].lowpass);
|
|
|
+#endif
|
|
|
+
|
|
|
}
|
|
|
+
|
|
|
void sample_uvw_phase(void) {
|
|
|
#ifdef U_VOL_ADC_CHAN
|
|
|
u16 uvw[3];
|