搜索
bottom↓
回复: 2

有谁用过c8050f020侧过信号的上升时间?

[复制链接]

出0入0汤圆

发表于 2012-6-16 13:43:46 | 显示全部楼层 |阅读模式
本帖最后由 小滑头520 于 2012-6-16 13:47 编辑

我用两个外部中断 INT6 INT7同时检测  INT6设置为上升沿检测 INT7下降沿检测 然后我用PCA计数 输出上升沿到下降沿的时间 但是为什么中断能检测到上升沿下降沿void INT6_ISR(void) void INT6_ISR(void) interrupt 18        //上升沿
{  
  
   P3IF&=~0x40;         //关闭外部中断6标志
   num1=1;
   
}

void INT7_ISR(void) interrupt 19
{
//  P3IF&=~0x40;
  P3IF&=~0x80; //关闭外部中断6标志
  num2=1;
}
但是加了PCA计数 下降沿这个中断就检测不出了
void PCA_Init(void)
{
EIE1 =0x08;                //使能PCA0中断  
PCA0MD =0x01;                //PCA时钟源选择        01        12分频
PCA0L =0x00;
PCA0H =0x00;
PCA0CPM0 =0x11;
PCA0CPL0 =0x00;
PCA0CPH0 =0x00;
PCA0CN =0x40;

}
下面是主函数
        void PORT_Init()
{
     //P3MDOUT   = 0xF0;
//         P0MDOUT|=0xfe;          //P0^0设置为漏极开路,数字输入
//         P0|=0x01;
        // XBR0 =0x08;
         XBR2 =0X40;
         P74OUT =0X00;
}
///中断初始化////
void INT67_Init(void)
{
           EIE2 |=0X30;
           P3IF |=0XC4;//把p3.6设置成上升沿触发 p3.7设置成下降沿触发
        }

void INT6_ISR(void) interrupt 18        //上升沿
{  
  
   P3IF&=~0x40;                   //关闭外部中断6标志
   num1=1;
   

}



void INT7_ISR(void) interrupt 19   //下降沿
{
  
  P3IF&=~0x80;                           //关闭外部中断7标志
  num2=1;
}
//////计数中断///////
void PCA_ISR(void) interrupt 9
{
   
   CCF0 =0;
   j++;  
}


void main()
{
         WDTCN = 0xde;                       // Disable watchdog timer
         WDTCN = 0xad;
         j=0;
         PORT_Init();
         oscillator_init();
         INT67_Init();
         LCD_init();
          
          EA =1;       

         while(1)
         {       
             
       
           if(num1==1)
             {
                             num1=0;
                   PCA_Init();
                    
                  }
                
                 if(num2==1)
                         {
                          PCA0CN =0x0;   //禁止计数
                          EIE1 =0x0;        //禁止pca0中断
                          num2=0;
                           j=0;          
                             }
//                 handle(); //数据处理       
         }
}        感觉是PCA_Init(); 里面的 EIE1 =0x08;                //使能PCA0中断   与程序中的一些地方冲突了 屏蔽了他就能检测到下降沿
      因为 EIE1 =0x08;是使能PCA0中断 屏蔽了他PCA就不能工作  求大侠们帮帮忙  谢谢!
                  

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

发表于 2012-10-4 16:56:00 | 显示全部楼层
看看问题出在哪里?

出0入0汤圆

发表于 2012-10-5 08:28:07 来自手机 | 显示全部楼层
这个思路好像很奇怪啊 改用AD试试吧
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-23 22:10

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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