Add modbus module (currently not work)

This commit is contained in:
2022-03-26 20:31:51 +03:00
parent 4746b6269c
commit cf049a6101
11 changed files with 621 additions and 27 deletions

View File

@@ -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);