Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define Ua *((volatile int16_t * const) 0x70000000)
- #define Ub *((volatile int16_t * const) 0x70000002)
- #define Uc *((volatile int16_t * const) 0x70000004)
- #define Ia *((volatile int16_t * const) 0x70000006)
- #define Ib *((volatile int16_t * const) 0x70000008)
- #define Ic *((volatile int16_t * const) 0x7000000A)
- #define d_ref *((volatile int16_t * const) 0x70000100)
- #define q_ref *((volatile int16_t * const) 0x70000102)
- void pcie_reader (void)
- {
- Log_write1(UIABenchmark_start, (xdc_IArg)"interupt_code");
- #define TESTMODE
- #ifdef TESTMODE
- phi = global_i*(pi/200);
- if (phi>2*pi) phi-=2*pi;
- Ua=(short)3250*sinsp_i(phi);
- if (phi >= 2*pi_3) Ub=(short)3250*sinsp_i(phi-2*pi_3);
- else Ub=(short)3250*sinsp_i(phi-2*pi_3+2*pi);
- if (phi <= 2*pi_3) Uc=(short)3250*sinsp_i(phi+2*pi_3);
- else Uc=(short)3250*sinsp_i(phi+2*pi_3-2*pi);
- // currents
- phi -= 0.451; //power factor 0,9
- if (phi>2*pi) phi-=2*pi;
- Ia=(short)1000*sinsp_i(phi);
- if (phi >= 2*pi_3) Ib=(short)1000*sinsp_i(phi-2*pi_3);
- else Ib=(short)1000*sinsp_i(phi-2*pi_3+2*pi);
- if (phi <= 2*pi_3) Ic=(short)1000*sinsp_i(phi+2*pi_3);
- else Ic=(short)1000*sinsp_i(phi+2*pi_3-2*pi);
- #endif
- Ua_float = (float)(Ua*0.1);
- Ub_float = (float)(Ub*0.1);
- Uc_float = (float)(Uc*0.1);
- Ia_float = (float)(Ia*0.1);
- Ib_float = (float)(Ib*0.1);
- Ic_float = (float)(Ic*0.1);
- cache_invalidate ((void *)dstBuf.buf, PCIE_EXAMPLE_DSTBUF_BYTES);
- q_pcc = (one_sqrt3)*(Ia_float*(Ub_float-Uc_float)+Ib_float*(Uc_float-Ua_float)+Ic_float*(Ua_float-Ub_float));
- p_pcc = (Ia_float*Ua_float + Ib_float*Ub_float + Ic_float*Uc_float);
- q_pcc_dc_sum=q_pcc - buf_q_pcc[global_i] + q_pcc_dc_sum_old;
- q_pcc_dc_sum_old = q_pcc_dc_sum;
- Qpcc = (float)(q_pcc_dc_sum * 0.0025);
- buf_q_pcc[global_i]=q_pcc;
- q_ref = (short)(-0.02051282051*Qpcc); // to peak current value
- global_i++;
- if (global_i > 399){
- global_i = 0;
- }
- *((volatile uint32_t *) 0x21800104)=0x01; //status
- *((volatile uint32_t *) 0x21800050)=0x04; //irq_eio
- Log_write1(UIABenchmark_stop, (xdc_IArg)"interupt_code");
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement