Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту


 
Опции темы
Непрочитано 28.08.2013, 13:24  
alberio
Гражданин KAZUS.RU
 
Аватар для alberio
 
Регистрация: 08.07.2006
Сообщений: 583
Сказал спасибо: 76
Сказали Спасибо 90 раз(а) в 66 сообщении(ях)
alberio на пути к лучшему
Вопрос STM32 простой таймер

Думаю, проблема уже давно решена, да и не проблема это вовсе, но никак не хочет работать у меня.
Задача - сделать фиксированную задержку на таймере.
STM32F407, TIM4.

Инициализация (расчетное время 7мкс)
Код:
TIM_TimeBaseStructure.TIM_Period 	 = 65535;
TIM_TimeBaseStructure.TIM_Prescaler	 = 0;
TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1;
TIM_TimeBaseStructure.TIM_CounterMode= TIM_CounterMode_Up;

TIM_TimeBaseInit(TIM4, &TIM_TimeBaseStructure);
TIM_PrescalerConfig(TIM4, 0, TIM_PSCReloadMode_Immediate);
	
TIM_OCInitStructure.TIM_OCMode 		= TIM_OCMode_Timing;
TIM_OCInitStructure.TIM_OutputState 	= TIM_OutputState_Disable;
TIM_OCInitStructure.TIM_Pulse 	= (SystemCoreClock/1000000)*7)+1;
TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;

TIM_OC1Init(TIM4, &TIM_OCInitStructure);
TIM_OC1PreloadConfig(TIM4, TIM_OCPreload_Disable);
TIM_ITConfig(TIM4, TIM_IT_CC1, ENABLE);
Собственно использование
Код:
void Delay_Us1 (void)
{
	TIM_SetCounter(TIM4,0);
	TIM_Cmd(TIM4, ENABLE);
	TIM_ClearITPendingBit(TIM4, TIM_IT_CC1);
	while (TIM_GetITStatus(TIM4, TIM_IT_CC1) == RESET);
	TIM_Cmd(TIM4, DISABLE);
}
И проблема - таймер не генерирует расчетного времени и еще работает нестабильно +/- 1мкс, что на 7мкс периода многовато.
То ли я неправильно считаю, то ли инициализирую неверно, не пойму....
Реклама:
__________________
Sex, Druggs, Rock&Roll
alberio вне форума  
Непрочитано 29.08.2013, 17:00  
-jonns-
Временная регистрация
 
Регистрация: 15.02.2008
Адрес: Болгария
Сообщений: 59
Сказал спасибо: 37
Сказали Спасибо 28 раз(а) в 11 сообщении(ях)
-jonns- на пути к лучшему
По умолчанию Re: STM32 простой таймер

Сообщение от alberio Посмотреть сообщение
Задача - сделать фиксированную задержку на таймере.
Может на SysTick? Для F3 ползуюсь функции delay_us. (См вложении). Не помню откуда скачивал. Проблем не замечал. Может для F4 тоже подойдет.
Вложения:
Тип файла: rar Delay.rar (508 байт, 97 просмотров)
-jonns- вне форума  
Непрочитано 29.08.2013, 17:38  
alberio
Гражданин KAZUS.RU
 
Аватар для alberio
 
Регистрация: 08.07.2006
Сообщений: 583
Сказал спасибо: 76
Сказали Спасибо 90 раз(а) в 66 сообщении(ях)
alberio на пути к лучшему
По умолчанию Re: STM32 простой таймер

Спасибо!
Но SysTick уже используется
__________________
Sex, Druggs, Rock&Roll
alberio вне форума  
Непрочитано 29.08.2013, 17:53  
niXto
Почётный гражданин KAZUS.RU
 
Аватар для niXto
 
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
niXto на пути к лучшему
По умолчанию Re: STM32 простой таймер

Сообщение от -jonns- Посмотреть сообщение
Для F3 ползуюсь функции delay_us. (См вложении)
Только почему бы и миллисекунды сразу не записывать в таймер, вместо таких декрементов... И почему бы не написать там в паре мест волшебное слово sleep?? Весь смысл использования таймера пропадает

Сообщение от alberio Посмотреть сообщение
Но SysTick уже используется
Возьми таймеры 6 или 7, они гораздо проще
niXto вне форума  
 

Закладки

Метки
stm32f4, timer
Опции темы

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Изучаем STM32 Cortex M3 EugVor ARM 6166 19.02.2024 18:22
stm32 после старта TIM6 сразу прерывание kvark85 ARM 8 04.07.2013 11:22
Сторожевой таймер в ATtiny25/45/85 mike124 Proteus 11 30.10.2012 11:19
таймер и симуляция в MPLAB Sim lisergin Микроконтроллеры, АЦП, память и т.д 0 16.01.2006 15:35


Часовой пояс GMT +4, время: 22:35.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot