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

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

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

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

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

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


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

Я что-то не посмотрел. У вас проц другой. Я вам под stm32f10x дал алгоритм. Впрочем, не думаю, что сильно различается.
Реклама:
Easyrider83 вне форума  
Непрочитано 13.11.2013, 14:28  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: STM32F05x TIM6 IRQ

Сообщение от Easyrider83 Посмотреть сообщение
1. включить тактирование таймера (описание в stm32f10x_rcc.c)
2. сконфигурировать таймер (stm32f10x_tim.c)
3. запустить таймер
4. включить прерывание таймера
5. дать команду NVIC на работу прерыния таймера (описание в misc.c)
И
7. Засунуть SPL в аналы...
__________________
Осторожно , злой кот
dosikus вне форума  
Непрочитано 13.11.2013, 14:31  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: STM32F05x TIM6 IRQ

Учится лучше на SPL, чтобы потом не было вопросов, как элементарный таймер запустить. А потом уже каждый для себя сам решит - жалко ему лишних 100 байт на десятикратное улучшение читаемости кода или нет.
Easyrider83 вне форума  
Непрочитано 13.11.2013, 14:31  
artyomugr
Вид на жительство
 
Аватар для artyomugr
 
Регистрация: 05.04.2008
Адрес: Украина, Ахтырка
Сообщений: 302
Сказал спасибо: 148
Сказали Спасибо 31 раз(а) в 30 сообщении(ях)
artyomugr на пути к лучшему
По умолчанию Re: STM32F05x TIM6 IRQ

С компилировалось - но прерывания нету.

Код:
void TIM6_IRQHandler(void)
{
	static volatile uint32_t ulTim6Cnt;

	
    if (TIM6-›SR & TIM_SR_UIF)
    {
        TIM6-›SR &= ~TIM_SR_UIF;
      		indication_func();
    }
}
Код:
void Init_RCC(void)
{
  RCC-›AHBENR |= RCC_AHBENR_GPIOCEN;
	RCC-›APB1ENR |= RCC_APB1ENR_TIM6EN;
	TIM6-›PSC =1000 - 1;
	TIM6-›ARR = 50 - 1;
	TIM6-›DIER |= TIM_DIER_UIE;
	TIM6-›CR1 = TIM_CR1_CEN | TIM_CR1_ARPE;
	NVIC_SetPriority(TIM6_DAC_IRQn, 15);
  NVIC_EnableIRQ(TIM6_DAC_IRQn); // PC6 output PP for strob
  GPIOC-›MODER &=~GPIO_MODER_MODER6;
	GPIOC-›MODER|=GPIO_MODER_MODER6_0;
	GPIOC-›OSPEEDR|=GPIO_OSPEEDER_OSPEEDR6; 
}
artyomugr вне форума  
Непрочитано 13.11.2013, 14:31  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: STM32F05x TIM6 IRQ

artyomugr,

Код:
NVIC_SetPriority(TIM6_DAC_IRQn, 15);
NVIC_EnableIRQ(TIM6_DAC_IRQn);
И
Код:
void TIM6_IRQHandler(void)
сменить на

Код:
void TIM6_DAC_IRQHandler (void)
__________________
Осторожно , злой кот

Последний раз редактировалось dosikus; 13.11.2013 в 14:35.
dosikus вне форума  
Сказали "Спасибо" dosikus
artyomugr (13.11.2013)
Непрочитано 13.11.2013, 14:32  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: STM32F05x TIM6 IRQ

Все возможные прерывания перечислены в стартапе. Поставьте точку остановки на обработчик прерывания и убедитесь, что программа туда попадает. Если нет, проверьте состояние регистров счета вашего таймера. А идет ли вообще счет?
Easyrider83 вне форума  
Непрочитано 13.11.2013, 14:49  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
dosikus на пути к лучшему
По умолчанию

Ну дык , ускоренный копипаст с рабочего проекта , но там TIM3 ...

Сообщение от artyomugr Посмотреть сообщение


