Bladeren bron

Fix shunt voltages calculations.

Vladimir N. Shilov 8 jaren geleden
bovenliggende
commit
ba24f1dce5
1 gewijzigde bestanden met toevoegingen van 4 en 4 verwijderingen
  1. 4 4
      src/main.c

+ 4 - 4
src/main.c

@@ -133,15 +133,15 @@ void main(void)
          умножили на опорное напряжение -- 16360000
          поделили на разрядность АЦП -- 1997 мВ
          поделили на множитель ОУ -- 250 мВ
-         и умножили на сопротивление шунта -- 5000 мА
+         и поделили на сопротивление шунта -- 5000 мА
         */
         tbuf >>= 3; // pre div
         tbuf *= 3300; // Vref = Vcc
-        tbuf = (tbuf + 4096) / 8191; // get ADC in voltage in mV
+        tbuf = (tbuf + 4096) / 8191; // get ADC input voltage in mV
+        tbuf *= 1000; // get voltage in uV
         tbuf = (tbuf + 14) / 28; // get voltage from shunt
-
         /* в Current ток в милиамперах */
-        Current = tbuf * 167; // (1/0.006 Om) -- convert shunt voltage to current
+        Current = (tbuf + 3) / 6; // shunt resistance in mOhms
     } // End of if (BufferIndex >= ADC_SMPLS)
 
     RTOS_DispatchTask();