PE43711(6433).c 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. /*
  2. * PE43711.c
  3. *
  4. * Created on: 2019. 6. 28.
  5. * Author: parkyj
  6. */
  7. #include "PE43711.h"
  8. #if 1 // PYJ.2019.07.26_BEGIN --
  9. #define ATTEN_3_5G_Initial_Val 0
  10. void PE43711_ALL_atten_ctrl(ALL_PE43711_st ATT);
  11. void PE43711_atten_ctrl(PE43711_st ATT ,uint8_t data);
  12. ALL_PE43711_st ALL_ATT_3_5G;
  13. PE43711_st ATT_3_5G_DL ={
  14. ATT_CLK_3_5G_GPIO_Port,
  15. ATT_CLK_3_5G_Pin,
  16. ATT_DATA_3_5G_DL_GPIO_Port,
  17. ATT_DATA_3_5G_DL_Pin,
  18. ATT_EN_3_5G_GPIO_Port,
  19. ATT_EN_3_5G_Pin,
  20. };
  21. PE43711_st ATT_3_5G_UL ={
  22. ATT_CLK_3_5G_GPIO_Port,
  23. ATT_CLK_3_5G_Pin,
  24. ATT_DATA_3_5G_UL_GPIO_Port,
  25. ATT_DATA_3_5G_UL_Pin,
  26. ATT_EN_3_5G_GPIO_Port,
  27. ATT_EN_3_5G_Pin,
  28. };
  29. PE43711_st ATT_3_5G_COM1={
  30. ATT_CLK_3_5G_GPIO_Port,
  31. ATT_CLK_3_5G_Pin,
  32. ATT_DATA_3_5G_COM1_GPIO_Port,
  33. ATT_DATA_3_5G_COM1_Pin,
  34. ATT_EN_3_5G_GPIO_Port,
  35. ATT_EN_3_5G_Pin,
  36. };
  37. PE43711_st ATT_3_5G_COM2={
  38. ATT_CLK_3_5G_GPIO_Port,
  39. ATT_CLK_3_5G_Pin,
  40. ATT_DATA_3_5G_COM2_GPIO_Port,
  41. ATT_DATA_3_5G_COM2_Pin,
  42. ATT_EN_3_5G_GPIO_Port,
  43. ATT_EN_3_5G_Pin,
  44. };
  45. PE43711_st ATT_3_5G_COM3={
  46. ATT_CLK_3_5G_GPIO_Port,
  47. ATT_CLK_3_5G_Pin,
  48. ATT_DATA_3_5G_COM3_GPIO_Port,
  49. ATT_DATA_3_5G_COM3_Pin,
  50. ATT_EN_3_5G_GPIO_Port,
  51. ATT_EN_3_5G_Pin,
  52. };
  53. void PE43711_PinInit(void){
  54. ALL_ATT_3_5G.ATT0 = ATT_3_5G_DL;
  55. ALL_ATT_3_5G.ATT1 = ATT_3_5G_UL;
  56. ALL_ATT_3_5G.ATT2 = ATT_3_5G_COM1;
  57. ALL_ATT_3_5G.ATT3 = ATT_3_5G_COM2;
  58. ALL_ATT_3_5G.ATT4 = ATT_3_5G_COM3;
  59. ALL_ATT_3_5G.data0 = ATTEN_3_5G_Initial_Val;
  60. ALL_ATT_3_5G.data1 = ATTEN_3_5G_Initial_Val;
  61. ALL_ATT_3_5G.data2 = ATTEN_3_5G_Initial_Val;
  62. ALL_ATT_3_5G.data3 = ATTEN_3_5G_Initial_Val;
  63. ALL_ATT_3_5G.data4 = ATTEN_3_5G_Initial_Val;
  64. PE43711_ALL_atten_ctrl(ALL_ATT_3_5G);
  65. }
  66. #endif // PYJ.2019.07.26_END --
  67. void Bit_Compare(PE43711_st ATT,uint8_t data,uint8_t Shift_Index){
  68. if(data & (0x01 << Shift_Index)){
  69. HAL_GPIO_WritePin(ATT.DATA_PORT,ATT.DATA_PIN,GPIO_PIN_SET);//DATA
  70. }
  71. else{
  72. HAL_GPIO_WritePin(ATT.DATA_PORT,ATT.DATA_PIN,GPIO_PIN_RESET);//DATA
  73. }
  74. }
  75. void PE43711_ALL_atten_ctrl(ALL_PE43711_st ATT){
  76. HAL_GPIO_WritePin(ATT.ATT0.LE_PORT,ATT.ATT0.LE_PIN,GPIO_PIN_RESET);
  77. Pol_Delay_us(10);
  78. // printf("why not? \r\n");
  79. for(uint8_t i = 0; i < 8; i++){
  80. Bit_Compare(ATT.ATT0,ATT.data0,i);
  81. Bit_Compare(ATT.ATT1,ATT.data1,i);
  82. Bit_Compare(ATT.ATT2,ATT.data2,i);
  83. Bit_Compare(ATT.ATT3,ATT.data3,i);
  84. Bit_Compare(ATT.ATT4,ATT.data4,i);
  85. HAL_GPIO_WritePin(ATT.ATT0.CLK_PORT,ATT.ATT0.CLK_PIN,GPIO_PIN_SET);//CLOCK
  86. Pol_Delay_us(10);
  87. HAL_GPIO_WritePin(ATT.ATT0.CLK_PORT,ATT.ATT0.CLK_PIN,GPIO_PIN_RESET);//CLOCK
  88. }
  89. HAL_GPIO_WritePin(GPIOB,GPIO_PIN_15,GPIO_PIN_RESET);//DATA
  90. HAL_GPIO_WritePin(ATT.ATT0.LE_PORT,ATT.ATT0.LE_PIN,GPIO_PIN_SET);//LE
  91. Pol_Delay_us(10);
  92. HAL_GPIO_WritePin(ATT.ATT0.LE_PORT,ATT.ATT0.LE_PIN,GPIO_PIN_RESET);
  93. }
  94. void PE43711_atten_ctrl(PE43711_st ATT ,uint8_t data){
  95. uint8_t i = 0;
  96. uint8_t temp = 0;
  97. data = 4 * data;
  98. temp = (uint8_t)data;
  99. HAL_GPIO_WritePin(ATT.LE_PORT,ATT.LE_PIN,GPIO_PIN_RESET);
  100. Pol_Delay_us(10);
  101. for(i = 0; i < 8; i++){
  102. if((uint8_t)temp & 0x01){
  103. HAL_GPIO_WritePin(ATT.DATA_PORT,ATT.DATA_PIN,GPIO_PIN_SET);//DATA
  104. }
  105. else{
  106. HAL_GPIO_WritePin(ATT.DATA_PORT,ATT.DATA_PIN,GPIO_PIN_RESET);//DATA
  107. }
  108. HAL_GPIO_WritePin(ATT.CLK_PORT,ATT.CLK_PIN,GPIO_PIN_SET);//CLOCK
  109. Pol_Delay_us(10);
  110. HAL_GPIO_WritePin(ATT.CLK_PORT,ATT.CLK_PIN,GPIO_PIN_RESET);//CLOCK
  111. Pol_Delay_us(10);
  112. temp >>= 1;
  113. }
  114. HAL_GPIO_WritePin(ATT.CLK_PORT,ATT.CLK_PIN,GPIO_PIN_RESET);//CLOCK
  115. HAL_GPIO_WritePin(ATT.DATA_PORT,ATT.DATA_PIN,GPIO_PIN_RESET);//DATA
  116. HAL_Delay(5);
  117. HAL_GPIO_WritePin(ATT.LE_PORT,ATT.LE_PIN,GPIO_PIN_SET);//LE
  118. Pol_Delay_us(10);
  119. HAL_GPIO_WritePin(ATT.LE_PORT,ATT.LE_PIN,GPIO_PIN_RESET);
  120. }