智能车制作
标题:
输入捕捉求指教
[打印本页]
作者:
GVC
时间:
2014-7-15 21:27
标题:
输入捕捉求指教
void FTM_Input_init( CHn ch, Input_cfg cfg)
{//注:CHn 通道号(CH0~CH7)
// Input_cfg 输入捕捉配置(Rising、Falling、Rising_or_Falling)上升沿捕捉、下降沿捕捉、跳变沿捕捉
SIM_SCGC6 |= SIM_SCGC6_FTM0_MASK; //使能FTM1时钟
SIM_SCGC5 |= SIM_SCGC5_PORTC_MASK;//PC0
/******************* 设置为输入捕捉功能 *******************/
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 = FTM0_STATUS; //读取捕捉和比较状态
uint8 CHn;
FTM0_STATUS = 0x00; //清中断标志位
CHn = 0;
if( s & (1 << CHn) )
{
FTM0_IRQ_DIS(0); //禁止输入捕捉中断
pwmtest++; //计数+1
FTM0_IRQ_EN(0); //开启输入捕捉中断
}
}
作者:
GVC
时间:
2014-7-15 21:30
上面是我的输入捕捉配置程序,脉冲输入正确,用PIT1s中断去读取1秒内FTM0捕捉到的脉冲值,但捕捉到的脉冲值一直为零,因此在疑惑输入捕捉程序配置是否有问题?请各位大神指教,谢谢
作者:
GVC
时间:
2014-7-15 21:31
自己顶一个
作者:
want_100
时间:
2014-7-16 21:54
:o:o:o:o:o
作者:
GVC
时间:
2014-7-18 09:58
已解决,程序间干扰问题
作者:
wyx225913
时间:
2015-1-11 20:56
:)
作者:
听着听着、睡了
时间:
2015-4-5 15:17
GVC 发表于 2014-7-18 09:58
已解决,程序间干扰问题
具体是怎么样的干扰呢,,,,急求啊
作者:
蜡笔小新.
时间:
2016-9-4 14:40
那个捕捉到的pwm如何具体的转化成一个数值呢 请赐教
作者:
蜡笔小新.
时间:
2016-9-4 14:43
能加个qq吗 亲
作者:
林hua1234
时间:
2017-2-16 19:39
顶。。。。
欢迎光临 智能车制作 (http://dns.znczz.com/)
Powered by Discuz! X3.2