Rev 2 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 2 | Rev 6 | ||
---|---|---|---|
Line 131... | Line 131... | ||
131 | /* Wait for calibration completion */ |
131 | /* Wait for calibration completion */ |
132 | while(HAL_IS_BIT_SET(hadc->Instance->CR, ADC_CR_ADCAL)) |
132 | while(HAL_IS_BIT_SET(hadc->Instance->CR, ADC_CR_ADCAL)) |
133 | { |
133 | { |
134 | if((HAL_GetTick() - tickstart) > ADC_CALIBRATION_TIMEOUT) |
134 | if((HAL_GetTick() - tickstart) > ADC_CALIBRATION_TIMEOUT) |
135 | { |
135 | { |
- | 136 | /* New check to avoid false timeout detection in case of preemption */ |
|
- | 137 | if(HAL_IS_BIT_SET(hadc->Instance->CR, ADC_CR_ADCAL)) |
|
- | 138 | { |
|
136 | /* Update ADC state machine to error */ |
139 | /* Update ADC state machine to error */ |
137 | ADC_STATE_CLR_SET(hadc->State, |
140 | ADC_STATE_CLR_SET(hadc->State, |
138 | HAL_ADC_STATE_BUSY_INTERNAL, |
141 | HAL_ADC_STATE_BUSY_INTERNAL, |
139 | HAL_ADC_STATE_ERROR_INTERNAL); |
142 | HAL_ADC_STATE_ERROR_INTERNAL); |
140 | 143 | ||
141 | /* Process unlocked */ |
144 | /* Process unlocked */ |
142 | __HAL_UNLOCK(hadc); |
145 | __HAL_UNLOCK(hadc); |
143 | 146 | ||
144 | return HAL_ERROR; |
147 | return HAL_ERROR; |
- | 148 | } |
|
145 | } |
149 | } |
146 | } |
150 | } |
147 | 151 | ||
148 | /* Restore ADC DMA transfer request after calibration */ |
152 | /* Restore ADC DMA transfer request after calibration */ |
149 | SET_BIT(hadc->Instance->CFGR1, backup_setting_adc_dma_transfer); |
153 | SET_BIT(hadc->Instance->CFGR1, backup_setting_adc_dma_transfer); |