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

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

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

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

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

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


 
Опции темы
Непрочитано 05.01.2015, 01:28  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

За такой обработчик прерывания нужно бить долго и жестоко.
Реклама:
Easyrider83 вне форума  
Непрочитано 05.01.2015, 01:33  
С.М.С
Гражданин KAZUS.RU
 
Аватар для С.М.С
 
Регистрация: 03.07.2010
Сообщений: 843
Сказал спасибо: 156
Сказали Спасибо 378 раз(а) в 190 сообщении(ях)
С.М.С на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

в том то и дело, что перековырял кучу ссылок и тоже самое, пробовал и через stm библиотеку и без.
С.М.С вне форума  
Непрочитано 05.01.2015, 01:36  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Говнокод никогда работать не будет. Убирайте задержки из обработчика. Лучше вообще убирайте все. Проверка флагов делается в main loop. И вообще прерывание таймера не нужно. Проверяйте значение таймера в main.
Easyrider83 вне форума  
Непрочитано 05.01.2015, 01:44  
С.М.С
Гражданин KAZUS.RU
 
Аватар для С.М.С
 
Регистрация: 03.07.2010
Сообщений: 843
Сказал спасибо: 156
Сказали Спасибо 378 раз(а) в 190 сообщении(ях)
С.М.С на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

ясен пень зачем прерывания таймеру, лишнее это. Таким макаром отсчёт могу и в цикле сделать, но мне нужен независимый отсчёт от main, поэтому таймер, поэтому прерывание по сравнению.

Хорошо, делаем так

Код:
//------------------------------------------
void Timer2_init(void)
{
/* TIM2 clock enable */
  RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);
	
  /* Time base configuration */
  TIM_TimeBaseStructure.TIM_Period = 20000;
  TIM_TimeBaseStructure.TIM_Prescaler = 36000;
  TIM_TimeBaseStructure.TIM_ClockDivision = 0;
  TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
  TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);
	
	TIM_ClearITPendingBit(TIM2, TIM_IT_Update);
	
	TIM_ITConfig(TIM2,  TIM_IT_Update, ENABLE);  
  /* TIM2 enable counter */
  TIM_Cmd(TIM2, ENABLE);


	
 	 /* Enable the TIM2 global Interrupt */
  NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQn;
  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriori  ty = 0;
  NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;
  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  NVIC_Init(&NVIC_InitStructure);	
	

  
}
//----------------------------------------------
Код:
//====================Таймер задержки индикации дуги==================	
void TIM2_IRQHandler(void)
{


TIM2-›SR &= ~TIM_SR_UIF; //очистка флага прерывания
}
получаем тоже самое, счётчик таймера считает как зверь

Последний раз редактировалось С.М.С; 05.01.2015 в 01:51.
С.М.С вне форума  
Непрочитано 05.01.2015, 02:02  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Может флаг не сбрасывается?
TIM_ClearITPendingBit(TIM2, TIM_IT_Update);
Easyrider83 вне форума  
Непрочитано 05.01.2015, 02:21  
С.М.С
Гражданин KAZUS.RU
 
Аватар для С.М.С
 
Регистрация: 03.07.2010
Сообщений: 843
Сказал спасибо: 156
Сказали Спасибо 378 раз(а) в 190 сообщении(ях)
С.М.С на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

следующее прерывание то происходит и в срок, при достижении счётчиком сравниваемого числа. Только вот слишком быстро счётчик считает, предделитель как будто не делит

