куда копать?...=))
инициализация:
Код: Выделить всё
void InitAll(void)
{
RCC->AHBENR |= RCC_AHBENR_GPIOBEN;
RCC->AHBENR |= RCC_AHBENR_GPIOCEN ;
RCC->APB1ENR |= RCC_APB1ENR_TIM2EN;
TIM2->PSC = 150;
TIM2->ARR = 99;
TIM2->CCR4 = 0;
TIM2->CCR3 = 0;
RCC->APB1ENR |= RCC_APB1ENR_TIM3EN;
TIM3->CNT = 546;
TIM3->PSC = 150;
TIM3->ARR = 99;
TIM3->CCR3 = 0;
TIM2->CCMR2 |= TIM_CCMR2_OC4M_0; //| TIM_CCMR2_OC4FE | TIM_CCMR2_OC4PE);//TIM_CCMR2_OC4M_1 |
TIM2->CCMR2 |= TIM_CCMR2_OC3M_0; //| TIM_CCMR2_OC3FE | TIM_CCMR2_OC3PE); //TIM_CCMR2_OC3M_1 |
TIM2->CCER |= (TIM_CCER_CC4E | TIM_CCER_CC3E);
TIM2->DIER |= TIM_DIER_CC4IE;
TIM3->CCMR2 |= (TIM_CCMR2_OC3M_0 | TIM_CCMR2_OC3FE | TIM_CCMR2_OC3PE);
TIM3->CCER |= ( TIM_CCER_CC3E);
TIM3->DIER |= TIM_DIER_CC3IE;
GPIOB->MODER |=GPIO_MODER_MODER7_0;
GPIOC->MODER |=GPIO_MODER_MODER8_1;
GPIOC->AFR[1] |= 0x2;
GPIOB->MODER |=GPIO_MODER_MODER10_1; // êîíôèãóðèðóåì ïîðòû íà âûõîä //!!!!!!!!!!!1
GPIOB->MODER |=GPIO_MODER_MODER11_1;
GPIOB->AFR[1] |= 0x1000 | 0x100;
TIM2->CR1 |= (TIM_CR1_CEN | TIM_CR1_ARPE);
TIM3->CR1 |= (TIM_CR1_CEN | TIM_CR1_ARPE);
NVIC_EnableIRQ(TIM2_IRQn);
NVIC_EnableIRQ(TIM3_IRQn);
return;
}
Код: Выделить всё
void TIM3_IRQHandler(void){
TIM3->SR &= ~TIM_SR_CC3IF ;
cnt2++;
TIM3->CCMR2 &= ~0x10;
TIM3->CCMR2 |= 0x20;
if(cnt2==1000){
TIM3->CCMR2 ^= 0x30;
cnt2=0;
}
}
void TIM2_IRQHandler(void){
if(TIM2->SR & TIM_SR_CC4IF){
TIM2->SR &= ~TIM_SR_CC4IF ;
cnt++;
TIM2->CCMR2 &= ~0x1000;
TIM2->CCMR2 |= 0x2000;
TIM2->CCMR2 ^= 0x30;
if(cnt==1000){
TIM2->CCMR2 ^= 0x3000;
cnt=0;
}
}
if (TIM2->SR & TIM_SR_CC2IF){
TIM2->SR &= ~TIM_SR_CC2IF;
if(cnt==999){
GPIOB->ODR^=(GPIO_ODR_ODR_6 | GPIO_ODR_ODR_7 );
}
}
}
