登录 免费注册 首页 | 行业黑名单 | 帮助
维库电子市场网
技术交流 | 电路欣赏 | 工控天地 | 数字广电 | 通信技术 | 电源技术 | 测控之家 | EMC技术 | ARM技术 | EDA技术 | PCB技术 | 嵌入式系统
驱动编程 | 集成电路 | 器件替换 | 模拟技术 | 新手园地 | 单 片 机 | DSP技术 | MCU技术 | IC 设计 | IC 产业 | CAN-bus/DeviceNe

急问:调试时的中断问题

作者:wildship 栏目:单片机
急问:调试时的中断问题
我编了一个中断程序,采用的芯片是90LS8535,PD2作为外部中断0的入口,进入中断程序后跳不出来,请各位高手帮忙指点一下,谢了。
中断程序如下:
#pragma interrupt_handler  controlchange:2
void controlchange()                                   
{
    MCUCR=0X00;                                         
    DDRD=0X8B;
    CLI();
      
    for(;;)
    {
       if(checkbit(PIND,4)==1)
         {
         PORTD &= 0X01;                                 
              PORTC = 0X48;                                  
         }
       if(checkbit(PIND,5)==1)
         {
         PORTD &= 0X02;                                  
         PORTC = 0X50;                                        
         }          
       if(checkbit(PIND,6)==1)
        {
         PORTD &= 0X08;                                  
        }
       if(checkbit(PIND,3)==1)
          break;
     }
}
我是想用PD2的高电平再跳出中断,不知这样是不是可行?望高手指点一二。
满足if中的条件也不执行其下面的动作。

2楼: >>参与讨论
音乐乐乐
查一下你的触发方式设置
 是不是设置成电平方式触发了?改为沿触发

3楼: >>参与讨论
wildship
不行啊,我改过来了还是不行啊
我改过来了,也不行的。主要是进入程序后不执行if中的语句(条件满足也不执行),各位高手帮帮忙啊,看看是什么原因,谢谢了~~!!!

* - 本贴最后修改时间:2005-1-3 16:25:52 修改者:wildship

4楼: >>参与讨论
音乐乐乐
checkbit(PIND,3)怎么写的?
 有没有把PD最为输入?DDRD=0x00;

5楼: >>参与讨论
wildship
谢谢 音乐乐乐 ,现在搞定了。
谢谢 音乐乐乐 大侠。
是读IO口的问题,后来我改成了在if前添加了:
PIND&=0b00010000,条件语句条件改为PIND==0x10(以第一个为例),就能进去了。但我不清楚这样为什么就行呢?
checkbit(var,n)是查看位的宏函数,在源程序里有定义的,但写上去后不能判断了,为什么?

另:乐乐大侠,有没有其它的判断变量的位的方法,望赐教,谢谢了。

6楼: >>参与讨论
winsu
有个问题你没考虑.
如果你手动触发,那么要考虑振荡现象.

7楼: >>参与讨论
音乐乐乐
唉,开始给你回了一大堆网络断了
简单点吧
#define CHECK_BIT(x,y) ((x)&(1<<(y)))
判断时:if(CHECK_BIT(PIND,2))或者if(!CHECK_BIT(PIND,2))

如一定要和1比较,这样
#define CHECK_BIT(x,y) (((x)&(1<<(y)))>>(y))


8楼: >>参与讨论
wildship
谢谢了,各位!!!!!!
这两天在忙着开题的事,看到这么多的人看这个帖子,谢谢大家的关心。
特别谢谢乐乐大侠和winsu。
乐乐大侠可不可以告诉我你的E-mail,我的事wildship◎sina.com,以后还要多多请教。

参与讨论
昵称:
讨论内容:
 
 
相关帖子
我用tiny26,默認內部1m振蕩,為什麼不工作呢?
MEGA16的T/C1能否同时工作于外部捕获和PWM输出状态?
GCC中定义了FLASH内的数组,但编译后依然显示DATA上用了数据:
请教:双龙的下载线为何用不了双龙的下载软件
AVR开发环境!!紧急求助!!!先谢!!!!
免费注册为维库电子开发网会员,参与电子工程师社区讨论,点此进入


Copyright © 1998-2006 www.dzsc.com 浙ICP证030469号