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

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

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

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

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

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


 
Опции темы
Непрочитано 14.11.2013, 00:52  
artyomugr
Вид на жительство
 
Аватар для artyomugr
 
Регистрация: 05.04.2008
Адрес: Украина, Ахтырка
Сообщений: 302
Сказал спасибо: 148
Сказали Спасибо 31 раз(а) в 30 сообщении(ях)
artyomugr на пути к лучшему
По умолчанию Re: STM32F05x TIM6 IRQ

Исправил пару багов в конфигурации, б*я уже вроде точно все правильно! Но лыжи все равно не едут....

Код:
void Init_PWM(void)
{
	RCC-›APB1ENR |= RCC_APB1ENR_TIM14EN;
	TIM14-›PSC = 1000-1;
	TIM14-›ARR = 0x0000;
  GPIOA-›MODER |= 0x0000;
	GPIOA-›OSPEEDR |= 0x0000;
  GPIOA-›MODER |= 0x0200;
	GPIOA-›PUPDR |= 0x0000;
	GPIOB-›AFR[0] |= (1‹‹4);
 
	TIM14-›CR1 = 0x0001; // tim en
	TIM14-›DIER = 0x0000;
	TIM14-›SR = 0x0000;
	TIM14-›EGR = 0x0003;
	TIM14-›CCMR1 = 0x0060; // pwm mode
	TIM14-›CCER = 0x0001;	// capt/comp out enable
	TIM14-›OR = 0x0000;
}
Реклама:
artyomugr вне форума  
Непрочитано 14.11.2013, 02:12  
artyomugr
Вид на жительство
 
Аватар для artyomugr
 
Регистрация: 05.04.2008
Адрес: Украина, Ахтырка
Сообщений: 302
Сказал спасибо: 148
Сказали Спасибо 31 раз(а) в 30 сообщении(ях)
artyomugr на пути к лучшему
По умолчанию Re: STM32F05x TIM6 IRQ

Встал другой вопрос:

Почему ШИМ не сбрасывается?
Цитата:
TIM14-›CCR1=DATA;
if(++DATA›40000) DATA=0;
ШИМ дошел до максимума , и все...

Вопрос не снят... как то криво ШИМ работает....

[HTML]void Init_PWM(void)
{
RCC-›APB1ENR |= RCC_APB1ENR_TIM14EN;

/*Configure GPIO pin alternate function */
GPIO_PinAFConfig(GPIOA, GPIO_PinSource4, GPIO_AF_4);

//GPIOA-›OSPEEDR |= 0x0000;
GPIOA-›MODER |= 0x0200;
//GPIOA-›PUPDR |= 0x0000;
//GPIOB-›AFR[0] |= (1‹‹4);

//TIM14-›DIER |= 0x0000;
//TIM14-›EGR |= 0x0003;
TIM14-›CR1 |= 0x0080;
TIM14-›CCMR1 |= 0x0064; // pwm mode
TIM14-›ARR = 0x000F;
TIM14-›PSC = 0x000F;
TIM14-›CCER |= 0x0001; // capt/comp out enable
TIM14-›CR1 |= 0x0001; // tim en
}[/HTML]

Как включить альтернативную функцию не используя SPL ?
И как все таки правильно выставить регистры , и в какой последовательности их включить?
А то в нете статей вагон и все говнокодом по пахивают... в каждой статье по разному твердят.

Последний раз редактировалось artyomugr; 14.11.2013 в 02:27.
artyomugr вне форума  
Непрочитано 14.11.2013, 08:09  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: STM32F05x TIM6 IRQ

Сообщение от artyomugr Посмотреть сообщение
А зачем указатель множится? Или я чего не вкуриваю?
С Вашего кода получается: сдвинуть на 168 бит на 7 непонятно чего
И почему так: (7‹‹(24*7)) ?
Опечатка (7‹‹(4*7)).
Это я USART настраивал.
__________________
Осторожно , злой кот
dosikus вне форума  
Сказали "Спасибо" dosikus
artyomugr (14.11.2013)
Непрочитано 14.11.2013, 10:07  
artyomugr
Вид на жительство
 
