From 345fff643af7ffd28426f5c34366da949d861093 Mon Sep 17 00:00:00 2001 From: Pavel Pisa Date: Sun, 14 Dec 2014 17:02:01 +0100 Subject: [PATCH] Provide cumulative D and Q current components for filtering. Signed-off-by: Pavel Pisa --- hw/lx-rocon_firmware/firmware.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/hw/lx-rocon_firmware/firmware.c b/hw/lx-rocon_firmware/firmware.c index 8e9cd71..96d9f04 100644 --- a/hw/lx-rocon_firmware/firmware.c +++ b/hw/lx-rocon_firmware/firmware.c @@ -46,6 +46,8 @@ typedef struct pxmcc_axis_data_t { int32_t ptcos; uint32_t ptphs; uint32_t pwm_cycle; + uint32_t cur_d_cum; + uint32_t cur_q_cum; uint32_t act_idle; uint32_t min_idle; @@ -456,6 +458,12 @@ void main(void) cur_q = -cur_alp * pxmcc->ptsin + cur_bet * pxmcc->ptcos; pxmcc->cur_dq = (cur_d & 0xffff0000) | ((cur_q >> 16) & 0xffff); + + pxmcc->cur_d_cum = ((pxmcc->cur_d_cum + cur_d) & ~0xff) | + (last_rx_done_sqn & 0x1f); + pxmcc->cur_q_cum = ((pxmcc->cur_q_cum + cur_q) & ~0xff) | + (last_rx_done_sqn & 0x1f); + } } } -- 2.39.2