для надёжности продублировал без библиотеки, результат тот же
Код:
//====================Таймер задержки индикации дуги==================	
void TIM2_IRQHandler(void)
{


TIM_ClearITPendingBit(TIM2, TIM_IT_Update);
		

TIM2-›SR &= ~TIM_SR_UIF; //очистка флага прерывания
}
С.М.С вне форума  
Непрочитано 05.01.2015, 03:08  
omercury
Почётный гражданин KAZUS.RU
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
omercury на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Странно, у меня почему-то работает.
Инит:
PHP код:
void Timer2_init(void) {

  
RCC-›APB1ENR |= RCC_APB1ENR_TIM2EN;    //Тактирование Timer2
    
TIM2-›PSC 23999;                    //Настройка предделителя таймера
    
TIM2-›ARR 300;                    //Загружаем число миллисекунд в регистр автоперезагрузки
    
TIM2-›DIER |= TIM_DIER_UIE;            //Разрешаем прерывание при переполнении счетчика
    
TIM2-›CR1 |= TIM_CR1_CEN;            //Запускаем счет

    
NVIC_SetPriority(TIM2_IRQn,1);
    
NVIC_EnableIRQ (TIM2_IRQn);

Прерывание:
PHP код:
void TIM2_IRQHandler(void)            //Функция обработчика прерывания от таймера 6
  
{
    
TIM2-›SR &= ~TIM_SR_UIF;        //очистка флага прерывания
        
GPIOA-›ODR^=GPIO_ODR_ODR0;    //Инверсия выхода

Камушек F103, тактовая 72МГц, поэтому период инверсии выхода втрое меньше, чем указано.

https://yadi.sk/i/jUXdrCjidnbZU
Сдвиг экрана через SisTick, светодиод в прерывании TMR2.

Последний раз редактировалось omercury; 05.01.2015 в 03:15.
omercury вне форума  
Непрочитано 05.01.2015, 05:04  
STM32F0
Заблокирован
 
Регистрация: 22.04.2014
Сообщений: 0
Сказал спасибо: 15
Сказали Спасибо 366 раз(а) в 284 сообщении(ях)
STM32F0 на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Сообщение от Easyrider83 Посмотреть сообщение
За такой обработчик прерывания нужно бить долго и жестоко.
Чушь! Типичный результат дефлорации мозга от долгого просиживания на ПЫХ-Отмэль с их недоразвитыми прерываниями. Ничего криминального в этом обработчике нет, там сплошные условия. Если там есть задержки, то да, плохо, но это ещё не факт. Если есть несколько прерываний, юзать приоритеты и программа сравнительно простая, то в майне может быть только настройка периферии и прерываний. Время перехода/возврата из прерывания в прерывание почти в 3 раза меньше входа/выхода в прерывание из майн. Т.е. всё по задаче, с чётким пониманием сути происходящего.
STM32F0 вне форума  
Непрочитано 05.01.2015, 05:09  
STM32F0
Заблокирован
 
Регистрация: 22.04.2014
Сообщений: 0
Сказал спасибо: 15
Сказали Спасибо 366 раз(а) в 284 сообщении(ях)
STM32F0 на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Цитата:
Только вот слишком быстро счётчик считает, предделитель как будто не делит
Здесь "ромашка" неуместна. Поставьте бряк в прерывании, гляньте реальные настройки. Заюзайте пару тест-пинов, с выводом на ЛА или осциллограф. Работайте с реальными цифрами и результатом, а не с догадками.
STM32F0 вне форума  
Сказали "Спасибо" STM32F0
С.М.С (06.01.2015)
Непрочитано 06.01.2015, 01:22  
С.М.С
Гражданин KAZUS.RU
 
Аватар для С.М.С
 
Регистрация: 03.07.2010
Сообщений: 843
Сказал спасибо: 156
Сказали Спасибо 378 раз(а) в 190 сообщении(ях)
С.М.С на пути к лучшему
По умолчанию Re: Изучаем STM32 Cortex M3

Сообщение от STM32F0 Посмотреть сообщение
Здесь "ромашка" неуместна. Поставьте бряк в прерывании, гляньте реальные настройки. Заюзайте пару тест-пинов, с выводом на ЛА или осциллограф. Работайте с реальными цифрами и результатом, а не с догадками.
Вон оно что, теперь понятно, БЛАГОДАРЮ!
С.М.С вне форума  
 

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

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Школа АRMрестлинга Uragan90 Микроконтроллеры, АЦП, память и т.д 54 22.08.2011 16:13
ARM Cortex M3 + Linux SiMiLya Микроконтроллеры, АЦП, память и т.д 10 17.06.2011 17:20
Помогите с STM32 - очень нужно... yakuzaa Микроконтроллеры, АЦП, память и т.д 60 04.08.2010 11:04
Как добавить поддержку для STM32 SFHK Микроконтроллеры, АЦП, память и т.д 11 18.12.2009 18:09


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


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