注册 登录
查看: 658|回复: 6

[K60] 各路大侠~~~求助攻~~~~~~~请问K60如何实现计时功能

[复制链接]
发表于 2013-8-20 19:51:27 | 显示全部楼层 |阅读模式
如题~~~我想计时一段高电平持续的时间~~请问如何计时呢,高电平我是靠FTM捕抓的~~~用定时器如何解决冲突呢~~~~望大侠不舍赐教啊啊啊啊啊啊,
回复

使用道具 举报

发表于 2013-8-20 21:10:13 | 显示全部楼层
你试过 用定时器去实现没?
回复 支持 反对

使用道具 举报

发表于 2013-8-20 21:10:59 | 显示全部楼层
自己不去看看手册,直接就来问要代码,那样学不到东西的
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-21 10:30:09 | 显示全部楼层
玄来玄去 发表于 2013-8-20 21:10
自己不去看看手册,直接就来问要代码,那样学不到东西的

嗯嗯,谢谢。不过我不是直接要代码的额,是想比较快的了解下解决这个问题的方法,因为时间不多了额。我自己写的代码如下:
void PIT0_IRQHandler(void)
{
    DisableInterrupts;            //禁止总中断


    PIT_Flag_Clear(PIT0);       //清中断标志位
    if(pwmtest==1)
        { PIT_TCTRL0&=~(0x01);
        PIT_TCTRL0|=0x01;          //开定时
        PTB7_OUT=~PTB7_OUT;
       time_delay_ms(300);
        }
         if(pwmtest==2)
        { time=PIT_CVAL0;
       PIT_TCTRL0&=~(0x01);
        PIT_TCTRL0|=0x00;     //关中断
             PIT_CVAL0=0xffffffff;
            time=0xffffffff-time;         
        constant=(u16)(time*0.036); //距离为多少mm
       printf("constant\n",constant);
        pwmtest=0;
        }
   EnableInterrupts;                                 //开总中断
}

同时开了FTM和PIT0中断,结果会不正确额~搞了好久没搞出来,所以来寻求下帮助的
回复 支持 反对

使用道具 举报

发表于 2013-8-21 10:50:16 | 显示全部楼层
中断里开那么大的延时:time_delay_ms(300);  会严重影响 CPU 影响的。
我给你个提示,你按山外哥的 pit 函数修改,不用开中断的。开始计时就进行pit 初始化,初始化前先禁止pit,再使能(清空),计时结束就读取计数值。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-21 16:47:54 | 显示全部楼层
玄来玄去 发表于 2013-8-21 10:50
中断里开那么大的延时:time_delay_ms(300);  会严重影响 CPU 影响的。
我给你个提示,你按山外哥的 pit 函数 ...

好的,谢谢。我试试咯
回复 支持 反对

使用道具 举报

发表于 2013-8-21 18:49:44 | 显示全部楼层
输入捕捉功能啊。亲。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回列表 返回顶部