]> rtime.felk.cvut.cz Git - fpga/lx-cpu1/lx-rocon.git/blobdiff - sw/app/rocon/appl_tests.c
RoCoN - initial version which can use PXMCC for positional control.
[fpga/lx-cpu1/lx-rocon.git] / sw / app / rocon / appl_tests.c
index b7686d89337c16f5e12469b38918d48b16887c81..a8d977a9c34b3076c05cc4f3f457c1f92f4c893a 100644 (file)
@@ -21,6 +21,7 @@
 #include "appl_defs.h"
 #include "appl_fpga.h"
 #include "pxmcc_types.h"
+#include "pxmcc_interface.h"
 
 int cmd_do_test_memusage(cmd_io_t *cmd_io, const struct cmd_des *des, char *param[])
 {
@@ -404,17 +405,10 @@ int cmd_do_testtumblefw(cmd_io_t *cmd_io, const struct cmd_des *des, char *param
   char *ps = param[1];
   long pwm_d;
   long pwm_q;
-  uint32_t ptofs;
-  uint32_t irc;
-  uint32_t ptirc;
-  uint32_t ptreci;
-  uint32_t pwmtx_info;
-  uint64_t ull;
   pxmc_state_t *mcs = pxmc_main_list.pxml_arr[0];
-  volatile pxmcc_data_t *mcc_data = (pxmcc_data_t *)fpga_tumbl_dmem;
-  volatile pxmcc_axis_data_t *mcc_axis = mcc_data->axis + 0;
+  volatile pxmcc_data_t *mcc_data = pxmc_rocon_mcc_data();
 
-  mcc_axis->ccflg = 0;
+  pxmcc_axis_enable(mcs, 0);
 
   si_skspace(&ps);
   if (si_long(&ps, &pwm_d, 0) < 0)
@@ -424,47 +418,27 @@ int cmd_do_testtumblefw(cmd_io_t *cmd_io, const struct cmd_des *des, char *param
   if (si_ulong(&ps, &pwm_q, 0) < 0)
         return -CMDERR_BADPAR;
 
-  irc = fpga_irc[0]->count;
-  ptofs = (int16_t)(mcs->pxms_ptofs - irc) + irc;
-
-  ptirc = mcs->pxms_ptirc;
-  ull = (1ULL << 32) * mcs->pxms_ptper;
-  ptreci = (ull + ptirc / 2) / ptirc;
-
-  pwmtx_info = (9 << 0) | (10 << 8) | (11 << 16);
-
-  mcc_axis->mode = 0;
-
-  mcc_axis->inp_info = mcs->pxms_inp_info;
-  mcc_axis->out_info = mcs->pxms_out_info;
-  mcc_axis->pwmtx_info = pwmtx_info;
-
-  mcc_axis->ptirc = ptirc;
-  mcc_axis->ptreci = ptreci;
-  mcc_axis->ptofs = ptofs;
-
-  mcc_axis->ccflg = 0;
-  mcc_axis->pwm_dq = (pwm_d << 16) | (pwm_q & 0xffff);
 
+  pxmcc_axis_setup(mcs, PXMCC_MODE_MODE_BLDC);
   pxmc_clear_flags(mcs,PXMS_ENO_m|PXMS_ENG_m|PXMS_ENR_m|PXMS_BSY_m);
+  pxmcc_axis_pwm_dq_out(mcs, pwm_d, pwm_q);
+  pxmcc_axis_enable(mcs, 1);
 
-  mcc_axis->ccflg = 1;
-
-  if (0) {
+  if (1) {
     mcc_data->axis[1].inp_info = 1;
     mcc_data->axis[1].out_info = 3;
     mcc_data->axis[1].pwmtx_info = (12 << 0) | (13 << 8) | (14 << 16);
-    mcc_data->axis[1].mode = 0;
+    mcc_data->axis[1].mode = PXMCC_MODE_MODE_BLDC;
     mcc_data->axis[1].ccflg = 1;
     mcc_data->axis[2].inp_info = 2;
     mcc_data->axis[2].out_info = 6;
     mcc_data->axis[2].pwmtx_info = (15 << 0) | (16 << 8) | (18 << 16);
-    mcc_data->axis[2].mode = 0;
+    mcc_data->axis[2].mode = PXMCC_MODE_MODE_BLDC;
     mcc_data->axis[2].ccflg = 1;
     mcc_data->axis[3].inp_info = 3;
     mcc_data->axis[3].out_info = 9;
     mcc_data->axis[3].pwmtx_info = (19 << 0) | (20 << 8) | (21 << 16);
-    mcc_data->axis[3].mode = 0;
+    mcc_data->axis[3].mode = PXMCC_MODE_MODE_BLDC;
     mcc_data->axis[3].ccflg = 1;
   }