Миландр

Ключевым подразделением нашей компании является Центр Проектирования интегральных микросхем
Текущее время: 2019-фев-16 06:18

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
 Заголовок сообщения: K1986BE92QI таймер
СообщениеДобавлено: 2019-янв-23 09:30 
Не в сети

Зарегистрирован: 2019-янв-23 08:46
Сообщения: 3
Здравствуйте! Работаю с данным контроллером около месяца, понадобилось воспользоваться таймером общего назначения. Проблема состоит в том, что он (таймер) выдаёт ощутимую ошибку (ожидается 5 кГц), что является очень серьезной проблемой для меня. При этом системный таймер отрабатывает четко. Что делать и кто виноват?
Код:

RST_CLK_PCLKcmd(RST_CLK_PCLK_PORTC,ENABLE);
PORT_InitTypeDef gpio;
gpio.PORT_FUNC = PORT_FUNC_PORT;
gpio.PORT_OE = PORT_OE_OUT;
gpio.PORT_Pin = PORT_Pin_0;
gpio.PORT_MODE=PORT_MODE_DIGITAL;
gpio.PORT_SPEED =PORT_SPEED_MAXFAST;
PORT_Init(MDR_PORTC, &gpio);

TIMER_CntInitTypeDef tim;
RST_CLK_PCLKcmd(RST_CLK_PCLK_TIMER1, ENABLE);
TIMER_DeInit(MDR_TIMER1);
TIMER_CntStructInit(&tim);
tim.TIMER_Prescaler = 40;
tim.TIMER_Period = 100;
TIMER_CntInit(MDR_TIMER1, &tim);
TIMER_BRGInit(MDR_TIMER1, TIMER_HCLKdiv1);
TIMER_ITConfig(MDR_TIMER1, TIMER_STATUS_CNT_ARR, ENABLE );
    //NVIC_SetPriority(MDR_TIMER1,4);
NVIC_EnableIRQ(TIMER1_IRQn);

Системная частота 40 МГц, в программе работает только таймер, по прерыванию которого переключается нога и больше ничего.


Вложения:
Комментарий к файлу: Осциллограмма
IMG_2019-01-23_085731.jpg
IMG_2019-01-23_085731.jpg [ 3.37 МБ | Просмотров: 114 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: K1986BE92QI таймер
СообщениеДобавлено: 2019-янв-23 09:43 
Не в сети

Зарегистрирован: 2009-июл-21 14:13
Сообщения: 1223
Откуда: Тула
Если работаете от внутреннего генератора HSI, то это очень даже нормально.
Если от внешнего HSE, то гляньте частоту на нём.

_________________
сочувствующий…


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: K1986BE92QI таймер
СообщениеДобавлено: 2019-янв-23 09:48 
Не в сети

Зарегистрирован: 2019-янв-23 08:46
Сообщения: 3
prostoRoman писал(а):
Если работаете от внутреннего генератора HSI, то это очень даже нормально.
Если от внешнего HSE, то гляньте частоту на нём.

HSE+PLL 40МГц, системный таймер выдаёт четкий сигнал.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: K1986BE92QI таймер
СообщениеДобавлено: 2019-янв-23 09:56 
Не в сети

Зарегистрирован: 2009-июл-21 14:13
Сообщения: 1223
Откуда: Тула
Тогда, возможно, нужно указывать tim.TIMER_Prescaler = 40-1;
Это нужно уточнить по коду SPL и по Спецификации.
(там что прескалер, что ARR(период) задаётся на 1 меньше)

_________________
сочувствующий…


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: K1986BE92QI таймер
СообщениеДобавлено: 2019-янв-23 10:06 
Не в сети

Зарегистрирован: 2019-янв-23 08:46
Сообщения: 3
prostoRoman писал(а):
Тогда, возможно, нужно указывать tim.TIMER_Prescaler = 40-1;
Это нужно уточнить по коду SPL и по Спецификации.
(там что прескалер, что ARR(период) задаётся на 1 меньше)

Спасибо, мне помогло! Где-то глубоко в душе я подозревал, что из-за нулевого значения что-то не так, но на PICах было по-другому.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 5 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 11


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB