]> rtime.felk.cvut.cz Git - fpga/rpi-motor-control-pxmc.git/commitdiff
RPi PXMC Test: do not use cumulative current computation in currentcal command.
authorPavel Pisa <pisa@cmp.felk.cvut.cz>
Sat, 6 Jun 2015 17:05:24 +0000 (19:05 +0200)
committerPavel Pisa <pisa@cmp.felk.cvut.cz>
Sat, 6 Jun 2015 17:05:24 +0000 (19:05 +0200)
FPGA design does provide direct output for now.

Signed-off-by: Pavel Pisa <pisa@cmp.felk.cvut.cz>
src/app/rpi-pmsm-test1/appl_pxmccmds.c

index 2d692898f94f6656ef34af6e90504dcbe55c845c..18dcbe658a7aec7eb508bc4f188f938db24fe500 100644 (file)
@@ -134,20 +134,25 @@ int spimc_currentcal_accum(struct pxmc_state *mcs)
   int i;
   spimc_state_t *spimc = &spimc_state0;
   spimc_currentcal_state_t *cucalst = &spimc_currentcal_state;
+  int diff_to_last_fl = 0;
 
   if (cucalst->accum_cnt >= cucalst->req_accum)
     return 0;
 
-
-  curadc_sqn_diff = spimc->curadc_sqn - spimc->curadc_sqn_last;
-  curadc_sqn_diff &= 0x1ff;
+  curadc_sqn_diff = spimc->curadc_sqn;
+  if (diff_to_last_fl) {
+    curadc_sqn_diff -= spimc->curadc_sqn_last;
+    curadc_sqn_diff &= 0x1ff;
+  }
 
   cucalst->accum_cnt += curadc_sqn_diff;
 
   for (i = 0; i < SPIMC_CHAN_COUNT; i++) {
-    curadc_val_diff = spimc->curadc_cumsum[i] -
-                      spimc->curadc_cumsum_last[i];
-    curadc_val_diff &= 0xffffff;
+    curadc_val_diff = spimc->curadc_cumsum[i];
+    if (diff_to_last_fl) {
+      curadc_val_diff -= spimc->curadc_cumsum_last[i];
+      curadc_val_diff &= 0xffffff;
+    }
     cucalst->curadc_accum[i] += curadc_val_diff;
   }