-
- Из функции delay нужно выкинуть йцукен(324 знак., 01.04.2015 19:44, )
- Решил попробовать SysTick для проверки SYSCLK=72MHz, раз не понял фокус с TIM3, теперь периодически валится в HardFault_Handler() usb здесь(69 знак., 03.04.2015 13:03)
- Поменял направление up->down: TIM3->CNT=timeout-1; TIM3->CR1=(TIM_CR1_OPM|TIM_CR1_CEN|TIM_CR1_DIR); Не помогло, всё равно непонятный период моргания контрольного светодиода USB здесь(02.04.2015 06:45)
- За минуту прерывание тикает примерно 24 раза, вместо ожидаемых 60. Что-то не так. Вроде кварц 12 МГц. PLL*=6; SYSCLK=72 МГц; USB здесь(359 знак., 02.04.2015 01:16)
- Спасибо, период таймера стал ближе к ожидаемому. Смысл был в том, чтобы немедленно применились новые значения PSC, ARR и начать новый период с нулевых теневых счётчиков (с которыми сравниваются теневые аналоги PSC и ARR). Для гарантии, что USB здесь(363 знак., 02.04.2015 00:36)
- И еще - ты в курсе что шина APB1 может работать только на <=36MHz? А ты ее на 72MHz гоняешь, судя по этому коду. - il-2(01.04.2015 11:42)
- Спасибо, пофиксил, теперь с RCC_CFGR_PPRE1_DIV2 USB здесь(02.04.2015 00:39)
- Вот я лошара. В RM же на 90 странице по-русски написано "The maximum allowed frequency of the APB1 domain is 36 MHz." А TIM3 как раз висит на APB1. Дикий оверклок получаецца. Чо удивляться таймер не так тикает. - usb здесь(01.04.2015 13:12)
- Зачем закомментировал? Как он у тебя выйдет из Suspend??? Так и будет висеть на __WFI(). В обработчике прерывания не забудь сделать сброс запроса на прерывание (больше там ничего не нужно). il-2(99 знак., 01.04.2015 11:01)
- Спасибо, вернул EXTI->IMR=EXTI_IMR_MR18; USB здесь(420 знак., 02.04.2015 00:49)
- Из функции delay нужно выкинуть йцукен(324 знак., 01.04.2015 19:44, )