Add modbus module (currently not work)
This commit is contained in:
@@ -213,15 +213,29 @@ void TIM2_IRQHandler(void)
|
||||
_state_counter = 0;
|
||||
LED_GPIO_Port->BSRR = LED_Pin;
|
||||
}
|
||||
// задний фронт, убывающий
|
||||
if (sr & TIM_SR_CC2IF) {
|
||||
uint32_t ccr = TIM2->CCR2;
|
||||
if (ccr >= DEVICE_MIN_PULSE_WIDTH && ccr <= DEVICE_MAX_PULSE_WIDTH) {
|
||||
// можно считать что это импульс
|
||||
if (_state_counter > DEVICE_MIN_RECEIVE_PULSES) {
|
||||
LED_GPIO_Port->BSRR = (uint32_t)LED_Pin << 16;
|
||||
opt_state = START;
|
||||
} else {
|
||||
_state_counter++;
|
||||
}
|
||||
}
|
||||
// else {
|
||||
// // какое-то говно, а не импульс
|
||||
// // ну я ничего не делаю
|
||||
// }
|
||||
}
|
||||
|
||||
// передний возрастающий фронт
|
||||
// тут по сути надо обнулить CNT, и вроде все
|
||||
if (sr & TIM_SR_CC1IF) {
|
||||
TIM2->SR = TIM_SR_CC1IF;
|
||||
TIM2->CNT = 0; // обнуляем счетчик таймера
|
||||
if (_state_counter > 20) {
|
||||
LED_GPIO_Port->BSRR = (uint32_t)LED_Pin << 16;
|
||||
opt_state = START;
|
||||
} else {
|
||||
_state_counter++;
|
||||
}
|
||||
}
|
||||
/* USER CODE END TIM2_IRQn 0 */
|
||||
HAL_TIM_IRQHandler(&htim2);
|
||||
|
||||
Reference in New Issue
Block a user