搜索
bottom↓
回复: 10

为啥我的int0中断每次时间都不一样啊?

[复制链接]

出0入0汤圆

发表于 2009-8-4 10:47:02 | 显示全部楼层 |阅读模式
#include <iom16v.h>
#include <macros.h>
#pragma interrupt_handler int0:3
unsigned char counter=0,key0=0,key1=0;
void read_key1(void);
void int0()
{CLI();
  GICR|=0x00;
  PORTB=0X04;
  SEI();
}
void main(void)
{  CLI ();
   DDRB=0xFE;
   PORTB=0x01;
   GIFR|=0x40;
   MCUCR=0x03;
   GICR|=0x00;      
   SEI ();
   while(1)
   {
    read_key1 ();
   }
}

void read_key1(void)
{    switch (key1)
        {
            case 0:             // 按键初始态
                if ((PINB&0x01)==0)
                key1=1;  // 键被按下,状态转换到键确认态
                break;
            case 1:             // 按键确认态
                if ((PINB&0x01)==0)
                { key1=2;    // 状态转换到键释放态
                }     
                else
                  key1=0;  // 按键已抬起,转换到按键初始态
                break;
            case 2:
                if ((PINB&0x01)==1)
                 { key1=0;//按键已释放,转换到按键初始态
                   GICR|=0x40;
                         }  
                break;
                }
        return;
}   
我想问一下 我在INT0外部接了一个方波 int0检测上升沿 我用一个开关来使能INT0  正常应该我按完开关后 等到检测到上升沿 PB3就是给出高电平 但是每次PB3给出的高电平时间不固定 能帮忙分析一下原因吗

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

如果想吃一顿饺子,就得从冰箱里取出肉,剁馅儿,倒面粉、揉面、醒面,擀成皮儿,下锅……
一整个繁琐流程,就是为了出锅时那一嘴滚烫流油的热饺子。

如果这个过程,禁不住饿,零食下肚了,饺子出锅时也就不香了……《非诚勿扰3》

出0入0汤圆

发表于 2009-8-6 01:09:43 | 显示全部楼层
还是买本我写的书吧,我想值的你仔细读的。

出0入0汤圆

 楼主| 发表于 2009-8-13 14:39:31 | 显示全部楼层
我什么时候开中断什么时候就直接跳到中断程序那了 但是我在开完中断之后把INT0标志清零之后为啥还是不可以呢

出0入0汤圆

 楼主| 发表于 2009-8-17 15:12:37 | 显示全部楼层
位置加错了 应该加在开中断的前边

出0入0汤圆

发表于 2009-8-17 21:12:50 | 显示全部楼层
void int0()
{CLI();            <=====画蛇添足
  GICR|=0x00;
  PORTB=0X04;
  SEI();            《======画蛇添足
}

出0入0汤圆

 楼主| 发表于 2009-8-26 10:07:35 | 显示全部楼层
还有马老师 #pragma interrupt_handler int0:3
在编译的时候 编译器说明上写的应该是这样编#pragma interrupt_handler int0:2
但是编译不过去因为什么啊

出0入0汤圆

发表于 2009-8-27 12:11:12 | 显示全部楼层
void int0()
{CLI();
  GICR|=0x00; 《==这句好像没作用吧?????
  PORTB=0X04;
  SEI();
}

出0入0汤圆

 楼主| 发表于 2009-8-27 15:41:58 | 显示全部楼层
我家这句是想把中断给关掉

出0入0汤圆

发表于 2009-9-15 10:29:45 | 显示全部楼层
这样关不了,有这句跟没这句是一样的!你或上一“0”还是原来的数啊
头像被屏蔽

出0入0汤圆

发表于 2011-12-19 13:58:10 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
头像被屏蔽

出0入0汤圆

发表于 2011-12-19 14:13:39 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-3-28 22:58

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

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