7452|5

40

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

外部中断标志位P2IFG为什么总是置位? [复制链接]

我写代码将P2IFG=0x00;但是调试的时候,我在P2.0外接60HZ的方波,P2IFG的对应位总是置位,甚至只接一根杜邦线(不解任何电信号)悬空,P2IFG的对应位都会置位。请问这是什么原因?如果这样的话,430的外部中断真的没法用了!!!

最新回复

我也在这块,中断标志位清不了.正在找原因.步骤和楼主类似,  为什么..................  详情 回复 发表于 2011-12-23 15:28
 
点赞 关注

回复
举报

2143

帖子

3

TA的资源

五彩晶圆(中级)

沙发
 
你好 把你的程序贴上来看看吧

一般需要按照PxIES——>PxIE——>PxIFG的顺序去初始化

其次就是关于PxIFG是需要软清零的或者通过读取PxIV寄存器之后自动清零,在中断里面清零了吗?

没有程序只能作以上分析。
 
 

回复

2143

帖子

3

TA的资源

五彩晶圆(中级)

板凳
 

你好 把你的程序贴上来看看吧 一般需要按照PxIES——>PxIE——>PxIFG的顺序去初始化 其次就是关于PxIFG是需要软清零的或者通过读取PxIV寄存器之后自动清零,在中断里面清零了吗? 没有程序只能作以上分析。

 

听说发帖多于30字会加威望10,看看是不是。哈哈

 
 
 

回复

40

帖子

0

TA的资源

一粒金砂(中级)

4
 

回复 沙发 lyzhangxiang 的帖子

#include "msp430x44x.h"
#include "AD7825.h"
uchar flag;
void main()
{
  volatile unsigned int i;
  WDTCTL=WDTPW+WDTHOLD;
/********************时钟配置set ACLK=8MHZ***************************
  BCSCTL1 &=~XT2OFF;                        //XT2 on
  do
  {
  IFG1 &= ~OFIFG;                           // Clear OSCFault flag
  for (i = 0xFF; i > 0; i--);               // Time for flag to set
  }
  while ((IFG1 & OFIFG));                   // OSCFault flag still set?
  BCSCTL2 |= SELM_2+SELS;                   // MCLK = SMCLK=XT2
*******************************************************************/
  
  SCFI0|=FN_4;                              //时钟配置
  SCFQCTL=121;
  FLL_CTL0=DCOPLUS+OSCCAP1;
  
  _DINT();                                  //关总中断
  P2DIR&=~(chang+hang);                     //外部中断输入口
  P2IE|=chang;                              //场同步中断允许
  P2IES|=(chang+hang);                      //下降沿触发                              //
  Init_ADcovert();                          //初始化AD
  P2IFG=0x00;                               //清除中断标志
  _EINT();                                  //开总中断

  while(1)
  {
    LPM0;                                     //进入低功耗模式0
  }
}


# pragma vector=PORT2_VECTOR               
__interrupt void chang_Syn()               //场同步中断,开始采集一帧
{
  flag=P2IFG;
  switch(flag&0x03)                       //判断是P2.7还是P2.6发生中断
  {
    case 0x01 :                            //场中断
    {
      P2IE&=~chang;                       //!!!关闭场中断,因为只采集一场
      P2IFG&=~chang;                      //清除场中断标志,以备下一次中断
      delay_Nus(480);                     //消影区,延时480us,等待图像信号来临
      P2IE|=hang;                         //行同步中断允许  
    }
    break;
   
    case 0x02 :                            //行中断
    {         
      if(hang_num<32)
      {
        hang_num++;
        Start_ADcovert();                 //开始这一行后的第一次采集
        P2IFG&=~hang;                     //清除行中断标志,以备下一次中断                 
       }
    }
    break;
  }
    P2IFG=0x00;
}
 
 
 

回复

40

帖子

0

TA的资源

一粒金砂(中级)

5
 

回复 板凳 lyzhangxiang 的帖子

8M时钟配置那个不管,我以前用的是1611,后头改成449了。
 
 
 

回复

746

帖子

0

TA的资源

纯净的硅(高级)

6
 
我也在这块,中断标志位清不了.正在找原因.步骤和楼主类似,  为什么..................
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条
艾睿电子& Silicon Labs 有奖直播 | 全新蓝牙信道探测:从技术创新到实际应用
直播时间:3月12日(周三)上午10:00
直播奖励:多功能榨汁机、蓝牙音箱、手机支架

查看 »

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表