туда падает для выставления параметров tim3 из процедуры A4950_init(void)
но так как TIM_Prescaler = 0; то ничего не меняется (если поставить 2 то тональность писка меняется, что логично, частота падает вдвое)
источник тактового сигнала для TIM3 это APB1
у СТМ крайне ветвистая структура инициализации и на частоту ШИМ можно повлиять во многих местах
Вложение:
Безымянный.jpg [ 71.08 КиБ | Просмотров: 2512 ]
при инициализации падает сюда src\CMSIS\system_stm32f10x.c
void SetSysClockTo72(void)
и тут вроде как правда 72 мГц вставляется(кварц на 8 мГц стоит), берётся HSE и ставится множитель 9
Код:
#else
/* PLL configuration: PLLCLK = HSE * 9 = 72 MHz */
RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_PLLSRC | RCC_CFGR_PLLXTPRE |
RCC_CFGR_PLLMULL));
RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLSRC_HSE | RCC_CFGR_PLLMULL9);
#endif /* STM32F10X_CL */
но перед этим должен быть уже выбран AHB prescaler и APB1 prescaler...
и там вроде тоже всё дефолтно
Код:
/* HCLK = SYSCLK */
RCC->CFGR |= (uint32_t)RCC_CFGR_HPRE_DIV1;
потом делится пополам DIV2
Код:
/* PCLK1 = HCLK */
RCC->CFGR |= (uint32_t)RCC_CFGR_PPRE1_DIV2;
и вроде как всё как на картинке и на выходе APB1 Timer Clocks 72 мГц
и TIM3 берёт за источник эту APB1
но почему я тогда слышу этот противный писк?
Добавлено спустя 44 минуты 46 секунд:Re: MKS SERVO42B шаговик с обратной связью не пропускающий шагивобще цифра 511 которая задаёт TIM_Period подозрительно совпадает с таблицей синусов
там тоже от -511 до 511
поэтому если я задаю TIM_Period = 1511, ток выбранный по таблице синусов получается слишком низкий, а если TIM_Period уменьшаю, то соответсвенно чуть что сразу упираюсь в максимум.
_________________
<telepathmode>На вопросы отвечает Бригадир Телепатов!</telepathmode>
Всё уже придумано до нас!