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

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

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

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

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

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


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

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

Сообщение от artyomugr Посмотреть сообщение
Стоп-стоп , а можно подробнее?
У Паши клин на визардо_облегчалках, все никак не отучим.
Не нужны они .
Учись читать и понимать даташит , сие намного пользительней.
__________________
Осторожно , злой кот
dosikus вне форума  
Непрочитано 13.11.2013, 19:39  
artyomugr
Вид на жительство
 
Аватар для artyomugr
 
Регистрация: 05.04.2008
Адрес: Украина, Ахтырка
Сообщений: 302
Сказал спасибо: 148
Сказали Спасибо 31 раз(а) в 30 сообщении(ях)
artyomugr на пути к лучшему
По умолчанию

Да вот сижу сейчас читаю... скачал 20 стр. по ШИМу стм32 только 14 таймер.

Как я понял , он единственный имеет 1 вых. ШИМа

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

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

Сообщение от Easyrider83 Посмотреть сообщение
Важнее наглядность.
О наглядности .
Изобрази сие на SPL .
И уверяй меня потом что на SPL наглядней...
PHP код:
void TIMER_Configuration(void)
{
    

    
u32 TimerPeriod 0;
    
u16 Channel1Pulse 0Channel2Pulse 0Channel3Pulse 0;

  
  
GPIOA-›CRH &= ~(GPIO_CRH_CNF8_0 |GPIO_CRH_MODE8_0);
  
GPIOA-›CRH |= GPIO_CRH_CNF8_1 GPIO_CRH_MODE8_1 ;

  
  
GPIOA-›CRL &= ~(GPIO_CRL_CNF1_0 |GPIO_CRL_CNF7_0 |GPIO_CRL_MODE7_0 GPIO_CRL_MODE1_0 );
  
GPIOA-›CRL |= GPIO_CRL_CNF1_1 |GPIO_CRL_CNF7_1 |GPIO_CRL_MODE7_1 GPIO_CRL_MODE1_1;
  
  

    
TimerPeriod 2048;
    
Channel1Pulse 144;        /* HSYNC */
    
Channel2Pulse 352;         /* HSYNC + BACK PORCH */
    

  
  
TIM1-›CR1 0;                 // TIM_CounterMode_Up TIM_ClockDivision
  
TIM1-›ARR TimerPeriod;
  
TIM1-›PSC 0;                  // TIM_Prescaler 
  
TIM1-›RCR 0;                 //TIM_RepetitionCounter
  
TIM1-›EGR TIM_EGR_UG //TIM_PSCReloadMode_Immediate;
  
 
  
  
TIM_OCNPolarity_High
    TIM1
-›CCER &= (uint16_t)~(TIM_CCER_CC1P TIM_CCER_CC1NP |TIM_CCER_CC1NE);
    
TIM1-›CCER |= TIM_CCER_CC1P |TIM_CCER_CC1E |TIM_CCER_CC1NE 
       
         
    
TIM1-›CCMR1 &= (uint16_t)~(TIM_CCMR1_OC1M |TIM_CCMR1_CC1S);
    
TIM1-›CCMR1 |= TIM_CCMR1_OC1M ;         //TIM_OCMode_PWM2
    
TIM1-›CCR1Channel1Pulse;
    
TIM1-›CR2 &= (uint16_t)(~(TIM_CR2_OIS1 TIM_CR2_OIS1N)); 
    
//TIM1-›CR2 |= TIM_CR2_OIS1N; //TIM_OCIdleState_Reset  TIM_OCNIdleState_Set   
    
TIM1-›CR2 |= TIM_CR2_OIS1//TIM_OCIdleState_Reset  TIM_OCNIdleState_Set
  //---------------------------------------------  
  //++++++++++++++++++++++++++++++++++++++++++++
  
  
TIM1-›CCMR1 &= (uint16_t)~(TIM_CCMR1_OC2M |TIM_CCMR1_CC2S); 
  
TIM1-›CCMR1 |= TIM_CCMR1_OC2M_1 // TIM_OCMode_Inactive
  
TIM1-›CCER |= (uint16_t)(TIM_CCER_CC2P TIM_CCER_CC2E TIM_CCER_CC2NE);
  
TIM1-›CR2&= (uint16_t)~(TIM_CR2_OIS2 |TIM_CR2_OIS2N);
  
TIM1-›CR2|= (uint16_t)TIM_CR2_OIS2 ;
  
TIM1-›CCR2 Channel2Pulse;


  
//+++++++++++++++++++++++++++++++++++++++++++++
 

    /* TIM1 counter enable and output enable */
  
TIM1-›BDTR |= TIM_BDTR_MOE;
  
  
/* Select TIM1 as Master */
  
TIM1-›SMCR |= TIM_SMCR_MSM //TIM_MasterSlaveMode_Enable)
  
TIM1-›CR2 &= (uint16_t)~TIM_CR2_MMS
  
TIM1-›CR2 |=  TIM_CR2_MMS_1//TIM_TRGOSource_Update
  
TIM2-›SMCR &= (uint16_t)~TIM_SMCR_SMS
  
TIM2-›SMCR |= TIM_SMCR_SMS_2 |TIM_SMCR_SMS_0 // TIM_SlaveMode_Gated 
  
TIM2-›SMCR &= (uint16_t)(~TIM_SMCR_TS); //  TIM_TS_ITR0

    
    
TimerPeriod 625;        /* Vertical lines */
    
Channel2Pulse 2;        /* Sync pulse */
    
Channel3Pulse 24;        /* Sync pulse + Back porch */
  
   
  
TIM2-›CR1 0;                  // TIM_CounterMode_Up TIM_ClockDivision
  
TIM2-›ARR TimerPeriod;
  
TIM2-›PSC 0;                  // TIM_Prescaler 
  
TIM2-›RCR 0;                  //TIM_RepetitionCounter
  
TIM2-›EGR TIM_EGR_UG ;        //TIM_PSCReloadMode_Immediate;
  
   
TIM_OCNPolarity_High
  TIM2
-›CCER &= (uint16_t)~(TIM_CCER_CC1P TIM_CCER_CC1E);
  
TIM2-›CCER |= TIM_CCER_CC2P |TIM_CCER_CC2E  ;       
  
TIM2-›CCMR1 &= (uint16_t)~(TIM_CCMR1_OC1M |TIM_CCMR1_CC1S);
  
TIM2-›CCMR1 |= TIM_CCMR1_OC2M ;         //TIM_OCMode_PWM2
  
TIM2-›CCR2Channel2Pulse;
  
TIM2-›CCMR2 &= (uint16_t)~(TIM_CCMR2_OC3M |TIM_CCMR2_CC3S);
  
TIM2-›CCMR2 TIM_CCMR2_OC3M_1;
  
TIM2-›CCER &= (uint16_t)~(TIM_CCER_CC3E TIM_CCER_CC3P);
  
TIM2-›CCR3 Channel3Pulse;
  
//-------------------------------------------

    /*    TIM2 counter enable and output enable */
    
   
TIM2-›BDTR |= TIM_BDTR_MOE;
  

    
/* Interrupt TIM2 */

  
NVIC_SetPriority(TIM2_IRQn1);
  
NVIC_EnableIRQ(TIM2_IRQn);
    
  
TIM2-›DIER |= TIM_DIER_CC3IE;
  
    
NVIC_SetPriority(TIM1_CC_IRQn1);
  
NVIC_EnableIRQ(TIM1_CC_IRQn);
  
    
TIM1-›DIER |= TIM_DIER_CC2IE;
  
TIM2-›CR1 |= TIM_CR1_CEN;
  
TIM1-›CR1 |= TIM_CR1_CEN;
   
}