Аватар для artyomugr
 
Регистрация: 05.04.2008
Адрес: Украина, Ахтырка
Сообщений: 302
Сказал спасибо: 148
Сказали Спасибо 31 раз(а) в 30 сообщении(ях)
artyomugr на пути к лучшему
По умолчанию Re: STM32F05x TIM6 IRQ

Сообщение от dosikus Посмотреть сообщение
Опечатка (7‹‹(4*7)).
А как его понимать? Сдвинуть на ячейку 28 и записать число 7 ? Или наоборот ?
artyomugr вне форума  
Непрочитано 14.11.2013, 10:48  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: STM32F05x TIM6 IRQ

artyomugr, Сдвигаем число 7 на 28 бит .

Сначала смотрим в даташит
Цитата:
Table 14. Alternate functions selected through GPIOA_AFR registers for port A
и
Цитата:
Table 15. Alternate functions selected through GPIOA_AFR registers for port B
Например нам нужен выхлоп TIM14 на PA7.
Находим в таблице TIM14_CH1 . Выводу PA7 соответствует AF4 .

Теперь переходи в RM на F051
8.4.9 GPIO alternate function low register (GPIOx_AFRL) (x = A..B)

Для того чтобы выбрать альтернативную функцию для PA7 нужно занести значение AF в соответствующую пину тетраду . Как определилсь выше нам нужна AF4 ее значение 0100: AF4

В итоге нам нужно установить в биты 28-31 значение 4
Имхо, так как регистр поделен на тетрады наглядней такая запись :
(uint32_t)( 4‹‹(4*7) ) где первая 4ка значение AF, 7ка - порядковый номер пина .

Но можно выдрать реализацию из SPL ...
Миниатюры:
Нажмите на изображение для увеличения
Название: af1.png
Просмотров: 63
Размер:	101.7 Кб
ID:	54735   Нажмите на изображение для увеличения
Название: 2013-11-14_103617.png
Просмотров: 64
Размер:	111.6 Кб
ID:	54736  
__________________
Осторожно , злой кот

Последний раз редактировалось dosikus; 14.11.2013 в 13:52.
dosikus вне форума  
Сказали "Спасибо" dosikus
artyomugr (14.11.2013)
Непрочитано 14.11.2013, 11:01  
artyomugr
Вид на жительство
 
Аватар для artyomugr
 
Регистрация: 05.04.2008
Адрес: Украина, Ахтырка
Сообщений: 302
Сказал спасибо: 148
Сказали Спасибо 31 раз(а) в 30 сообщении(ях)
artyomugr на пути к лучшему
По умолчанию Re: STM32F05x TIM6 IRQ

Так я так и обращаюсь....

GPIOA-›AFRL = 0x4000000;

выдает ошибку на AFRL

Я не вкурю что то все равно...

GPIOA-›AFR[0] = 4‹‹(4*7);

Мне так активировать альтернативную функцию?

PS: Спасибо большое за то что возитесь со мной! Форум отличный! И люди приветливые! Ребятки так держать!
artyomugr вне форума  
Непрочитано 14.11.2013, 11:01  
artyomugr
Вид на жительство
 
Аватар для artyomugr
 
Регистрация: 05.04.2008
Адрес: Украина, Ахтырка
Сообщений: 302
Сказал спасибо: 148
Сказали Спасибо 31 раз(а) в 30 сообщении(ях)
artyomugr на пути к лучшему
По умолчанию Re: STM32F05x TIM6 IRQ

GPIOA-›AFR[0] = 4‹‹(4*7); // я такой конструкции еще не встречал...
artyomugr вне форума  
Непрочитано 14.11.2013, 11:13  
artyomugr
Вид на жительство
 
Аватар для artyomugr
 
