условно работающий первый канал, не вычисляется только duration

This commit is contained in:
2025-04-01 14:42:19 +03:00
parent b577be4b82
commit 40fca38a75
5 changed files with 78 additions and 16 deletions

View File

@@ -119,6 +119,7 @@ int main(void)
{
HAL_Delay(1000);
LED_On();
if (isIwdgReset) {
char msg[] = "RESET_IWDG\r\nINIT_COMPLETE\r\n";
CDC_Transmit_FS(msg, 27);
@@ -126,6 +127,7 @@ int main(void)
char msg[] = "INIT_COMPLETE\r\n";
CDC_Transmit_FS(msg, 15);
}
LED_Off();
}
HAL_IWDG_Refresh(&hiwdg);
/* USER CODE END 2 */
@@ -136,13 +138,51 @@ int main(void)
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
LED_GPIO_Port->ODR |= LED_Pin;
HAL_TIM_Base_Start(&htim2);
HAL_TIM_IC_Start(&htim2, TIM_CHANNEL_1);
HAL_TIM_IC_Start(&htim2, TIM_CHANNEL_2);
htim2.Instance->DIER = (TIM_DIER_UIE | TIM_DIER_CC2IE);
while (1) {
for (int i = 0; i < 7; i++) {
HAL_Delay(100);
LED_GPIO_Port->ODR ^= LED_Pin;
}
HAL_Delay(500);
HAL_IWDG_Refresh(&hiwdg);
// for (int i = 0; i < 7; i++) {
// HAL_Delay(100);
// LED_GPIO_Port->ODR ^= LED_Pin;
// }
// HAL_Delay(500);
BufferItem_t bi;
if (ChannelBuffer_pop(&buffer_ch1, &bi)) {
char tmp[64];
LED_On();
CDC_Transmit_FS(tmp, sprintf(tmp, "D1;0x%llX,0x%lX\r\n", bi.timepoint, bi.duration));
LED_Off();
}
if (buffer_ch1.overruns) {
uint32_t overs = buffer_ch1.overruns;
buffer_ch1.overruns = 0;
char tmp[64];
LED_On();
CDC_Transmit_FS(tmp, sprintf(tmp, "D1OVR;0x%lX\r\n", overs));
LED_Off();
}
if (ChannelBuffer_pop(&buffer_ch2, &bi)) {
char tmp[64];
LED_On();
CDC_Transmit_FS(tmp, sprintf(tmp, "D2;0x%llX,0x%lX\r\n", bi.timepoint, bi.duration));
LED_Off();
}
if (buffer_ch2.overruns) {
uint32_t overs = buffer_ch2.overruns;
buffer_ch2.overruns = 0;
char tmp[64];
LED_On();
CDC_Transmit_FS(tmp, sprintf(tmp, "D2OVR;0x%lX\r\n", overs));
LED_Off();
}
}
/* USER CODE END 3 */
}