PE43711.c 4.1 KB

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