Регистрация: 05.04.2008
Адрес: Украина, Ахтырка
Сообщений: 302
Сказал спасибо: 148
Сказали Спасибо 31 раз(а) в 30 сообщении(ях)
artyomugr на пути к лучшему
По умолчанию Re: STM32F05x TIM6 IRQ

Сделал так:

Цитата:
void Init_PWM(void)
{
RCC-›APB1ENR |= RCC_APB1ENR_TIM14EN;


GPIOA-›AFR[0] = 4‹‹(4*7);

GPIOA-›MODER |= 0x0200;

TIM14-›CR1 |= 0x0080;
TIM14-›CCMR1 |= 0x0064; // pwm mode
TIM14-›ARR = 0x000F;
TIM14-›PSC = 0x000F;
TIM14-›CCER |= 0x0001; // capt/comp out enable
TIM14-›CR1 |= 0x0001; // tim en
}
Не запускается вообще... ШИМа нету.
artyomugr вне форума  
Непрочитано 14.11.2013, 13:25  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: STM32F05x TIM6 IRQ

artyomugr, Смотри, я AF настраивал на PA7 , а у тебя на PA4 вроде было.
В итоге (uint32_t)(4‹‹(4*4))
__________________
Осторожно , злой кот

Последний раз редактировалось dosikus; 14.11.2013 в 13:52.
dosikus вне форума  
Непрочитано 14.11.2013, 17:55  
nahimovv
Заблокирован
 
Регистрация: 25.04.2013
Сообщений: 1,431
Сказал спасибо: 0
Сказали Спасибо 385 раз(а) в 254 сообщении(ях)
nahimovv на пути к лучшему
По умолчанию Re: STM32F05x TIM6 IRQ

Сообщение от artyomugr Посмотреть сообщение
Не запускается вообще... ШИМа нету.
И не будет! Не надо гадать на битах в регистрах, надо даташит почитать.
Нет настройки регистра TIM14-›CCR1 и установки бита TIM_BDTR_MOE.
Код:
void GPIO_PinAFConfig(GPIO_TypeDef* GPIOx, uint16_t GPIO_PinSource, uint8_t GPIO_AF)
{
  uint32_t temp = 0x00;
  uint32_t temp_2 = 0x00;
    
  temp = ((uint32_t)(GPIO_AF) ‹‹ ((uint32_t)((uint32_t)GPIO_PinSource & (uint32_t)0x07) * 4)) ;
  GPIOx-›AFR[GPIO_PinSource ›› 0x03] &= ~((uint32_t)0xF ‹‹ ((uint32_t)((uint32_t)GPIO_PinSource & (uint32_t)0x07) * 4)) ;
  temp_2 = GPIOx-›AFR[GPIO_PinSource ›› 0x03] | temp;
  GPIOx-›AFR[GPIO_PinSource ›› 0x03] = temp_2;
    
//    GPIO_PinAFConfig(GPIOA, 13, 5);    
}

//==================================================  ============================
void Init_TIM14(void)
{
RCC-›AHBENR |= RCC_AHBENR_GPIOAEN;
    
GPIOA-›MODER |= (GPIO_MODER_MODER4_1);
GPIOA-›OSPEEDR |= (GPIO_OSPEEDER_OSPEEDR4);
    
GPIO_PinAFConfig(GPIOA, 4, 4);

    
RCC-›APB1ENR |= RCC_APB1ENR_TIM14EN;           // TIM14 clock enable
    
TIM14-›PSC = 0x000F;   
TIM14-›ARR = 0x000F;   
TIM14-›CCR1 = 0x000F;                          // Pulse_Output = ARR - CCR1
    
TIM14-›CCMR1 |= TIM_CCMR1_OC1M_2 | TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC1FE;   // PWM Mode1
   
TIM14-›CCER |= TIM_CCER_CC1E;
TIM14-›BDTR |= TIM_BDTR_MOE;    
    
TIM14-›CR1   |= TIM_CR1_CEN;                   // Counter Enable    

}
nahimovv вне форума  
Сказали "Спасибо" nahimovv
artyomugr (15.11.2013)
 

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

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

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

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

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


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


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