查看: 1801|回复: 1

[其他] <求助>用TC7口做的频率和占空比检测,谁能帮我看看?

[复制链接]

该用户从未签到

1

主题

12

帖子

0

新手上路

Rank: 1

积分
5
最后登录
1970-1-1
发表于 2012-5-15 22:22:11 | 显示全部楼层 |阅读模式
                         
            
            
            __interrupt void TXTimer_Interrupt(void)   //PIT中断10ms
            {
              int i;
              static int ledTime = 0;
              
              PITTF = 1;  
              
               
              if (ledTime++ &gt; 10)
              {                              
                ledTime = 0;
                write_595(vLED);      //数码管显示(100ms刷新一次)
                  TIE=0xC0;           //开捕捉中断(100ms中断一次)  
              }
              
            voltage_feedback();      //模拟量输出(10ms输出一次)
                                      
            }
            
            __interrupt void HL_TC7Interrupt(void)
            {
              static byte i=0;
              i++;
              if(i==1){
               first=TC7;
               TCTL3_EDG7B=1;
               TCTL3_EDG7A=0;   //仅捕捉下降沿
              }
              
              else if(i==2){
               second=TC7;
               TCTL3_EDG7B=0;
               TCTL3_EDG7A=1;   //仅捕捉上升沿  
              }
              
              else if(i==3)
              {
               i=0;
               third=TC7;
               TCTL3_EDG7B=0;
               TCTL3_EDG7A=1;   //仅捕捉上升沿   
                  
              temp1=third-first;
              temp2=second-first;
              fre=250000/temp1;         //范围:3.81~250000hz
              dty=temp2/temp1;
              TIE=0x00;             //关捕捉中断
              }
            }  
             

我的意思是在PIT中断里面每100ms开一次输入捕捉,连续3次测量后算出频率和占空比,再关掉中断,就是不知为什么一进中断就程序就死,请问各位大虾,到底什么问题呢?
我知道答案 目前已有0人回答
回复

使用道具 举报

该用户从未签到

1

主题

12

帖子

0

新手上路

Rank: 1

积分
5
最后登录
1970-1-1
 楼主| 发表于 2012-5-15 22:23:51 | 显示全部楼层

回复:<求助>用TC7口做的频率和占空比检测,谁能帮我看看?

定时器初始化!
void HL_SetMainTimer(void)
{
    TSCR1=0x90;           //激活定时器、标志位快速清除
    TIOS=0x3F;            //设置通道6/7为输入捕捉
    TIE=0xC0;             //标志位引起中断
    TSCR2=0x07;           //计数器自由运行,不允许中断,禁止复 位,/128分频,计数4us
    TCTL3=0X50;           //通道6,7上升沿捕捉
    TCTL4=0X00;   
    ICOVW=0XFF;           //结果不被覆盖
    ICSYS=0X00;        
    DLYCT = 0x03;         //控制延迟计数
   
}
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

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

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

GMT+8, 2025-7-28 11:48 , Processed in 0.083258 second(s), 22 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

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