智能车制作

标题: 很简单的输入捕捉程序,让你赚贡献。 [打印本页]

作者: 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