|
@@ -28,10 +28,12 @@
|
|
#define ADC_BUFFER_ADDRESS ((uint16_t)(&ADC_Buffer))
|
|
#define ADC_BUFFER_ADDRESS ((uint16_t)(&ADC_Buffer))
|
|
|
|
|
|
#define ADC_REF 3300
|
|
#define ADC_REF 3300
|
|
-#define ADC_DIV 4095
|
|
|
|
-#define ADC_ODIV 32760
|
|
|
|
-#define ADC_DIV_H 2048
|
|
|
|
-#define ADC_ODIV_H 16380
|
|
|
|
|
|
+// 4095 * 20 (Ку ОУ) * 0.01 (Rш)
|
|
|
|
+#define ADC_DIV 819
|
|
|
|
+// 32760 * 20 (Ку ОУ) * 0.01 (Rш)
|
|
|
|
+#define ADC_ODIV 6552
|
|
|
|
+#define ADC_DIV_H 410
|
|
|
|
+#define ADC_ODIV_H 3276
|
|
#define ADC_VOLT_K 11
|
|
#define ADC_VOLT_K 11
|
|
#define ADC_CURR_K 20
|
|
#define ADC_CURR_K 20
|
|
#define ADC_CURR_SH 100
|
|
#define ADC_CURR_SH 100
|
|
@@ -237,13 +239,10 @@ uint16_t * ADC_GetValues(void) {
|
|
curr += 4;
|
|
curr += 4;
|
|
curr /= 8;
|
|
curr /= 8;
|
|
curr *= ADC_REF;
|
|
curr *= ADC_REF;
|
|
- curr += (ADC_CURR_K/2); // для округления
|
|
|
|
- curr /= ADC_CURR_K; // делим на Ку усилителя шунта
|
|
|
|
- curr *= ADC_CURR_SH; // делим вольты на омы шунта
|
|
|
|
curr += ADC_ODIV_H; // для округления
|
|
curr += ADC_ODIV_H; // для округления
|
|
- curr /= ADC_ODIV;// и получили ток в мА
|
|
|
|
|
|
+ curr /= ADC_ODIV; // делим на К
|
|
|
|
|
|
- /* так как шунт стоит в разрве земли до выхода из БП
|
|
|
|
|
|
+ /* так как шунт стоит в разрыве земли до выхода из БП
|
|
компенсируем падение напряжения на нём. */
|
|
компенсируем падение напряжения на нём. */
|
|
shunt_volt = curr + (ADC_CURR_K/2);
|
|
shunt_volt = curr + (ADC_CURR_K/2);
|
|
shunt_volt /= ADC_CURR_K; // мВ на входе ОУ
|
|
shunt_volt /= ADC_CURR_K; // мВ на входе ОУ
|