/* * BDA4601.c * * Created on: 2019. 6. 28. * Author: parkyj */ #include "BDA4601.h" void BDA4601_atten_ctrl(PE43711_st* type ,double data){ uint8_t i = 0; uint8_t temp = 0; data = 4 * data; temp = (uint8_t)data; HAL_GPIO_WritePin(GPIOB,GPIO_PIN_1,GPIO_PIN_RESET); HAL_Delay(1); for(i = 0; i < 8; i++){ if((uint8_t)temp & 0x01){ HAL_GPIO_WritePin(GPIOB,GPIO_PIN_15,GPIO_PIN_SET);//DATA } else{ HAL_GPIO_WritePin(GPIOB,GPIO_PIN_15,GPIO_PIN_RESET);//DATA } HAL_GPIO_WritePin(GPIOB,GPIO_PIN_2,GPIO_PIN_SET);//CLOCK HAL_Delay(1); HAL_GPIO_WritePin(GPIOB,GPIO_PIN_2,GPIO_PIN_RESET);//CLOCK HAL_Delay(1); temp >>= 1; } HAL_GPIO_WritePin(GPIOB,GPIO_PIN_2,GPIO_PIN_RESET);//CLOCK HAL_GPIO_WritePin(GPIOB,GPIO_PIN_15,GPIO_PIN_RESET);//DATA HAL_Delay(5); HAL_GPIO_WritePin(GPIOB,GPIO_PIN_1,GPIO_PIN_SET);//LE HAL_Delay(1); HAL_GPIO_WritePin(GPIOB,GPIO_PIN_1,GPIO_PIN_RESET); }