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

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

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

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

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

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


 
Опции темы

STM32F05x TIM6 IRQ

Непрочитано 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
Сообщений: 9,979
Сказал спасибо: 928
Сказали Спасибо 2,261 раз(а) в 1,557 сообщении(ях)
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,821
Сказал спасибо: 919
Сказали Спасибо 4,289 раз(а) в 2,570 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: STM32F05x TIM6 IRQ

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

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

    u32 TimerPeriod = 0;
    u16 Channel1Pulse = 0, Channel2Pulse = 0, Channel3Pulse = 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-›CCR1= Channel1Pulse;
    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-›CCR2= Channel2Pulse;
  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_IRQn, 1);
  NVIC_EnableIRQ(TIM2_IRQn);
    
  TIM2-›DIER |= TIM_DIER_CC3IE;
  
    NVIC_SetPriority(TIM1_CC_IRQn, 1);
  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_IRQn, 0);
  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_t) SPI_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
Сообщений: 9,979
Сказал спасибо: 928
Сказали Спасибо 2,261 раз(а) в 1,557 сообщении(ях)
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
Сообщений: 9,979
Сказал спасибо: 928
Сказали Спасибо 2,261 раз(а) в 1,557 сообщении(ях)
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, время: 20:56.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.