]> rtime.felk.cvut.cz Git - fpga/rpi-motor-control.git/blobdiff - pmsm-control/test_sw/pmsm_state.h
Loging process modified. Now logging time, position, 3xpwm.
[fpga/rpi-motor-control.git] / pmsm-control / test_sw / pmsm_state.h
index e028201678e7a3c512f52bd338052762227d8318..d64579101c87ec7ff9d199151f9144d358d659fe 100644 (file)
@@ -4,6 +4,15 @@
 #include <stdint.h>
 #include <semaphore.h>
 
+#define OLD_POS_NUM    50
+#define MAX_DUTY       170
+#define MAX_SPEED      (7*OLD_POS_NUM)
+
+#define LOG_ROWS       5
+#define LOG_DEF_COL    1000
+#define MAX_LOGS       1000
+#define LOG_PERIOD     5
+
 struct rpi_in;
 
 struct rpi_state{
@@ -20,12 +29,22 @@ struct rpi_state{
 
        int duty;                       /* duty cycle of pwm */
        int desired_pos;                /* desired position */
-       int old_pos;                    /* one cycle old position */
+       int old_pos[OLD_POS_NUM];       /* old  positions */
        int desired_spd;                /* desired speed */
+       int speed;
 
        char commutate;                 /* zapina prepocet duty na jednotlive pwm */
        char pos_reg_ena;               /* position regulation enable */
        char spd_reg_ena;               /* speed rugulation enable */
+
+       int spd_err_sum;                /* for speed pid regulator */
+
+       int *logs[LOG_ROWS];            /* logs */
+       int log_col_count;              /* number of log columns */
+       int log_col;                    /* current colimn */
+       char doLogs;                    /* schall we make logs? */
 };
 
+void freeLogs();
+
 #endif /*PMSM_STATE*/