Advertisement
Guest User

Untitled

a guest
Apr 6th, 2020
235
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.16 KB | None | 0 0
  1. #define Ua *((volatile int16_t * const) 0x70000000)
  2. #define Ub *((volatile int16_t * const) 0x70000002)
  3. #define Uc *((volatile int16_t * const) 0x70000004)
  4. #define Ia *((volatile int16_t * const) 0x70000006)
  5. #define Ib *((volatile int16_t * const) 0x70000008)
  6. #define Ic *((volatile int16_t * const) 0x7000000A)
  7. #define d_ref *((volatile int16_t * const) 0x70000100)
  8. #define q_ref *((volatile int16_t * const) 0x70000102)
  9.  
  10.  
  11. void pcie_reader (void)
  12. {
  13.     Log_write1(UIABenchmark_start, (xdc_IArg)"interupt_code");
  14. #define TESTMODE
  15. #ifdef TESTMODE
  16.     phi = global_i*(pi/200);
  17.     if (phi>2*pi) phi-=2*pi;
  18.  
  19.     Ua=(short)3250*sinsp_i(phi);
  20.  
  21.     if (phi >= 2*pi_3) Ub=(short)3250*sinsp_i(phi-2*pi_3);
  22.     else Ub=(short)3250*sinsp_i(phi-2*pi_3+2*pi);
  23.  
  24.     if (phi <= 2*pi_3) Uc=(short)3250*sinsp_i(phi+2*pi_3);
  25.     else Uc=(short)3250*sinsp_i(phi+2*pi_3-2*pi);
  26.     // currents
  27.  
  28.     phi -= 0.451; //power factor 0,9
  29.     if (phi>2*pi) phi-=2*pi;
  30.  
  31.     Ia=(short)1000*sinsp_i(phi);
  32.  
  33.     if (phi >= 2*pi_3) Ib=(short)1000*sinsp_i(phi-2*pi_3);
  34.     else Ib=(short)1000*sinsp_i(phi-2*pi_3+2*pi);
  35.  
  36.     if (phi <= 2*pi_3) Ic=(short)1000*sinsp_i(phi+2*pi_3);
  37.     else Ic=(short)1000*sinsp_i(phi+2*pi_3-2*pi);
  38.  
  39. #endif
  40.  
  41.     Ua_float = (float)(Ua*0.1);
  42.     Ub_float = (float)(Ub*0.1);
  43.     Uc_float = (float)(Uc*0.1);
  44.     Ia_float = (float)(Ia*0.1);
  45.     Ib_float = (float)(Ib*0.1);
  46.     Ic_float = (float)(Ic*0.1);
  47.  
  48.     cache_invalidate ((void *)dstBuf.buf, PCIE_EXAMPLE_DSTBUF_BYTES);
  49.     q_pcc = (one_sqrt3)*(Ia_float*(Ub_float-Uc_float)+Ib_float*(Uc_float-Ua_float)+Ic_float*(Ua_float-Ub_float));
  50.     p_pcc = (Ia_float*Ua_float + Ib_float*Ub_float + Ic_float*Uc_float);
  51.  
  52.     q_pcc_dc_sum=q_pcc - buf_q_pcc[global_i] + q_pcc_dc_sum_old;
  53.     q_pcc_dc_sum_old = q_pcc_dc_sum;
  54.     Qpcc = (float)(q_pcc_dc_sum * 0.0025);
  55.     buf_q_pcc[global_i]=q_pcc;
  56.     q_ref = (short)(-0.02051282051*Qpcc); // to peak current value
  57.  
  58.  
  59.     global_i++;
  60.     if (global_i > 399){
  61.         global_i = 0;
  62.     }
  63.  
  64.     *((volatile uint32_t *) 0x21800104)=0x01; //status
  65.     *((volatile uint32_t *) 0x21800050)=0x04;  //irq_eio
  66.     Log_write1(UIABenchmark_stop, (xdc_IArg)"interupt_code");
  67. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement