初级会员

- 积分
- 67
- 金钱
- 67
- 注册时间
- 2014-8-3
- 在线时间
- 0 小时
|

楼主 |
发表于 2015-7-6 18:39:51
|
显示全部楼层
#include "timer.h"
void TIM4_Cap_Init(u16 arr,u16 psc)
{
RCC->APB1ENR|=1<<2; //TIM4 ?±??????
RCC->APB2ENR|=1<<3; //????PORTB?±??
GPIOB->CRL&=0XF0FFFFFF; //PB6 ???????°?è??
GPIOB->CRL|=0X08000000; //PB6 ????
GPIOB->ODR|=0<<0; //PB6 ????
TIM4->ARR=arr; //?è?¨?????÷×?????×°??
TIM4-> SC=psc; //?¤·????÷
TIM4->CCMR1|=1<<0; //CC1S=01 ?????????? IC1??????TI1??
TIM4->CCMR1|=0<<4; //IC1F=0000 ???????????¨?÷ ?????¨
TIM4->CCMR1|=0<<10; //IC2PS=00 ????????·???,??·???
TIM4->CCER|=0<<1; //CC1P=0 ??????????
TIM4->CCER|=1<<0; //CC1E=1 ???í?????????÷???????????????÷??
TIM4->DIER|=1<<1; //???í????????
TIM4->DIER|=1<<0; //???í?ü??????
TIM4->CR1|=0x01; //?????¨?±?÷4
MY_NVIC_Init(2,0,TIM4_IRQn,2);//????2??×???????0??×é2
}
//????×???
//[7]:0,??????????????;1,??????????????.
//[6]:0,????????????????;1,??????????????????.
//[5:0]:???????????ó??????????
u8 TIM4CH1_CAPTURE_STA=0; //????????×???
u16 TIM4CH1_CAPTURE_VAL; //??????????
//?¨?±?÷5????·??????ò
void TIM4_IRQHandler(void)
{
u16 tsr;
tsr=TIM4->SR;
if((TIM4CH1_CAPTURE_STA&0X80)==0)//????????????
{
if(tsr&0X01)//????
{
if(TIM4CH1_CAPTURE_STA&0X40)//??????????????????
{
if((TIM4CH1_CAPTURE_STA&0X3F)==0X3F)//?????????¤??
{
TIM4CH1_CAPTURE_STA|=0X80;//±ê????????????????
TIM4CH1_CAPTURE_VAL=0XFFFF;
}else TIM4CH1_CAPTURE_STA++;
}
}
if(tsr&0x02)//????1·??ú????????
{
if(TIM4CH1_CAPTURE_STA&0X40) //????????????????
{
TIM4CH1_CAPTURE_STA|=0X80; //±ê?????????????????????????í
TIM4CH1_CAPTURE_VAL=TIM4->CCR1; //?????±?°????????.
TIM4->CCER&=~(1<<1); //CC1P=0 ?è??????????????
}else //????????,????????????????
{
TIM4CH1_CAPTURE_STA=0; //????
TIM4CH1_CAPTURE_VAL=0;
TIM4CH1_CAPTURE_STA|=0X40; //±ê????????????????
TIM4->CNT=0; //?????÷????
TIM4->CCER|=1<<1; //CC1P=1 ?è??????????????
}
}
}
TIM4->SR=0;//????????±ê????
} |
|