Timer 2 encoder mode not working on mikroc

General discussion on mikroC PRO for ARM.
Post Reply
Author
Message
shahzad.raza
Posts: 1
Joined: 23 Apr 2020 10:48

Timer 2 encoder mode not working on mikroc

#1 Post by shahzad.raza » 23 Apr 2020 10:56

I am trying to program the timer2 encoder mode to count the no. of pulses of motor, but the SR and CNT value is not changing.
Following is my code:

unsigned int CNT =0;

char txt[50];




void InitTimer2(){





RCC_APB1ENR.TIM2EN = 1;
delay_ms(10);

TIM2_CR1bits.CEN = 0;
delay_ms(10);

TIM2_SMCRbits.SMS = 0b011;
delay_ms(10);


TIM2_CCERbits.CC1P=0;
delay_ms(10);

TIM2_CCERbits.CC2P=0;
delay_ms(10);

TIM2_PSC = 0x0000;
delay_ms(10);

TIM2_ARR = 0xFFFF;
delay_ms(10);


TIM2_CCMR1Obits.CC1S = 0b01;
delay_ms(10);

TIM2_CCMR1Obits.CC2S = 0b01;
delay_ms(10);

TIM2_CCMR1Obits.OC1M = 0b010;
delay_ms(10);

TIM2_CCMR1Obits.OC2M = 0b010;
delay_ms(10);

TIM2_CCMR1Obits.OC1CE = 1;
delay_ms(10);

TIM2_CCMR1Obits.OC2CE = 1;
delay_ms(10);

TIM2_DMAR = 0x0001;
delay_ms(10);

TIM2_CR1bits.CEN = 1;
delay_ms(10);


}



void main() {

UART2_Init(9600);
Delay_us(100);



GPIO_Config(&GPIOA_BASE,_GPIO_PINMASK_0 | _GPIO_PINMASK_1,_GPIO_CFG_MODE_INPUT | _GPIO_CFG_PULL_UP);

InitTimer2();





while(1) // Infinite loop

{

CNT = TIM2_CR1;
delay_ms(100);

IntToStr(CNT, txt);

UART2_Write_Text(txt);
delay_ms(100);
}
}

Post Reply

Return to “mikroC PRO for ARM General”