智能车制作
标题:
输入捕捉程序配置问题求指教
[打印本页]
作者:
GVC
时间:
2014-7-16 22:10
标题:
输入捕捉程序配置问题求指教
void FTM_Input_init( Input_cfg cfg)
{
// Input_cfg 输入捕捉配置(Rising、Falling、Rising_or_Falling)上升沿捕捉、下降沿捕捉、跳变沿捕捉
SIM_SCGC6 |= SIM_SCGC6_FTM0_MASK; //使能FTM1时钟
SIM_SCGC5 |= SIM_SCGC5_PORTC_MASK; PORTC_PCR1= PORT_PCR_MUX(3)|PORT_PCR_DSE_MASK; // PTC1
/******************* 设置为输入捕捉功能 *******************/
switch(cfg)
{
case Rising: //上升沿触发
FTM0_C0SC |= ( FTM_CnSC_ELSA_MASK | FTM_CnSC_CHIE_MASK ); //置1
FTM0_C0SC &= ~( FTM_CnSC_ELSB_MASK | FTM_CnSC_MSB_MASK | FTM_CnSC_MSA_MASK); //清0
break;
case Falling: //下降沿触发
FTM0_C0SC |= (FTM_CnSC_ELSB_MASK | FTM_CnSC_CHIE_MASK ); //置1
FTM0_C0SC &= ~( FTM_CnSC_ELSA_MASK | FTM_CnSC_MSB_MASK | FTM_CnSC_MSA_MASK); //清0
break;
case Rising_or_Falling: //上升沿、下降沿都触发
FTM0_C0SC |= ( FTM_CnSC_ELSB_MASK | FTM_CnSC_ELSA_MASK | FTM_CnSC_CHIE_MASK ); //置1
FTM0_C0SC &= ~( FTM_CnSC_MSB_MASK | FTM_CnSC_MSA_MASK); //清0
break;
}
FTM0_SC = FTM_SC_CLKS(0x1); //系统时钟
FTM0_MODE |= FTM_MODE_WPDIS_MASK;
FTM0_COMBINE = 0;
FTM0_MODE &= ~FTM_MODE_FTMEN_MASK;
FTM0_CNTIN = 0;
FTM0_STATUS = 0x00; //清中断标志位
//开启输入捕捉中断
Enable_IRQ(FTM0_ISR_NUM);
}
void FTM0_IRQHandler()
{
uint8 s= FTM2_STATUS; //读取捕捉和比较状态
FTM0_STATUS = 0x00; //清中断标志位
if(s&1<<0)
{FTM0_IRQ_DIS(0); //禁止输入捕捉中断
pwmtest++; //计数+1
FTM0_IRQ_EN(0);}
输入捕捉程序配置完成,但无法捕捉到输入的pwm波,串口发送回来的计数值一直为零,程序按照蓝宙例程修改,不知有何问题,求各路大神指教,拜托了。
欢迎光临 智能车制作 (http://111.231.132.190/)
Powered by Discuz! X3.2