-
- Я полагаю, что он нужен затем, чтобы функция HAL_Delay() работала - задержка в единицах мс, которая востребована во многих местах HAL и даже в поддержке USB нижнего уровня (stm32f4xx_ll_usb.c). - Ксения(29.07.2019 20:01)
- 1. В RM на контроллер написано 1кГц! Вряд ли STшники сами придумали - все идет от ARM. 2. Если я не использую HAL, а использую LL без USB? Масса надуманных немотивированнах зависимостей. VLLV(144 знак., 29.07.2019 21:43)
- Архитектура ARM здесь виновата только тем, что там (в отличите от AVR) нельзя делать калиброванные временные задержки с помощью цикла холостых команд, а всегда приходится использовать для этой цели таймер. Особенно это актуально при поддержке Ксения(411 знак., 29.07.2019 22:20)
- Кто тот гуру, который сказал, что 1 мс в самый раз? Ну мне 100 мкс в самый раз :) - VLLV(29.07.2019 22:31)
- Ну так запрограммируйте Systick на 100мкс, не пойму в чем проблема-то? - LightElf(29.07.2019 23:11)
- да кто вам такое сказал ? используйте счетчик тактов DWT будет щастье! Вот SciFi пример вам дал ) - Aleksey_75(29.07.2019 22:24, ссылка)
- Проблема в том, что HAL из CubeMX использует системный таймер, а не DWT. Для своих целей DWT использовать можно, однако это решение эквивалентно тому, чтобы системный таймер не трогать, а пользоваться своим таймером (DWT или обычным - не Ксения(324 знак., 30.07.2019 00:00)
- "калиброванные временные задержки с помощью цикла холостых команд" - DWT вам в помощь, а систик оставьте под HAL если так хочется. Aleksey_75(148 знак., 30.07.2019 00:14 - 00:19)
- В файле stm32f4xx_ll_usb.c функция HAL_Delay() вызывается 6 раз. Например: Ксения(696 знак., 30.07.2019 00:35)
- да сейчас глянул stm32l4xx_hal.c там галимый индусокод заточенный на 1ms, функцию HAL_Delay() поправить чтоб правильно считала в зависимости от настроек систика. Aleksey_75(96 знак., 30.07.2019 00:49)
- Кстати , HAL_Delay() объявлена как __weak , так что пишите свою HAL_Delay() и никакие либы править не придется - Aleksey_75(30.07.2019 00:54)
- да сейчас глянул stm32l4xx_hal.c там галимый индусокод заточенный на 1ms, функцию HAL_Delay() поправить чтоб правильно считала в зависимости от настроек систика. Aleksey_75(96 знак., 30.07.2019 00:49)
- В файле stm32f4xx_ll_usb.c функция HAL_Delay() вызывается 6 раз. Например: Ксения(696 знак., 30.07.2019 00:35)
- "калиброванные временные задержки с помощью цикла холостых команд" - DWT вам в помощь, а систик оставьте под HAL если так хочется. Aleksey_75(148 знак., 30.07.2019 00:14 - 00:19)
- Проблема в том, что HAL из CubeMX использует системный таймер, а не DWT. Для своих целей DWT использовать можно, однако это решение эквивалентно тому, чтобы системный таймер не трогать, а пользоваться своим таймером (DWT или обычным - не Ксения(324 знак., 30.07.2019 00:00)
- Кто тот гуру, который сказал, что 1 мс в самый раз? Ну мне 100 мкс в самый раз :) - VLLV(29.07.2019 22:31)
- В документации ДЛЯ ЛЮДЕЙ это было бы во первых строках. А там, видимо, для адуринщиков. - SciFi(29.07.2019 21:50)
- Я рискую, но признаюсь, что далеко не всегда читаю документацию. Ебта, что нового могли изобрести человечество после 8259? NVIC? - хоть какой-то возврат к здравому смыслу после одноуровневых прерываний убогих AVR и прочих MSP430. - VLLV(29.07.2019 22:14)
- Но есть нюансы. Впрочем, как обычно. - SciFi(29.07.2019 22:33)
- Я рискую, но признаюсь, что далеко не всегда читаю документацию. Ебта, что нового могли изобрести человечество после 8259? NVIC? - хоть какой-то возврат к здравому смыслу после одноуровневых прерываний убогих AVR и прочих MSP430. - VLLV(29.07.2019 22:14)
- Архитектура ARM здесь виновата только тем, что там (в отличите от AVR) нельзя делать калиброванные временные задержки с помощью цикла холостых команд, а всегда приходится использовать для этой цели таймер. Особенно это актуально при поддержке Ксения(411 знак., 29.07.2019 22:20)
- 1. В RM на контроллер написано 1кГц! Вряд ли STшники сами придумали - все идет от ARM. 2. Если я не использую HAL, а использую LL без USB? Масса надуманных немотивированнах зависимостей. VLLV(144 знак., 29.07.2019 21:43)
- Я полагаю, что он нужен затем, чтобы функция HAL_Delay() работала - задержка в единицах мс, которая востребована во многих местах HAL и даже в поддержке USB нижнего уровня (stm32f4xx_ll_usb.c). - Ксения(29.07.2019 20:01)