PE43711.c 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  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. extern void Pol_Delay_us(volatile uint32_t microseconds);
  11. void PE43711_ALL_atten_ctrl(ALL_PE43711_st ATT);
  12. void PE43711_atten_ctrl(PE43711_st ATT ,uint8_t data);
  13. ALL_PE43711_st ALL_ATT_3_5G;
  14. PE43711_st ATT_3_5G_LOW1 ={
  15. ATT_CLK_3_5G_GPIO_Port,
  16. ATT_CLK_3_5G_Pin,
  17. ATT_DATA_3_5G_LOW1_GPIO_Port,
  18. ATT_DATA_3_5G_LOW1_Pin,
  19. ATT_EN_3_5G_GPIO_Port,
  20. ATT_EN_3_5G_Pin,
  21. };
  22. PE43711_st ATT_3_5G_HIGH1 ={
  23. ATT_CLK_3_5G_GPIO_Port,
  24. ATT_CLK_3_5G_Pin,
  25. ATT_DATA_3_5G_HIGH1_GPIO_Port,
  26. ATT_DATA_3_5G_HIGH1_Pin,
  27. ATT_EN_3_5G_GPIO_Port,
  28. ATT_EN_3_5G_Pin,
  29. };
  30. PE43711_st ATT_3_5G_COM1={
  31. ATT_CLK_3_5G_GPIO_Port,
  32. ATT_CLK_3_5G_Pin,
  33. ATT_DATA_3_5G_COM1_GPIO_Port,
  34. ATT_DATA_3_5G_COM1_Pin,
  35. ATT_EN_3_5G_GPIO_Port,
  36. ATT_EN_3_5G_Pin,
  37. };
  38. PE43711_st ATT_3_5G_LOW2 ={
  39. ATT_CLK_3_5G_GPIO_Port,
  40. ATT_CLK_3_5G_Pin,
  41. ATT_DATA_3_5G_LOW2_GPIO_Port,
  42. ATT_DATA_3_5G_LOW2_Pin,
  43. ATT_EN_3_5G_GPIO_Port,
  44. ATT_EN_3_5G_Pin,
  45. };
  46. PE43711_st ATT_3_5G_HIGH2 ={
  47. ATT_CLK_3_5G_GPIO_Port,
  48. ATT_CLK_3_5G_Pin,
  49. ATT_DATA_3_5G_HIGH2_GPIO_Port,
  50. ATT_DATA_3_5G_HIGH2_Pin,
  51. ATT_EN_3_5G_GPIO_Port,
  52. ATT_EN_3_5G_Pin,
  53. };
  54. PE43711_st ATT_3_5G_COM2={
  55. ATT_CLK_3_5G_GPIO_Port,
  56. ATT_CLK_3_5G_Pin,
  57. ATT_DATA_3_5G_COM2_GPIO_Port,
  58. ATT_DATA_3_5G_COM2_Pin,
  59. ATT_EN_3_5G_GPIO_Port,
  60. ATT_EN_3_5G_Pin,
  61. };
  62. void PE43711_PinInit(void){
  63. ALL_ATT_3_5G.ATT0 = ATT_3_5G_LOW1;
  64. ALL_ATT_3_5G.ATT1 = ATT_3_5G_HIGH1;
  65. ALL_ATT_3_5G.ATT2 = ATT_3_5G_COM1;
  66. ALL_ATT_3_5G.ATT3 = ATT_3_5G_LOW2;
  67. ALL_ATT_3_5G.ATT4 = ATT_3_5G_HIGH2;
  68. ALL_ATT_3_5G.ATT5 = ATT_3_5G_COM2;
  69. ALL_ATT_3_5G.data0 = ATTEN_3_5G_Initial_Val;
  70. ALL_ATT_3_5G.data1 = ATTEN_3_5G_Initial_Val;
  71. ALL_ATT_3_5G.data2 = ATTEN_3_5G_Initial_Val;
  72. ALL_ATT_3_5G.data3 = ATTEN_3_5G_Initial_Val;
  73. ALL_ATT_3_5G.data4 = ATTEN_3_5G_Initial_Val;
  74. ALL_ATT_3_5G.data5 = ATTEN_3_5G_Initial_Val;
  75. PE43711_ALL_atten_ctrl(ALL_ATT_3_5G);
  76. }
  77. #endif // PYJ.2019.07.26_END --
  78. void Bit_Compare(PE43711_st ATT,uint8_t data,uint8_t Shift_Index){
  79. if(data & (0x01 << Shift_Index)){
  80. HAL_GPIO_WritePin(ATT.DATA_PORT,ATT.DATA_PIN,GPIO_PIN_SET);//DATA
  81. }
  82. else{
  83. HAL_GPIO_WritePin(ATT.DATA_PORT,ATT.DATA_PIN,GPIO_PIN_RESET);//DATA
  84. }
  85. }
  86. void PE43711_ALL_atten_ctrl(ALL_PE43711_st ATT){
  87. HAL_GPIO_WritePin(ATT.ATT0.LE_PORT,ATT.ATT0.LE_PIN,GPIO_PIN_RESET);
  88. Pol_Delay_us(10);
  89. // printf("why not? \r\n");
  90. for(uint8_t i = 0; i < 8; i++){
  91. Bit_Compare(ATT.ATT0,ATT.data0,i);
  92. Bit_Compare(ATT.ATT1,ATT.data1,i);
  93. Bit_Compare(ATT.ATT2,ATT.data2,i);
  94. Bit_Compare(ATT.ATT3,ATT.data3,i);
  95. Bit_Compare(ATT.ATT4,ATT.data4,i);
  96. Bit_Compare(ATT.ATT5,ATT.data5,i);
  97. HAL_GPIO_WritePin(ATT.ATT0.CLK_PORT,ATT.ATT0.CLK_PIN,GPIO_PIN_SET);//CLOCK
  98. Pol_Delay_us(10);
  99. HAL_GPIO_WritePin(ATT.ATT0.CLK_PORT,ATT.ATT0.CLK_PIN,GPIO_PIN_RESET);//CLOCK
  100. }
  101. HAL_GPIO_WritePin(GPIOB,GPIO_PIN_15,GPIO_PIN_RESET);//DATA
  102. HAL_GPIO_WritePin(ATT.ATT0.LE_PORT,ATT.ATT0.LE_PIN,GPIO_PIN_SET);//LE
  103. Pol_Delay_us(10);
  104. HAL_GPIO_WritePin(ATT.ATT0.LE_PORT,ATT.ATT0.LE_PIN,GPIO_PIN_RESET);
  105. }
  106. void PE43711_atten_ctrl(PE43711_st ATT ,uint8_t data){
  107. uint8_t i = 0;
  108. uint8_t temp = 0;
  109. data = 4 * data;
  110. temp = (uint8_t)data;
  111. HAL_GPIO_WritePin(ATT.LE_PORT,ATT.LE_PIN,GPIO_PIN_RESET);
  112. Pol_Delay_us(10);
  113. for(i = 0; i < 8; i++){
  114. if((uint8_t)temp & 0x01){
  115. HAL_GPIO_WritePin(ATT.DATA_PORT,ATT.DATA_PIN,GPIO_PIN_SET);//DATA
  116. }
  117. else{
  118. HAL_GPIO_WritePin(ATT.DATA_PORT,ATT.DATA_PIN,GPIO_PIN_RESET);//DATA
  119. }
  120. HAL_GPIO_WritePin(ATT.CLK_PORT,ATT.CLK_PIN,GPIO_PIN_SET);//CLOCK
  121. Pol_Delay_us(10);
  122. HAL_GPIO_WritePin(ATT.CLK_PORT,ATT.CLK_PIN,GPIO_PIN_RESET);//CLOCK
  123. Pol_Delay_us(10);
  124. temp >>= 1;
  125. }
  126. HAL_GPIO_WritePin(ATT.CLK_PORT,ATT.CLK_PIN,GPIO_PIN_RESET);//CLOCK
  127. HAL_GPIO_WritePin(ATT.DATA_PORT,ATT.DATA_PIN,GPIO_PIN_RESET);//DATA
  128. HAL_Delay(5);
  129. HAL_GPIO_WritePin(ATT.LE_PORT,ATT.LE_PIN,GPIO_PIN_SET);//LE
  130. Pol_Delay_us(10);
  131. HAL_GPIO_WritePin(ATT.LE_PORT,ATT.LE_PIN,GPIO_PIN_RESET);
  132. }