查看: 7884|回复: 5

[已解决] KE02的PIT定时周期中断问题(已解决)

[复制链接]

该用户从未签到

25

主题

64

帖子

0

新手上路

Rank: 1

积分
21
最后登录
1970-1-1
发表于 2013-11-6 18:27:36 | 显示全部楼层 |阅读模式
 今天调试了一下KE02的PIT定时周期中断,外部晶振是16M的,示波器测出晶振的频率是正确的,但是调试下来发现一个问题:
比如设置一个1秒的定时周期中断,理论上PIT_LDVAL寄存器的值应该为10000000ns/62.5ns-1=15999999,但是按照这个设置,用示波器测出来
的周期为1.06s;反过来当用示波器测出来为1s的时候PIT_LDVAL的寄存器的值在理论值的0.94倍(15999999*0.94);同时还测试了不同时间
(10ms和0.625ms)的定时周期中断,最后的结论都是一样,就是PIT_LDVAL的寄存器的值在理论值的0.94倍的时候,示波器测出的时间是准
的,这个是什么问题了?求高手解答下,谢谢!
我知道答案 目前已有4人回答
回复

使用道具 举报

  • TA的每日心情
    难过
    2021-12-15 16:01
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    305

    主题

    4701

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    377
    最后登录
    2023-8-16
    发表于 2013-11-7 09:34:43 | 显示全部楼层

    RE:KE02的PIT定时周期中断问题

    把你的配置发出来看一下。
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-7-2 06:04
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    59

    主题

    2888

    帖子

    10

    金牌会员

    Rank: 6Rank: 6

    积分
    6020
    最后登录
    2020-9-28
    发表于 2013-11-7 14:03:52 | 显示全部楼层

    回复:KE02的PIT定时周期中断问题

    我在FRDM-KE02Z板子上测试了一下PIT模块是正确的。
    请问你是用的哪种时钟模式,是FEE?
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    25

    主题

    64

    帖子

    0

    新手上路

    Rank: 1

    积分
    21
    最后登录
    1970-1-1
     楼主| 发表于 2013-11-7 18:34:26 | 显示全部楼层

    回复:KE02的PIT定时周期中断问题

    回复第 2 楼 于2013-11-07 09:34:43发表:
    把你的配置发出来看一下。
     
    1、定义的PIT初始化原函数
    void PIT_Init(uint8 u8Channel,uint32 u32LoadValue)
    {  
        uint32    u32Mcr;
        uint32    u32Ldval;
        uint32    u32Tctrl; 
        uint32    u32Tflg;        
        //
        SIM->SCGC |= SIM_SCGC_PIT_MASK;             //PIT时钟门控使能
        if (u8Channel)
        {        
             NVIC_EnableIRQ(PIT_CH1_IRQn);          //使能PIT1中断             
        }
        else
        {                  
            NVIC_EnableIRQ(PIT_CH0_IRQn);           //使能PIT0中断    
        }    
        //复位后的值
        u32Mcr = 6;                                 //PIT定时器时钟关闭
        u32Ldval = 0;
        u32Tctrl = 0;    
        u32Tflg = 0;      
        //修改的参数值
        u32Mcr &= ~PIT_MCR_MDIS_MASK;               //PIT定时器使能                                                                                                                           
        u32Ldval = u32LoadValue;                                //设置定时周期参数
        u32Tctrl |= PIT_TCTRL_TIE_MASK                  //使能PIT中断                  
                    | PIT_TCTRL_TEN_MASK;                     //使能定时器 
        //PIT寄存器设置
        PIT->MCR = u32Mcr;
        PIT->CHANNEL[u8Channel].LDVAL = u32Ldval;
        PIT->CHANNEL[u8Channel].TCTRL = u32Tctrl;
        PIT->CHANNEL[u8Channel].TFLG = u32Tflg;
    }
    2、定义中断号
    #undef  VECTOR_038
    #define VECTOR_038      PIT_Ch0Isr          /*!< Vector 38 points to PIT0 interrupt service routine */
    extern void PIT_Ch0Isr(void);
    3、中断执行函数

    void PIT_Ch0Isr(void) 
    {   
           PIT->CHANNEL[0].TFLG |= PIT_TFLG_TIF_MASK;     //清除中断标志
           GPIO_PinToggle(PTD1);                                                  //翻转管脚电平
    }
    4 、调用的PIT初始化函数是

    PIT_Init(0,15999999);                   //PIT周期为1秒
     
     
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-7-2 06:04
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    59

    主题

    2888

    帖子

    10

    金牌会员

    Rank: 6Rank: 6

    积分
    6020
    最后登录
    2020-9-28
    发表于 2013-11-8 10:43:28 | 显示全部楼层

    回复:KE02的PIT定时周期中断问题

    请问你ICS_C1寄存器和OSC_CR寄存器是怎么配置的?
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-7-2 06:04
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    59

    主题

    2888

    帖子

    10

    金牌会员

    Rank: 6Rank: 6

    积分
    6020
    最后登录
    2020-9-28
    发表于 2013-11-8 11:03:24 | 显示全部楼层

    回复:KE02的PIT定时周期中断问题

    我在CodeWarrior10.5环境下用PE创建了你要求的16MHz外部晶振,1s定时中断触发PTE7口的翻转。(你测试下看是否能够正常运行,我这只有10MHz晶振的FRDM-KE02Z板)
    你测试下,如果我之前提到的2个寄存器你没有设置,那应该用的是芯片内部32KHz IRC,而非外部晶振。
    PIT inaccuracy.zip (673.47 KB, 下载次数: 50)
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-7-19 09:05 , Processed in 0.102435 second(s), 27 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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