Код:
void Init_RCC(void)
{
  RCC-›AHBENR |= RCC_AHBENR_GPIOCEN;
	RCC-›APB1ENR |= RCC_APB1ENR_TIM6EN;
	TIM6-›PSC =1000 - 1;
	TIM6-›ARR = 50 - 1;
	TIM6-›DIER |= TIM_DIER_UIE;
	TIM6-›CR1 = TIM_CR1_CEN | TIM_CR1_ARPE;
	NVIC_SetPriority(TIM6_DAC_IRQn, 15);
  NVIC_EnableIRQ(TIM6_DAC_IRQn);


  GPIOC-›MODER &=~GPIO_MODER_MODER6;
	GPIOC-›MODER|=GPIO_MODER_MODER6_0;
	GPIOC-›OSPEEDR|=GPIO_OSPEEDER_OSPEEDR6; 
}
Сие можешь убрать :
Код:
 RCC-›AHBENR |= RCC_AHBENR_GPIOCEN;
...
GPIOC-›MODER &=~GPIO_MODER_MODER6;
	GPIOC-›MODER|=GPIO_MODER_MODER6_0;
	GPIOC-›OSPEEDR|=GPIO_OSPEEDER_OSPEEDR6;
Это настройка PC6 на выход ...

Кстати вызов функции в прерывании есть моветон.
Установка флага в прерывании, его поллинг со сбросом в main - рассово верное ...

Сообщение от Easyrider83 Посмотреть сообщение
Учится лучше на SPL, чтобы потом не было вопросов, как элементарный таймер запустить.
А приведи-ка нам Паша простыню на SPL в контраст ...
__________________
Осторожно , злой кот
dosikus вне форума  
Непрочитано 13.11.2013, 14:54  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: STM32F05x TIM6 IRQ

Код:
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);
TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStruct;
TIM_TimeBaseInitStruct.TIM_Prescaler = 1000;
TIM_TimeBaseInitStruct.TIM_CounterMode = TIM_CounterMode_Up;
TIM_TimeBaseInitStruct.TIM_Period = 0xFF;
TIM_TimeBaseInitStruct.TIM_ClockDivision = TIM_CKD_DIV1;
TIM_TimeBaseInitStruct.TIM_RepetitionCounter = 0;
TIM_TimeBaseInit(TIM2, &TIM_TimeBaseInitStruct);
TIM_ITConfig(TIM2, TIM_IT_Update, ENABLE);
TIM_Cmd(TIM2, ENABLE);
NVIC_EnableIRQ(TIM2_IRQn);
Код:
void TIM2_IRQHandler (void)
{
	TIM_ClearITPendingBit(TIM2 , TIM_FLAG_Update);
}
Easyrider83 вне форума  
Непрочитано 13.11.2013, 15:01  
artyomugr
Вид на жительство
 
Аватар для artyomugr
 
Регистрация: 05.04.2008
Адрес: Украина, Ахтырка
Сообщений: 302
Сказал спасибо: 148
Сказали Спасибо 31 раз(а) в 30 сообщении(ях)
artyomugr на пути к лучшему
По умолчанию Re: STM32F05x TIM6 IRQ

Да, я заметил уже удалил кусок кода ввода/вывода.
Странный SPL.... писать *ля больше чем если обращаться к регистрам напрямую...
По моему - через попу сделано.
artyomugr вне форума  
Непрочитано 13.11.2013, 15:03  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: STM32F05x TIM6 IRQ

Сообщение от artyomugr Посмотреть сообщение
Странный SPL.... писать *ля больше чем если обращаться к регистрам напрямую...
А если еще взглянуть на листинг...
__________________
Осторожно , злой кот
dosikus вне форума  
 

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

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
stm32 после старта TIM6 сразу прерывание kvark85 ARM 8 04.07.2013 11:22
Комп "видит" винт только после повторной загрузки malkoff2007 Ремонт оргтехники 199 22.10.2011 10:05


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


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