智能车制作
标题:
很简单的输入捕捉程序,让你赚贡献。
[打印本页]
作者:
4rrr
时间:
2012-8-7 10:56
标题:
很简单的输入捕捉程序,让你赚贡献。
我们在用K60写输入捕捉函数,也是按照芯片手册上配置的,不知道哪里出了问题。
int main(void)
{
DisableInterrupts;
DELAY_Init(48);//初始化延时函数
GPIO_Init(PTA,15,1,0);//PTA15是led灯
pll_init();//锁相环初始化
FTM_Init();//FTM初始化
EnableInterrupts;
for(;;)
{
}
}
void isr_FTM0(void)//中断函数
{
if((FTM0_C0SC>>7)|0==1)//如果FTM0有中断标志
{
GPIO_Init(PTA,15,1,1);//把led灯灭掉
DELAY_Ms(50);
return;
}
else
{GPIO_Init(PTA,15,1,1); //灭灯
return;}
}
void FTM_Init(void)
{
SIM_SCGC5 |= (1 << 11| 1<< 12);//开 PTC PTD时钟
PORTC_PCR1= PORT_PCR_MUX(4); // 设置引脚 C1引脚为FTM0_CH0功能
SIM_SCGC6|=SIM_SCGC6_FTM0_MASK;//使能FTM0时钟
FTM0_MODE |= FTM_MODE_WPDIS_MASK;//写保护禁止
FTM0_C0SC |=FTM_CnSC_ELSA_MASK;//设置通道0为捕捉上升沿
FTM0_C0SC &= ~FTM_CnSC_MSA_MASK;
FTM0_C0SC &= ~FTM_CnSC_ELSB_MASK;
FTM0_C0SC &= ~FTM_CnSC_MSB_MASK;
FTM0_C0SC|=FTM_CnSC_CHIE_MASK;//使能通道0中断
enable_irq(78);
FTM0_MODE|=0x10;//捕捉测试模式允许位
FTM0_SC=0x0c;//中断禁止,时钟源来自总线时钟48MHz,16分频后得到3MHz,CLKS=01,PS=100,CPWMS=0,递增计数
FTM0_MODE &= ~FTM_MODE_FTMEN_MASK;//FTM0使能
FTM0_OUTMASK=0X0;//全部通道输出
FTM0_QDCTRL&=~FTM_QDCTRL_QUADEN_MASK;//禁止正交解码模式
FTM0_SC&=~0x80;//清定时器溢出标志位
FTM0_SC&=~0x40;//禁止定时器溢出中断
}
也就是说只要进了FTM0中断,灯就会灭 但是它却一直亮着 求高手指点!
作者:
4rrr
时间:
2012-8-7 11:23
大神能否来指点一下,已经弄了三天了····无语
作者:
tujunjie
时间:
2012-9-18 22:33
4rrr 发表于 2012-8-7 11:23
大神能否来指点一下,已经弄了三天了····无语
哥们,我也遇到同样的问题,能不能交流一下呀!谢谢
作者:
diyiduohua
时间:
2014-4-12 16:40
貌似不能用FTM0
作者:
szdqwl
时间:
2014-7-7 09:10
很简单的输入捕捉程序
欢迎光临 智能车制作 (http://dns.znczz.com/)
Powered by Discuz! X3.2