打印

有关MG84FL54BD问题

[复制链接]
3247|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
luoyong21ic|  楼主 | 2011-9-14 19:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本人现在用MG84FL54BD这个,写了几个小程序来熟悉下,但有很多不懂的地方。代理商的工程师也不给力。所以在此请教下有关中断问题,以下是我写的中断,我是以下降沿产后中断,到是能产生中断就是太能中断了,我用示波器探头测量下电平就中断了,我用聂子碰一下也能中断,就像郭德刚讲的一样,用根芹菜捅下就能产生中断。我要是换成上升沿中断,一开能电就进了中断。
1.请用过这个芯片朋友看下以下代码问题出在哪里?
2.请问这个芯片能不能仿真

#include "REG_MG84FL54.H"
#define LED1        P40
#define LED2        P41
#define LED3        P42
#define External0   P32
#define None  0
#define True  1
void Init_Ext0(void)
{
   EA  = True;          //Open Overall interrupt
   EX0 = None;          //Disable External0 Interrupt   
   IT0 = None;          //=1(Positive Edge)   =0(Negative Edge)
}
void main()
{
   Init_Ext0();
   EX0 = True;          //Enable External 0 Interrupt  
   LED1 = True;
   while(1);
}
//void exter0() interrupt 0
void INT_EXTER0(void) interrupt 0 using 2
{
   LED1 = None;
}
沙发
相见欢喜| | 2011-9-14 20:39 | 只看该作者
你断点调试一下,确认一下,中断在哪里了?

使用特权

评论回复
板凳
huzixian| | 2011-9-15 00:24 | 只看该作者
你换成上升沿就没事了

使用特权

评论回复
地板
eldiy| | 2011-9-16 10:57 | 只看该作者
本帖最后由 eldiy 于 2011-9-16 17:36 编辑

我也领教了,刚测试了下的却如此,不管是输入还是准双向模式外加10K电阻都不管用,镊子一碰就有反应了:funk:

使用特权

评论回复
5
David_ming| | 2011-9-18 00:25 | 只看该作者
我觉得有必要用示波器看看波形,貌似不关IC的事,因为你不碰他不进,你碰了他才进,这外部信号,应该还是有点大了

使用特权

评论回复
6
iam80| | 2011-9-18 21:44 | 只看该作者
“示波器探头一碰,也中断了。用根芹菜捅下也能中断”同感啊!

使用特权

评论回复
7
renyaq| | 2011-9-19 21:33 | 只看该作者
没遇到过,帮顶吧。。。

使用特权

评论回复
8
luoyong21ic|  楼主 | 2011-9-20 11:52 | 只看该作者
中断新问题发现:按以下代码配置为跳变沿触发,刚开如始时上升沿与下降沿都能中断,但试了几次后只有下降沿能中断,谁能帮我看看出错在哪里?个人估计不是代码问题。要是设为 IT1 = 0;(下降沿/低电平),工作正常。

#include "REG_MG84FL54.H"
#define None  0
#define True  1
void delay_ms(unsigned int z)  //12MHZ 100ms delay -287us,10ms -7us
{
   unsigned int  x,y;
   for(x=z;x>0;x--)
      for(y=123;y>0;y--);
}

void Init_Ext1(void)
{
   P3M0 |= (1<<3);        //set input
   P3M1 &= (0<<3);       

   EA  = True;          //Open Overall interrupt
   EX1 = None;          //Disable External0 Interrupt   
   IT1 = True;          //=1(Edge Trigger)   =0(Falling Edge/Low Level Trigger)
}
void main()
{
   Init_Ext1();
   EX1 = True;          //Enable External  Interrupt  
   P13 = True;
   while(1)
   {P13 = True;}
}
void INT_EXTER1(void) interrupt 2 using 2
{
   P13 = None;                        //LED
   delay_ms(2000);
}

使用特权

评论回复
9
栩栩如生| | 2011-9-20 14:38 | 只看该作者
我还以为有啥新发现呢

使用特权

评论回复
10
David_ming| | 2011-9-20 23:02 | 只看该作者
我倒是觉得 INT1 可以上升沿中断是个新发现!!!
并个电容试试还有上升沿中断吗?

使用特权

评论回复
11
zwll| | 2011-9-21 13:57 | 只看该作者
我倒是觉得 INT1 可以上升沿中断是个新发现!!!
并个电容试试还有上升沿中断吗?
David_ming 发表于 2011-9-20 23:02
确实啊

使用特权

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

本版积分规则

13

主题

33

帖子

1

粉丝