| | |
| | | HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, 0xFFFF); |
| | | return ch; |
| | | } |
| | | |
| | | /* |
| | | *+----------------------------+ |
| | | *| ADC noisy & lux sensor API | |
| | | *+----------------------------+ |
| | | */ |
| | | |
| | | #include "adc.h" |
| | | int adc_sample_lux_noisy(uint32_t *lux, uint32_t *noisy) |
| | | { |
| | | uint8_t i; |
| | | uint32_t timeout = 0xffffff; |
| | | |
| | | for(i=0; i<ADCCHN_MAX; i++) |
| | | { |
| | | HAL_ADC_Start(&hadc1); |
| | | |
| | | HAL_ADC_PollForConversion(&hadc1, timeout); |
| | | |
| | | if( ADCCHN_NOISY == i ) |
| | | { |
| | | *noisy = HAL_ADC_GetValue(&hadc1); |
| | | } |
| | | else if( ADCCHN_LUX == i ) |
| | | { |
| | | *lux = HAL_ADC_GetValue(&hadc1); |
| | | } |
| | | |
| | | HAL_Delay(10); |
| | | } |
| | | |
| | | HAL_ADC_Stop(&hadc1); |
| | | |
| | | return 0; |
| | | } |
| | | |
| | | /* |
| | | *+----------------------------+ |
| | | *| Timer Buzzer/delay API | |
| | | *+----------------------------+ |
| | | */ |
| | | #include "tim.h" |
| | | |
| | | /* Max to 60000 us */ |
| | | void udelay(uint16_t us) |
| | | { |
| | | uint16_t differ = 60000-us; |
| | | |
| | | HAL_TIM_Base_Start(&htim6); |
| | | |
| | | __HAL_TIM_SET_COUNTER(&htim6, differ); |
| | | |
| | | while( differ < 60000 ) |
| | | { |
| | | differ=__HAL_TIM_GET_COUNTER(&htim6); |
| | | } |
| | | |
| | | HAL_TIM_Base_Stop(&htim6); |
| | | } |
| | | |
| | | |
| | | void beep_start(uint16_t times, uint16_t interval) |
| | | { |
| | | while( times-- ) |
| | | { |
| | | /* Start buzzer */ |
| | | if (HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_4) != HAL_OK) |
| | | { |
| | | /* Starting Error */ |
| | | Error_Handler(); |
| | | } |
| | | |
| | | HAL_Delay(interval); |
| | | |
| | | /* Stop buzzer */ |
| | | if (HAL_TIM_PWM_Stop(&htim1, TIM_CHANNEL_4) != HAL_OK) |
| | | { |
| | | /* Starting Error */ |
| | | Error_Handler(); |
| | | } |
| | | |
| | | HAL_Delay(interval); |
| | | } |
| | | } |