查看: 2087|回复: 0

[其他] xep100 输入捕捉和定时器 不能同时工作。。。求教

[复制链接]

该用户从未签到

2

主题

10

帖子

0

新手上路

Rank: 1

积分
7
最后登录
1970-1-1
发表于 2013-11-26 10:16:54 | 显示全部楼层 |阅读模式
在做ECT输入捕捉,,单独测试 ECT输入捕捉都是好用的 。。。但是当加入定时器后 ,问题就出现了。。。。程序跑飞。。。定时器不好使了。。。。看了好几遍芯片手册也没找到原因。。。现在求教。。。谢谢了。。。很着急
下面是我的程序:
这是定时器的初始化:
void INIT_MDCU(void)
{
    ECT_MCCTL = 0xc7;         //使能模数计数器,分频常数为16,即模块时钟周期为0.5us,采用模数循环计数方式,允许中断
    ECT_MCCNT = 50000;        //模数常数为50000,则25ms产生一次中断
    ECT_MCCTL_FLMC = 1;       //将模数常数加载到模数计数器
    ECT_MCCTL_MCZI = 0;
   
}
void ENABLE_MDCU_INT(void)
{
    ECT_MCCTL_MCZI = 1;       //允许计数器中断
}
定时器中断:
interrupt void MDCU_inter(void)
{
   
   
    static uchar TimeNum = 0;
   
    if(ECT_MCFLG_MCZF == 1)   //判断是否是模数递减中断
       ECT_MCFLG_MCZF = 1;     //清除标志位
   
             
    // 设置程序运行灯                                   
    if(TimeNum>=20)
    {    
      LEDCPU_dir = 1;LEDCPU = ~LEDCPU;
      TimeNum = 0;                
  
                    
    }
    TimeNum +=1;
}
下面是ECT输入捕捉的初始化:
void initialize_ect(void)
{
  ECT_TSCR1_TFFCA = 1;  // 定时器标志位快速清除
  ECT_TSCR1_TEN = 1;    // 定时器使能位. 1=允许定时器正常工作; 0=使主定时器不起作用(包括计数器)
 
  ECT_TIOS  = 0xfe;      //指定所有通道为输出比较方式
  ECT_TCTL4 = 0x01;     // 设置通道0为捕捉上升沿方式
 
  ECT_DLYCT = 0x00;     // 延迟控制功能禁止
  ECT_ICOVW = 0x00;     // 对应的寄存器允许被覆盖;  NOVWx = 1, 对应的寄存器不允许覆盖
  ECT_ICSYS = 0x00;     // 禁止IC及PAC的保持寄存器
 
  ECT_TIE   = 0x01;     // 禁止所有通道定时中断
  ECT_TSCR2 = 0x07;     // 预分频系数pr2-pr0:111,,时钟周期为4us,
                        //PR2~PR0定时器预分频因子的选择
                        //主定时器的计数器频率=总线时钟频率 / (预分频因子)
                        //预分频因子 1 2 4 8 16 32 64 128  分别对应000~111
                       
                        //TSCR2 定时器控制寄存器2
                        // 7   6   5   4   3   2   1   0
                        //TO1  0   0   0 TCRE PR2 PR1 PR0
                       
                                               
 
  ECT_TFLG1 = 0xff;     // 清除各IC/OC中断标志位
  ECT_TFLG2 = 0xff;     // 清除自由定时器中断标志位
  
  
}
输入捕捉中断:
interrupt void capture(void)
{
 if(ECT_TFLG1_C0F == 1)
   ECT_TFLG1_C0F = 1;
    DDRE_DDRE3  = 1;
   PORTE_PE3 = ~PORTE_PE3;
}
 
求教。。。。。。。
 
 
 
 
我知道答案 目前已有0人回答
回复

使用道具 举报

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

本版积分规则

关闭

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

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

GMT+8, 2025-9-10 02:58 , Processed in 0.084166 second(s), 22 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

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