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

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

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

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

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

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


 
Опции темы
Непрочитано 23.03.2014, 19:47  
bass1981
Гражданин KAZUS.RU
 
Регистрация: 01.09.2007
Сообщений: 898
Сказал спасибо: 278
Сказали Спасибо 57 раз(а) в 54 сообщении(ях)
bass1981 на пути к лучшему
По умолчанию STM32 и таймеры

Доброго времени дня.
Не пинайте сильно стм только осваиваю.
Не могу разобраться в таймерах. Хочу настроить таймер на генерацию временных сигналов. Заработать то заработало, но каким образом не пойму... Вернее как считается задержка , значения TIM2-›ARR = 6500;
TIM2-›PSC = 6500; ???
Код:
TimerInit()
{
RCC-›APB1ENR |= RCC_APB1ENR_TIM2EN;
TIM2-›ARR = 6500;
TIM2-›PSC = 6500;
TIM2-›CR1 |= TIM_CR1_CEN | TIM_CR1_ARPE;
TIM2-›DIER |= TIM_DIER_UIE;

NVIC_SetPriority(TIM2_IRQn, 5);
NVIC_EnableIRQ(TIM2_IRQn);
}

void TIM2_IRQHandler (void)
{
TIM2-›SR &= ~TIM_SR_UIF;
if(invertLed1 ==0)
{
	invertLed1 =1;
	Led_Yel_Off;
}	else
{
	invertLed1 =0;
	Led_Yel_On;
}

}
Реклама:
bass1981 вне форума  
Непрочитано 23.03.2014, 19:53  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: STM32 и таймеры

Здесь почитай https://kazus.ru/forums/showthread.php?t=106689
__________________
Осторожно , злой кот
dosikus вне форума  
Сказали "Спасибо" dosikus
bass1981 (23.03.2014)
Непрочитано 23.03.2014, 20:32  
bass1981
Гражданин KAZUS.RU
 
Регистрация: 01.09.2007
Сообщений: 898
Сказал спасибо: 278
Сказали Спасибо 57 раз(а) в 54 сообщении(ях)
bass1981 на пути к лучшему
По умолчанию Re: STM32 и таймеры

Сообщение от dosikus Посмотреть сообщение
Здесь почитай https://kazus.ru/forums/showthread.php?t=106689
Все понял то что нужно..... Спасиб еще раз...
bass1981 вне форума  
Непрочитано 23.03.2014, 20:32  
swat24
Гражданин KAZUS.RU
 
Регистрация: 16.03.2009
Адрес: Украина, Харьков
Сообщений: 762
Сказал спасибо: 108
Сказали Спасибо 67 раз(а) в 67 сообщении(ях)
swat24 на пути к лучшему
По умолчанию Re: STM32 и таймеры

(Частота работы таймера/делитель-1)/счетный регистр-1 = частота прерываний от таймера
к примеру для получения временного интервала 100 мс:
(84 Мгц/8400-1)/1000-1
84 Мгц - частота работы таймера
8400 - предделитель
1000 - счетный регистр

http://how2.org.ua/микроконтроллеры/...discovery.html

Последний раз редактировалось swat24; 23.03.2014 в 20:53. Причина: Вспоминаем ))
swat24 вне форума  
Непрочитано 23.03.2014, 20:44  
neyvert
Прописка
 
Регистрация: 29.06.2010
Сообщений: 104
Сказал спасибо: 14
Сказали Спасибо 9 раз(а) в 7 сообщении(ях)
neyvert на пути к лучшему
По умолчанию Re: STM32 и таймеры

-1, Не забываем!
neyvert вне форума  
Непрочитано 23.03.2014, 21:02  
bass1981
Гражданин KAZUS.RU
 
Регистрация: 01.09.2007
Сообщений: 898
Сказал спасибо: 278
Сказали Спасибо 57 раз(а) в 54 сообщении(ях)
bass1981 на пути к лучшему
По умолчанию Re: STM32 и таймеры

APB1 = 48 000 000 Hz
Таймер тактируется APB1 / PSC -› 48 000 000 Hz / 1000 = 48 000 Hz
Прерывания = 48 000 Hz / ARR -› 48 000 Hz / 50 = ~ 1000 Hz или 1mS.

Итого прерывания = APB1/PSC/ARR ...

Чет как то не пошло, подключил анализатор..... В 10мкс 16 сработок происходит..... ?????

