打印
[Kinetis]

lptmr低功耗定时器(已解决)

[复制链接]
3481|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jinpeng121|  楼主 | 2014-7-9 10:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 FSL_TICS_A 于 2014-8-7 14:20 编辑

void lptmr_counter_init(LPT0_ALTn altn, u16 count, u8 PrescaleValue, LPT_CFG cfg)
{   
    if(PrescaleValue > 0x0f)PrescaleValue = 0x0f;

    //lptmr_clear_registers();
   
    //设置输入管脚
    if(altn == LPT0_ALT1)
    {
        SIM_SCGC5 |= SIM_SCGC5_PORTA_MASK;  //打开 PORTA 时钟
        PORTA_PCR19 = PORT_PCR_MUX(0x6);    //在PTA19上使用 ALT6
        LPT0_flag=1;
    }
    else if(altn == LPT0_ALT2)
    {
        SIM_SCGC5 |= SIM_SCGC5_PORTC_MASK;  //使能 PORTC 时钟
        PORTC_PCR5 = PORT_PCR_MUX(0x4);     //在PTC5上使用 ALT4
        LPT1_flag=1;
    }
    else                                    //不可能发生事件
    {
        assert_failed(__FILE__, __LINE__);  //设置管脚有误?
    }

    /* 开启模块时钟 */
    SIM_SCGC5 |= SIM_SCGC5_LPTIMER_MASK;    //使能LPT模块时钟

    /* 清状态寄存器 */
    LPTMR0_CSR = 0x00;                      //先关了LPT,这样才能设置时钟分频等

    /* 设置累加计数值  */
    LPTMR_CMR_REG(LPTMR0_BASE_PTR)  =   LPTMR_CMR_COMPARE(count);                       //设置比较值

    /* 时钟选择 */
    LPTMR_PSR_REG(LPTMR0_BASE_PTR)  =   LPTMR_PSR_PCS(0x1) | LPTMR_PSR_PBYP_MASK  |  LPTMR_PSR_PRESCALE(PrescaleValue);        //使用 LPO clock 且 bypass glitch filter
    //                                                        开启和配置脉冲滤波器:2^n个时钟上升沿才识别

    /* 管脚设置、使能中断  */
    LPTMR_CSR_REG(LPTMR0_BASE_PTR)  =   LPTMR_CSR_TPS(altn) | LPTMR_CSR_TMS_MASK  | ( cfg == LPT_Falling ?  LPTMR_CSR_TPP_MASK :   0  )  | LPTMR_CSR_TEN_MASK  | LPTMR_CSR_TIE_MASK  ;
    //                                       选择输入管脚        选择脉冲计数                                   下降沿       上升沿           使能LPT
    // TFC = 0,即计数值等于比较值时,计数值复位
    //lptmr_clear_registers();
    enable_irq(LPTMR_irq);                        //开引脚的IRQ中断
}
为什么在主函数中定义中断后,中断进不去???

相关帖子

沙发
FSL_TICS_ZJJ| | 2014-7-9 10:30 | 只看该作者
楼主你的具芯片型号全称是什么?

使用特权

评论回复
板凳
jinpeng121|  楼主 | 2014-7-9 16:25 | 只看该作者
FSL_TICS_ZJJ 发表于 2014-7-9 10:30
楼主你的具芯片型号全称是什么?

实在对不起,我没来得及查看信息,对不起了,这么迟才回复你。。。


我的是MK60DN512Zvll10,lptmr低功耗定时器与这联系很大吗?????

使用特权

评论回复
地板
FSL_TICS_ZJJ| | 2014-7-10 08:56 | 只看该作者
楼主你总中断开启了吗?
还有你中断函数和你中断向量表中的名称是否连接成功了呢?
你看看官方的例程,照着做呢。

使用特权

评论回复
5
xinyinxing| | 2014-7-10 17:47 | 只看该作者
楼主代码哪来的啊,LPTMR没那么复杂的,我用CW的PE做过,一下子就进中断了,你有没有开总中断啊。

使用特权

评论回复
6
FSL_TICS_ZJJ| | 2014-7-11 11:00 | 只看该作者
楼主如果有最新测试结果,或者进展,帖子里也跟新啊,这样我们好知道你到哪步了。

使用特权

评论回复
7
FSL_TICS_ZJJ| | 2014-7-15 09:41 | 只看该作者
楼主解决了没有啊?

使用特权

评论回复
8
FSL_TICS_ZJJ| | 2014-7-29 10:36 | 只看该作者
楼主你好,在我们K60 100M的代码中有相关的代码你可以参考下:
http://www.freescale.com/webapp/ ... nt_pageType=product
如果问题解决了,还请帮我们及时结贴啊。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

9

帖子

0

粉丝