13.11.2013, 19:32
|
|
Вид на жительство
Регистрация: 05.04.2008
Адрес: Украина, Ахтырка
Сообщений: 302
Сказал спасибо: 148
Сказали Спасибо 31 раз(а) в 30 сообщении(ях)
|
Re: STM32F05x TIM6 IRQ
Стоп-стоп , а можно подробнее?
|
|
|
|
13.11.2013, 19:38
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Re: STM32F05x TIM6 IRQ
Сообщение от artyomugr
|
Стоп-стоп , а можно подробнее?
|
У Паши клин на визардо_облегчалках, все никак не отучим.
Не нужны они .
Учись читать и понимать даташит , сие намного пользительней.
__________________
Осторожно , злой кот
|
|
|
|
13.11.2013, 19:39
|
|
Вид на жительство
Регистрация: 05.04.2008
Адрес: Украина, Ахтырка
Сообщений: 302
Сказал спасибо: 148
Сказали Спасибо 31 раз(а) в 30 сообщении(ях)
|
Да вот сижу сейчас читаю... скачал 20 стр. по ШИМу стм32 только 14 таймер.
Как я понял , он единственный имеет 1 вых. ШИМа
Последний раз редактировалось dosikus; 13.11.2013 в 19:52.
|
|
|
|
13.11.2013, 19:43
|
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
|
Re: STM32F05x TIM6 IRQ
Сообщение от dosikus
|
У Паши клин на визардо_облегчалках, все никак не отучим.
Не нужны они .
Учись читать и понимать даташит , сие намного пользительней.
|
Я уже объяснял, что на стадии инитиализации я код не экономлю. Важнее наглядность.
|
|
|
|
13.11.2013, 20:00
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
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.
|
|
|
|
13.11.2013, 20:04
|
|
Вид на жительство
Регистрация: 05.04.2008
Адрес: Украина, Ахтырка
Сообщений: 302
Сказал спасибо: 148
Сказали Спасибо 31 раз(а) в 30 сообщении(ях)
|
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;
}
Так, вроде правильно настроил регистры. Что я мог еще забыть?
Где в даташите описано включение тактирования , вкл. альтернативной функции (чтоб ШИМ активировать на ножке) ?
|
|
|
|
13.11.2013, 20:06
|
|
Вид на жительство
Регистрация: 05.04.2008
Адрес: Украина, Ахтырка
Сообщений: 302
Сказал спасибо: 148
Сказали Спасибо 31 раз(а) в 30 сообщении(ях)
|
Re: STM32F05x TIM6 IRQ
Все таки , лучше напрямую с регистрами работать - меньше геморроя с пониманием будет. Еще с АВРками так привык работать
|
|
|
|
13.11.2013, 20:10
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
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
|
|
|
13.11.2013, 20:48
|
|
Вид на жительство
Регистрация: 05.04.2008
Адрес: Украина, Ахтырка
Сообщений: 302
Сказал спасибо: 148
Сказали Спасибо 31 раз(а) в 30 сообщении(ях)
|
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"
|
В чем прикол ?
|
|
|
|
13.11.2013, 21:11
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Re: STM32F05x TIM6 IRQ
Сообщение от artyomugr
|
В чем прикол ?
|
Прикол в том что они объявлены массивом .
И работать с ними примерно так :
Код:
|
GPIOB-›AFR[0] |= (7‹‹(24*7))|(7‹‹(4*6)); // AF7 for PB6 & PB7 |
__________________
Осторожно , злой кот
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 21:20.
|
|