打印

测的频率是乱的

[复制链接]
940|23
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
liuzaiy|  楼主 | 2020-8-16 17:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请高手看看,我这个程序中断可以进入,就是测的频率是乱的。单片机PICF18F65J90
==============================================================================//
//                                            CCP1中断处理函数
//                     CCP1扑捉工作于4M晶振
//===================================================================================//                                                     
void interrupt low_priority  CCP1int(void)  
{ if(!PIR3bits.CCP1IF)
     {PIE3bits.CCP1IE=1;
      GIEL=1;
          return;
         }
  if(CCP1gdflag)
     {CCP1CON=0x04;                                        //下降沿捕捉
      TMR1ON=0;                                          //定时器处理
      TMR1IF=0;
      TMR1H=0x00;
      TMR1L=0x00;                                                             //定时器延时
      TMR1ON=1;                                          //重开定时器     
      CCP1gdflag=0;
     
     }
  else
     {dy_cj.adre[0]=CCPR1L;
      dy_cj.adre[1]=CCPR1H;
      CCP1intflag=1;
  
     }
  PIR3bits.CCP1IF=0;            
  PIE3bits.CCP1IE=1;
}
void main(void)
{ CCP1CON=0x05;                                                               //上升沿捕捉
      
      CCP1gdflag=1;                                                             //上升沿标识位
      CCP1intflag=0;                                                            //下降沿中断标识位,置1表示产生了中断
      PIE3bits.CCP1IE=1;
      GIEL=1;GIEH=1;   
      
      loop=1000;
      while(--loop>0)
          {delayms(1);asm("clrwdt");
           if(CCP1intflag) break;
          }                                                                            //等待一次测量结束
      PIE3bits.CCP1IE=0;
      GIEL=0;GIEH=0;
      TMR1ON=0;                                                                 //定时器处理
      TMR1IF=0;
      TMR1H=0x00;
      TMR1L=0x00;
}   

使用特权

评论回复
沙发
chenho| | 2020-8-16 18:00 | 只看该作者

楼主详细说说怎么回事啊,这么说太笼统了

使用特权

评论回复
板凳
liuzaiy|  楼主 | 2020-8-16 18:03 | 只看该作者
我用一个单片机+PNP三极管,产生100HZ的频率。频率用示波器测是正常的方波。但是我用这个程序测出来,是随机跳变的。

使用特权

评论回复
地板
dingy| | 2020-8-16 18:07 | 只看该作者
我就直接显示CCP1R1L看数值,发现,CCP1R1L的数据不停的变,而且随机。   

使用特权

评论回复
5
supernan| | 2020-8-16 18:10 | 只看该作者
测的频率怎么乱,

使用特权

评论回复
6
liuzaiy|  楼主 | 2020-8-16 18:22 | 只看该作者
被测信号频率稳定吗

使用特权

评论回复
7
morrisk| | 2020-8-16 18:26 | 只看该作者
信号发生器做的信号源测试的?

使用特权

评论回复
8
liuzaiy|  楼主 | 2020-8-16 18:30 | 只看该作者
我用一个单片机+PNP三极管,产生100HZ的频率。频率用示波器测是正常的方波。但是我用这个程序测出来,是随机跳变的。

使用特权

评论回复
9
yufe| | 2020-8-16 18:33 | 只看该作者
直接显示CCP1R1L看数值

使用特权

评论回复
10
liuzaiy|  楼主 | 2020-8-16 18:46 | 只看该作者
嗯,发现,CCP1R1L的数据不停的变,而且随机。

使用特权

评论回复
11
liuzaiy|  楼主 | 2020-8-16 18:49 | 只看该作者
我测试了下程序,捕捉上升沿中断,和捕捉下降沿中断,都进的去。不知道为什么。

使用特权

评论回复
12
guoyt| | 2020-8-16 18:53 | 只看该作者
定时器有捕捉模式,不用自己做这个功能吧

使用特权

评论回复
13
yufe| | 2020-8-16 18:57 | 只看该作者
请高手帮忙看看程序。

使用特权

评论回复
14
wangpe| | 2020-8-16 19:01 | 只看该作者
你TMR1的初始化在哪里呢?

使用特权

评论回复
15
zhuww| | 2020-8-16 19:10 | 只看该作者
选择什么时钟源?

使用特权

评论回复
16
bqyj| | 2020-8-16 19:13 | 只看该作者
分频比是多少?

使用特权

评论回复
17
wangzsa| | 2020-8-16 19:17 | 只看该作者
简单的说, 就是你需要测量的时间的宽度,要小于TMR1的计时溢出的宽度-----通过调整上面的时钟源和分频比来实现.

使用特权

评论回复
18
wangzsa| | 2020-8-16 19:21 | 只看该作者
是不是这里的问题?你再研究研究?

使用特权

评论回复
19
chenho| | 2020-8-16 19:24 | 只看该作者
应该是配置不对

使用特权

评论回复
20
liuzaiy|  楼主 | 2020-8-16 19:35 | 只看该作者
谢谢各位,程序没有问题。主要是T3CON=0;要加上

使用特权

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

本版积分规则

735

主题

7546

帖子

2

粉丝