Пт май 13, 2022 22:28:00
Пт май 13, 2022 22:34:13
Пт май 13, 2022 22:41:44
Пт май 13, 2022 22:50:50
Пт май 13, 2022 22:56:42
Сб май 14, 2022 01:44:33
void SysTick_Handler(void)
{
/* USER CODE BEGIN SysTick_IRQn 0 */
/* USER CODE END SysTick_IRQn 0 */
HAL_IncTick();
/* USER CODE BEGIN SysTick_IRQn 1 */
/* USER CODE END SysTick_IRQn 1 */
}
void SysTick_Handler(void)
{
if(delay_count>0)
{
delay_count--;
}
}
Сб май 14, 2022 05:54:42
Сб май 14, 2022 13:06:41
Сб май 14, 2022 13:42:53
Сб май 14, 2022 13:54:00
Сб май 14, 2022 14:52:25
Сб май 14, 2022 15:07:52
Сб май 14, 2022 15:25:10
koeltrad писал(а):Зачем мне выполнять HAL_IncTick(); я не знаю что эта функция выполняет, может то что мне не нужно.
VladislavS писал(а):К бабушке не ходи, в HAL должна быть функция задержки, которая была благополучно выпилена (заодно и всё что внутри таймауты считает) и вместо неё свой велосипед пилится.
VladislavS писал(а):Либо вы пользуетесь кодогенератором и подчиняетесь его правилам, либо всё пишете сами как хотите.
Вс май 15, 2022 02:32:45
extern __IO uint32_t uwTick;
__weak void HAL_IncTick(void)
{
uwTick += uwTickFreq;
}
void SysTick_Handler(void)
{
/* USER CODE BEGIN SysTick_IRQn 0 */
/* USER CODE END SysTick_IRQn 0 */
HAL_IncTick();
/* USER CODE BEGIN SysTick_IRQn 1 */
/* USER CODE END SysTick_IRQn 1 */
}
//----------
extern __IO uint32_t uwTick;
typedef enum
{
HAL_TICK_FREQ_10HZ = 100U,
HAL_TICK_FREQ_100HZ = 10U,
HAL_TICK_FREQ_1KHZ = 1U,
HAL_TICK_FREQ_DEFAULT = HAL_TICK_FREQ_1KHZ
} HAL_TickFreqTypeDef;
HAL_TickFreqTypeDef uwTickFreq = HAL_TICK_FREQ_DEFAULT;
__weak void HAL_IncTick(void)
{
uwTick += uwTickFreq;
}
__weak uint32_t HAL_GetTick(void)
{
return uwTick;
}
__weak void HAL_Delay(uint32_t Delay)
{
uint32_t tickstart = HAL_GetTick();
uint32_t wait = Delay;
/* Add a freq to guarantee minimum wait */
if (wait < HAL_MAX_DELAY)
{
wait += (uint32_t)(uwTickFreq);
}
while((HAL_GetTick() - tickstart) < wait)
{
}
}
Вс май 15, 2022 07:09:13
Вс май 15, 2022 08:25:18
Вс май 15, 2022 08:33:32
HAL мне кажется не очень хорошо поступил, занял чужую функцию.
Вс май 15, 2022 09:06:55
HAL мне кажется не очень хорошо поступил, занял чужую функцию.
Вс май 15, 2022 11:50:05
void SysTick_Handler(void)
{
if(delay_count>0)
{
delay_count--;
}
}
Вс май 15, 2022 13:26:35
koeltrad писал(а):Здесь переполнение думаю расчётам не повредит и 49 дней ограничения не будет.