123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197 |
- /*
- * PE43711.c
- *
- * Created on: 2019. 6. 28.
- * Author: parkyj
- */
- #include "PE43711.h"
- #if 1 // PYJ.2019.07.26_BEGIN --
- #define ATTEN_Initial_Val 0
- extern void Pol_Delay_us(volatile uint32_t microseconds);
- void PE43711_ALL_atten_ctrl(ALL_PE43711_st ATT);
- void PE43711_atten_ctrl(PE43711_st ATT ,uint8_t data);
- ALL_PE43711_st ALL_ATT;
- PE43711_st ATT_DL1 ={
- ATT_CLOCK1_GPIO_Port,
- ATT_CLOCK1_Pin,
- ATT_DATA1_GPIO_Port,
- ATT_DATA1_Pin,
- ATT_EN_DL1_GPIO_Port,
- ATT_EN_DL1_Pin,
- };
- PE43711_st ATT_UL1 ={
- ATT_CLOCK1_GPIO_Port,
- ATT_CLOCK1_Pin,
- ATT_DATA1_GPIO_Port,
- ATT_DATA1_Pin,
- ATT_EN_UL1_GPIO_Port,
- ATT_EN_UL1_Pin,
- };
- PE43711_st ATT_DL2 ={
- ATT_CLOCK2_GPIO_Port,
- ATT_CLOCK2_Pin,
- ATT_DATA2_GPIO_Port,
- ATT_DATA2_Pin,
- ATT_EN_DL2_GPIO_Port,
- ATT_EN_DL2_Pin,
- };
- PE43711_st ATT_UL2 ={
- ATT_CLOCK2_GPIO_Port,
- ATT_CLOCK2_Pin,
- ATT_DATA2_GPIO_Port,
- ATT_DATA2_Pin,
- ATT_EN_UL2_GPIO_Port,
- ATT_EN_UL2_Pin,
- }; PE43711_st ATT_DL3 ={
- ATT_CLOCK3_GPIO_Port,
- ATT_CLOCK3_Pin,
- ATT_DATA3_GPIO_Port,
- ATT_DATA3_Pin,
- ATT_EN_DL3_GPIO_Port,
- ATT_EN_DL3_Pin,
- };
- PE43711_st ATT_UL3 ={
- ATT_CLOCK3_GPIO_Port,
- ATT_CLOCK3_Pin,
- ATT_DATA3_GPIO_Port,
- ATT_DATA3_Pin,
- ATT_EN_UL3_GPIO_Port,
- ATT_EN_UL3_Pin,
- }; PE43711_st ATT_DL4 ={
- ATT_CLOCK4_GPIO_Port,
- ATT_CLOCK4_Pin,
- ATT_DATA4_GPIO_Port,
- ATT_DATA4_Pin,
- ATT_EN_DL4_GPIO_Port,
- ATT_EN_DL4_Pin,
- };
- PE43711_st ATT_UL4 ={
- ATT_CLOCK4_GPIO_Port,
- ATT_CLOCK4_Pin,
- ATT_DATA4_GPIO_Port,
- ATT_DATA4_Pin,
- ATT_EN_UL4_GPIO_Port,
- ATT_EN_UL4_Pin,
- };
- void PE43711_PinInit(void){
- ALL_ATT.ATT_DL1 = ATT_DL1;
- ALL_ATT.ATT_UL1 = ATT_UL1;
-
- ALL_ATT.ATT_DL1 = ATT_DL2;
- ALL_ATT.ATT_UL1 = ATT_UL2;
-
- ALL_ATT.ATT_DL1 = ATT_DL3;
- ALL_ATT.ATT_UL1 = ATT_UL3;
-
- ALL_ATT.ATT_DL1 = ATT_DL4;
- ALL_ATT.ATT_UL1 = ATT_UL4;
- ALL_ATT.data_DL1 = ATTEN_Initial_Val;
- ALL_ATT.data_UL1 = ATTEN_Initial_Val;
- ALL_ATT.data_DL2 = ATTEN_Initial_Val;
- ALL_ATT.data_UL2 = ATTEN_Initial_Val;
- ALL_ATT.data_DL3 = ATTEN_Initial_Val;
- ALL_ATT.data_UL3 = ATTEN_Initial_Val;
- ALL_ATT.data_DL4 = ATTEN_Initial_Val;
- ALL_ATT.data_UL4 = ATTEN_Initial_Val;
- // PE43711_ALL_atten_ctrl(ALL_ATT);
- }
- #endif // PYJ.2019.07.26_END --
- void Bit_Compare(PE43711_st ATT,uint8_t data,uint8_t Shift_Index){
- if(data & (0x01 << Shift_Index)){
- HAL_GPIO_WritePin(ATT.DATA_PORT,ATT.DATA_PIN,GPIO_PIN_SET);//DATA
- }
- else{
- HAL_GPIO_WritePin(ATT.DATA_PORT,ATT.DATA_PIN,GPIO_PIN_RESET);//DATA
- }
- }
- uint8_t PE43711_DataToHexConvert(double val){
- double ref = 16;
- uint8_t ret = 0,shift = 0x40;
- // printf("val : %f \r\n",val);
-
- for(int i = 0; i < 8; i++){
- if(val == 0)
- break;
- if(val < 31.25){
- if(val >= ref){
- val -= ref;
- ret |= shift;
- // printf("ret : %x \r\n",ret);
- }
- ref /= 2;
- }
- else{
- ret = 0b01111111;
- break;
- }
- shift >>= 1;
- }
- // printf("\r\nPE43711_DataToHexConvert Result : %x\r\n",ret);
-
- return ret;
- }
- #if 0 // PYJ.2020.04.17_BEGIN --
- void PE43711_ALL_atten_ctrl(ALL_PE43711_st ATT){
- HAL_GPIO_WritePin(ATT.ATT_DL1.LE_PORT,ATT.ATT_DL1.LE_PIN,GPIO_PIN_RESET);
-
- Pol_Delay_us(10);
- // printf("why not? \r\n");
- for(uint8_t i = 0; i < 8; i++){
- Bit_Compare(ATT.ATT0,ATT.data0,i);
- Bit_Compare(ATT.ATT1,ATT.data1,i);
- Bit_Compare(ATT.ATT2,ATT.data2,i);
- Bit_Compare(ATT.ATT3,ATT.data3,i);
- Bit_Compare(ATT.ATT4,ATT.data4,i);
- Bit_Compare(ATT.ATT5,ATT.data5,i);
- HAL_GPIO_WritePin(ATT.ATT0.CLK_PORT,ATT.ATT0.CLK_PIN,GPIO_PIN_SET);//CLOCK
- Pol_Delay_us(10);
- HAL_GPIO_WritePin(ATT.ATT0.CLK_PORT,ATT.ATT0.CLK_PIN,GPIO_PIN_RESET);//CLOCK
- }
- HAL_GPIO_WritePin(GPIOB,GPIO_PIN_15,GPIO_PIN_RESET);//DATA
- HAL_GPIO_WritePin(ATT.ATT0.LE_PORT,ATT.ATT0.LE_PIN,GPIO_PIN_SET);//LE
- Pol_Delay_us(10);
- HAL_GPIO_WritePin(ATT.ATT0.LE_PORT,ATT.ATT0.LE_PIN,GPIO_PIN_RESET);
- }
- #endif // PYJ.2020.04.17_END --
- void PE43711_atten_ctrl(PE43711_st ATT ,uint8_t data){
- uint8_t i = 0;
- uint8_t temp = 0;
- data = 4 * data;
- temp = (uint8_t)data;
-
- HAL_GPIO_WritePin(ATT.LE_PORT,ATT.LE_PIN,GPIO_PIN_RESET);
- Pol_Delay_us(10);
- for(i = 0; i < 8; i++){
- if((uint8_t)temp & 0x01){
- HAL_GPIO_WritePin(ATT.DATA_PORT,ATT.DATA_PIN,GPIO_PIN_SET);//DATA
- }
- else{
- HAL_GPIO_WritePin(ATT.DATA_PORT,ATT.DATA_PIN,GPIO_PIN_RESET);//DATA
- }
- HAL_GPIO_WritePin(ATT.CLK_PORT,ATT.CLK_PIN,GPIO_PIN_SET);//CLOCK
- Pol_Delay_us(10);
- HAL_GPIO_WritePin(ATT.CLK_PORT,ATT.CLK_PIN,GPIO_PIN_RESET);//CLOCK
- Pol_Delay_us(10);
- temp >>= 1;
- }
-
- HAL_GPIO_WritePin(ATT.CLK_PORT,ATT.CLK_PIN,GPIO_PIN_RESET);//CLOCK
- HAL_GPIO_WritePin(ATT.DATA_PORT,ATT.DATA_PIN,GPIO_PIN_RESET);//DATA
- HAL_Delay(5);
- HAL_GPIO_WritePin(ATT.LE_PORT,ATT.LE_PIN,GPIO_PIN_SET);//LE
- Pol_Delay_us(10);
- HAL_GPIO_WritePin(ATT.LE_PORT,ATT.LE_PIN,GPIO_PIN_RESET);
- }
|