BDA4601.c 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. /*
  2. * BDA4601.c
  3. *
  4. * Created on: 2019. 6. 28.
  5. * Author: parkyj
  6. */
  7. #include "BDA4601.h"
  8. void BDA4601_atten_ctrl(PE43711_st* type ,double data){
  9. uint8_t i = 0;
  10. uint8_t temp = 0;
  11. data = 4 * data;
  12. temp = (uint8_t)data;
  13. HAL_GPIO_WritePin(GPIOB,GPIO_PIN_1,GPIO_PIN_RESET);
  14. HAL_Delay(1);
  15. for(i = 0; i < 8; i++){
  16. if((uint8_t)temp & 0x01){
  17. HAL_GPIO_WritePin(GPIOB,GPIO_PIN_15,GPIO_PIN_SET);//DATA
  18. }
  19. else{
  20. HAL_GPIO_WritePin(GPIOB,GPIO_PIN_15,GPIO_PIN_RESET);//DATA
  21. }
  22. HAL_GPIO_WritePin(GPIOB,GPIO_PIN_2,GPIO_PIN_SET);//CLOCK
  23. HAL_Delay(1);
  24. HAL_GPIO_WritePin(GPIOB,GPIO_PIN_2,GPIO_PIN_RESET);//CLOCK
  25. HAL_Delay(1);
  26. temp >>= 1;
  27. }
  28. HAL_GPIO_WritePin(GPIOB,GPIO_PIN_2,GPIO_PIN_RESET);//CLOCK
  29. HAL_GPIO_WritePin(GPIOB,GPIO_PIN_15,GPIO_PIN_RESET);//DATA
  30. HAL_Delay(5);
  31. HAL_GPIO_WritePin(GPIOB,GPIO_PIN_1,GPIO_PIN_SET);//LE
  32. HAL_Delay(1);
  33. HAL_GPIO_WritePin(GPIOB,GPIO_PIN_1,GPIO_PIN_RESET);
  34. }