TimerInit2(uint16_t time)
{
RCC-›APB1ENR |= RCC_APB1ENR_TIM2EN;
TIM2-›ARR = 4800 - 1;
TIM2-›PSC = (10 - 1)*time;
//TIM2-›ARR = 1000 - 1;//Таймер тактируется APB1 / PSC -› 48 000 000 Hz / 1000 = 48 000 Hz
//TIM2-›PSC = 50 - 1;//Прерывания = 48 000 Hz / ARR -› 48 000 Hz / 50 = ~ 1000 Hz или 1mS.
TIM2-›CR1 |= TIM_CR1_CEN | TIM_CR1_ARPE;
TIM2-›DIER |= TIM_DIER_UIE;
NVIC_SetPriority(TIM2_IRQn, 5);
NVIC_EnableIRQ(TIM2_IRQn);
}
Так такая же петрушка....

Последний раз редактировалось bass1981; 23.03.2014 в 21:10.
bass1981 вне форума  
Непрочитано 23.03.2014, 21:07  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: STM32 и таймеры

Сообщение от bass1981 Посмотреть сообщение
APB1 = 48 000 000 Hz
Там для F0 , у тебя же другая .
__________________
Осторожно , злой кот
dosikus вне форума  
Непрочитано 23.03.2014, 21:17  
bass1981
Гражданин KAZUS.RU
 
Регистрация: 01.09.2007
Сообщений: 898
Сказал спасибо: 278
Сказали Спасибо 57 раз(а) в 54 сообщении(ях)
bass1981 на пути к лучшему
По умолчанию Re: STM32 и таймеры

Сообщение от dosikus Посмотреть сообщение
Там для F0 , у тебя же другая .
Да 42мГц.... Понял спасибо.
Только все равно что то в два раза быстрее получилось...

Последний раз редактировалось bass1981; 23.03.2014 в 21:21.
bass1981 вне форума  
Непрочитано 24.03.2014, 16:34  
MaxiMuz79
Гражданин KAZUS.RU
 
Аватар для MaxiMuz79
 
Регистрация: 06.04.2010
Адрес: Санкт-Петербург - Волжский
Сообщений: 529
Сказал спасибо: 74
Сказали Спасибо 56 раз(а) в 45 сообщении(ях)
MaxiMuz79 на пути к лучшему
По умолчанию Re: STM32 и таймеры

Сообщение от bass1981 Посмотреть сообщение
Только все равно что то в два раза быстрее получилось...
Здесь фокус в том что у вас переключение осуществляется программно в теле прерывания. Пока это прерывание вызовется + время работы вашего кода + время возврата в программу. Поэтому получается что при задании частоты выше определенной , частота программного срабатывания получается не корректной. На discovery vl с F(APB2)=24МГц граничная частота выходила ок.248кГц.
Выход , если вам нужно выводить сигнал на внешний вывод применять регистр захвата/сравнения канала TIMх-›CCRх.
п.с. хотя почему у вас частота оказалось больше непонятно ...

Последний раз редактировалось MaxiMuz79; 24.03.2014 в 16:36.
MaxiMuz79 вне форума  
Непрочитано 24.03.2014, 17:10  
bass1981
Гражданин KAZUS.RU
 
Регистрация: 01.09.2007
Сообщений: 898
Сказал спасибо: 278
Сказали Спасибо 57 раз(а) в 54 сообщении(ях)
bass1981 на пути к лучшему
По умолчанию Re: STM32 и таймеры

Сообщение от MaxiMuz79 Посмотреть сообщение
Здесь фокус в том что у вас переключение осуществляется программно в теле прерывания. Пока это прерывание вызовется + время работы вашего кода + время возврата в программу. Поэтому получается что при задании частоты выше определенной , частота программного срабатывания получается не корректной. На discovery vl с F(APB2)=24МГц граничная частота выходила ок.248кГц.
Выход , если вам нужно выводить сигнал на внешний вывод применять регистр захвата/сравнения канала TIMх-›CCRх.
п.с. хотя почему у вас частота оказалось больше непонятно ...
Я сам не понял но выставив деление 8400 все корректно заработало....
Смотрю структурную схему тактирования APB1-42мГц......
Figure 5. STM32F41x block diagram
У меня 415..... Ладно по пожа разберусь там еще USART3 тактируется если что не ту скорость выдаст.... Посмотрел асылом вроде что то идет, а с какой скоростью не в давался в подробности.
А то что переключение программно пинами. Это для наглядности сделал, таймеры использоваться для другого будут. Сейчас с прерываниями разбираюсь.....
bass1981 вне форума  
 

Закладки
Опции темы

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Изучаем STM32 Cortex M3 EugVor ARM 6166 19.02.2024 18:22
Подключение DS18b20 к STM32 aftaev ARM 85 22.11.2016 10:58
STM32 "глубокое" пояснение старта программы kvark85 ARM 9 17.09.2015 09:17
Проблема с ST-LINK +KEIL + STM32 LionRJ Микроконтроллеры, АЦП, память и т.д 5 06.03.2012 17:21
Таймеры ATmega8 Dimitrij Микроконтроллеры, АЦП, память и т.д 0 26.08.2011 00:06


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


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