void SPI_Configuration(void)
{
        
   
SPI1-›CR1 &= ~SPI_CR1_SPE;
  
DMA1_Channel3-›CCR &= (uint16_t)(~DMA_CCR1_EN);
  
DMA1_Channel3-›CCR  0;
  
DMA1_Channel3-›CNDTR 0;
  
DMA1_Channel3-›CPAR  0;
  
DMA1_Channel3-›CMAR 0;
  
DMA1_Channel3-›CCR &= (uint32_t)0xFFFF800F;  
  
DMA1_Channel3-›CCR|= (uint32_t)(DMA_CCR3_DIR DMA_CCR3_MINC);
  
DMA1_Channel3-›CNDTR VTOTAL;
  
DMA1_Channel3-›CPAR = (uint32_t)&SPI1-›DR;
  
DMA1_Channel3-›CMAR = (u32) &fb[0][0];
  
  
  
NVIC_SetPriority(DMA1_Channel3_IRQn0);
  
NVIC_EnableIRQ(DMA1_Channel3_IRQn);
  
DMA1_Channel3-›CCR |= DMA_CCR3_TCIE;
//+++++++++++++++++++++++++++++++++++++++++++++  

 
  
SPI1-›CR1 |= (uint16_t)( 
                                       
SPI_CR1_BIDIOE |
                                       
SPI_CR1_BIDIMODE |
                                       
SPI_CR1_SSI |  
                                       
SPI_CR1_MSTR |                              
                                       
SPI_CR1_CPHA |
                                       
SPI_CR1_SSM |  
                                       
SPI_CR1_BR_0 
                                      
);
 
  
  
  
SPI1-›I2SCFGR &= ~SPI_I2SCFGR_I2SMOD;        
  
SPI1-›CRCPR 7;

  
//   //**************************************

  
SPI1-›CR1 &=~SPI_CR1_CRCEN;
    
SPI1-›CR1 |= SPI_CR1_SPE;
  
  
    
SPI1-›CR2 |=(uint16_tSPI_CR2_TXDMAEN;
 

__________________
Осторожно , злой кот

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

void Init_PWM(void)
{
TIM14-›CR1 = 0x0000;
TIM14-›DIER = 0x0000;
TIM14-›SR = 0x0000;
TIM14-›EGR = 0x0003;
TIM14-›CCMR1 = 0x0070;
TIM14-›CCER = 0x0001; // capt/comp out enable
TIM14-›PSC = 0x000F;
TIM14-›ARR = 0x000F;
TIM14-›OR = 0x0000;
}

Так, вроде правильно настроил регистры. Что я мог еще забыть?
Где в даташите описано включение тактирования , вкл. альтернативной функции (чтоб ШИМ активировать на ножке) ?
artyomugr вне форума  
Непрочитано 13.11.2013, 20:06  
artyomugr
Вид на жительство
 
Аватар для artyomugr
 
Регистрация: 05.04.2008
Адрес: Украина, Ахтырка
Сообщений: 302
Сказал спасибо: 148
Сказали Спасибо 31 раз(а) в 30 сообщении(ях)
artyomugr на пути к лучшему
По умолчанию Re: STM32F05x TIM6 IRQ

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

Сообщение от artyomugr Посмотреть сообщение
Где в даташите описано включение тактирования , вкл. альтернативной функции (чтоб ШИМ активировать на ножке) ?
Паша путает, F0x не F103 в нем нет AFIO .
см.
Цитата:
8.4.9 GPIO alternate function low register (GPIOx_AFRL) (x = A..B)
и
Цитата:
8.4.10 GPIO alternate function high register (GPIOx_AFRH) (x = A..B)
стр 134 RM 0091
__________________
Осторожно , злой кот
dosikus вне форума  
Сказали "Спасибо" dosikus
artyomugr (13.11.2013)
Непрочитано 13.11.2013, 20:48  
artyomugr
Вид на жительство
 
Аватар для artyomugr
 
Регистрация: 05.04.2008
Адрес: Украина, Ахтырка
Сообщений: 302
Сказал спасибо: 148
Сказали Спасибо 31 раз(а) в 30 сообщении(ях)
artyomugr на пути к лучшему
По умолчанию Re: STM32F05x TIM6 IRQ

Что то компилятор спотыкается на этих строках:

Цитата:
void Init_PWM(void)
{
GPIOA-›MODER = 0x0200;
GPIOA-›OSPEEDR = 0x0300;
GPIOA-›AFRL = 0x0400;
GPIOA-›AFRH = 0x0400;


TIM14-›CR1 = 0x0000;
TIM14-›DIER = 0x0000;
TIM14-›SR = 0x0000;
TIM14-›EGR = 0x0003;
TIM14-›CCMR1 = 0x0070;
TIM14-›CCER = 0x0001; // capt/comp out enable
TIM14-›PSC = 0x000F;
TIM14-›ARR = 0x000F;
TIM14-›OR = 0x0000;
}
Цитата:
..\Source\init_main.c(2: error: #136: struct "‹unnamed›" has no field "AFRH"
В чем прикол ?
artyomugr вне форума  
Непрочитано 13.11.2013, 21:11  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: STM32F05x TIM6 IRQ

Сообщение от artyomugr Посмотреть сообщение
В чем прикол ?
Прикол в том что они объявлены массивом .
И работать с ними примерно так :
Код:
GPIOB-›AFR[0] |= (7‹‹(24*7))|(7‹‹(4*6)); // AF7 for  PB6 & PB7
__________________
Осторожно , злой кот
dosikus вне форума  
 

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

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

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

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

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


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


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