-

Committer:
calmantara186
Date:
Wed Apr 10 19:48:18 2019 +0000
Revision:
0:1c05321d03a4
external encoder;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
calmantara186 0:1c05321d03a4 1 #include "mbed.h"
calmantara186 0:1c05321d03a4 2
calmantara186 0:1c05321d03a4 3 void EncoderInit(TIM_Encoder_InitTypeDef * encoder, TIM_HandleTypeDef * timer, TIM_TypeDef * TIMx, uint32_t maxcount, uint32_t encmode)
calmantara186 0:1c05321d03a4 4 {
calmantara186 0:1c05321d03a4 5
calmantara186 0:1c05321d03a4 6 timer->Instance = TIMx;
calmantara186 0:1c05321d03a4 7 timer->Init.Period = maxcount;
calmantara186 0:1c05321d03a4 8 timer->Init.CounterMode = TIM_COUNTERMODE_UP;
calmantara186 0:1c05321d03a4 9 timer->Init.Prescaler = 0;
calmantara186 0:1c05321d03a4 10 timer->Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
calmantara186 0:1c05321d03a4 11
calmantara186 0:1c05321d03a4 12 encoder->EncoderMode = encmode;
calmantara186 0:1c05321d03a4 13
calmantara186 0:1c05321d03a4 14 encoder->IC1Filter = 0x0F;
calmantara186 0:1c05321d03a4 15 encoder->IC1Polarity = TIM_INPUTCHANNELPOLARITY_RISING;
calmantara186 0:1c05321d03a4 16 encoder->IC1Prescaler = TIM_ICPSC_DIV4;
calmantara186 0:1c05321d03a4 17 encoder->IC1Selection = TIM_ICSELECTION_DIRECTTI;
calmantara186 0:1c05321d03a4 18
calmantara186 0:1c05321d03a4 19 encoder->IC2Filter = 0x0F;
calmantara186 0:1c05321d03a4 20 encoder->IC2Polarity = TIM_INPUTCHANNELPOLARITY_FALLING;
calmantara186 0:1c05321d03a4 21 encoder->IC2Prescaler = TIM_ICPSC_DIV4;
calmantara186 0:1c05321d03a4 22 encoder->IC2Selection = TIM_ICSELECTION_DIRECTTI;
calmantara186 0:1c05321d03a4 23
calmantara186 0:1c05321d03a4 24
calmantara186 0:1c05321d03a4 25 if (HAL_TIM_Encoder_Init(timer, encoder) != HAL_OK) {
calmantara186 0:1c05321d03a4 26 printf("Couldn't Init Encoder\r\n");
calmantara186 0:1c05321d03a4 27 while (1) {}
calmantara186 0:1c05321d03a4 28 }
calmantara186 0:1c05321d03a4 29
calmantara186 0:1c05321d03a4 30 if(HAL_TIM_Encoder_Start(timer,TIM_CHANNEL_1)!=HAL_OK) {
calmantara186 0:1c05321d03a4 31 printf("Couldn't Start Encoder\r\n");
calmantara186 0:1c05321d03a4 32 while (1) {}
calmantara186 0:1c05321d03a4 33 }
calmantara186 0:1c05321d03a4 34 }
calmantara186 0:1c05321d03a4 35
calmantara186 0:1c05321d03a4 36