فهرست منبع

Show voltages. In 10*mV...

Vladimir N. Shilov 11 ماه پیش
والد
کامیت
b7eb24c5f3
1فایلهای تغییر یافته به همراه7 افزوده شده و 6 حذف شده
  1. 7 6
      src/main.c

+ 7 - 6
src/main.c

@@ -54,9 +54,10 @@ void main(void)
       for (i=0; i<ADC_SMPLS; i++) {
         vbuf += ConversionBuffer[i];  
       }
+      vbuf /= ADC_SMPLS;
       vbuf *= VOLTAGE_MUL;
       vbuf /= VOLT_MUL_MUL;
-      Voltage = vbuf / ADC_SMPLS;
+      Voltage = vbuf;
     }
     showV();
     showC();
@@ -66,7 +67,7 @@ void main(void)
 
 /* Private functions ---------------------------------------------------------*/
 static void showV(void) {
-  uint16_t a = (Voltage + 5) / 10;
+  uint16_t a = Voltage;
   LedDigits[0] = a / 1000;
   uint16_t b = a % 1000;
   LedDigits[1] = b / 100;
@@ -76,10 +77,10 @@ static void showV(void) {
 }
 
 static void showC(void) {
- LedDigits[4] = VOLTAGE_MUL / 1000;
- LedDigits[5] = (VOLTAGE_MUL % 1000) / 100;
- LedDigits[6] = (VOLTAGE_MUL % 100) / 10;
- LedDigits[7] = VOLTAGE_MUL % 10;
+ LedDigits[4] = (uint8_t)(VOLTAGE_MUL>>8 & 0xf );
+ LedDigits[5] = (uint8_t)(VOLTAGE_MUL>>4 & 0xf);
+ LedDigits[6] = (uint8_t)(VOLTAGE_MUL & 0xf);
+ LedDigits[7] = (uint8_t)(VOLTAGE_MUL>>12);
 }
 
 static void boardInit(void) {