一乐电子

一乐电子百科

 找回密码
 请使用微信账号登录和注册会员

QQ登录

只需一步,快速开始

快捷登录

手机号码,快捷登录

搜索
查看: 611|回复: 8
收起左侧

avr单片机的一个简单问题,我怎么就是看不明白呢

[复制链接]
发表于 2017-3-3 11:55 | 显示全部楼层 |阅读模式
如下代码,我在进入按键中断处理程序里关闭了全局中断,处理完毕后并未开启中断,为什么按键一直能相应中断呢?随时按下按键LED0都能亮。
ISR(INT0_vect)             //按键中断服务程序
{
cli();
LED0=1;                     //亮led0
_delay_ms(200);
LED0=0;                   //灭led0
}

VOID MAIN()
{
sei();
while(1){};
}


 楼主| 发表于 2017-3-3 11:57 | 显示全部楼层
中断服务程序执行完毕后会自动开启中断使能?除了这个我想不出原因了
 楼主| 发表于 2017-3-3 12:05 | 显示全部楼层
本帖最后由 benxiong22 于 2017-3-3 12:14 编辑

看资料说,AVR确实在进入中断服务程序时先关闭全局中断,处理完毕会自动开启全局中断。
看来得想个其他办法避免不断重复响应按键处理代码了,比如从低电平触发改成下降沿触发
 楼主| 发表于 2017-3-3 12:24 | 显示全部楼层
按住按键不放led亮一下,可是放开按键时led还是会闪2下,晕
发表于 2017-3-3 13:35 | 显示全部楼层
楼主最近是干上 AVR了
 楼主| 发表于 2017-3-3 14:31 | 显示全部楼层
liuchengliaaa 发表于 2017-3-3 13:35
楼主最近是干上 AVR了

学习一下
 楼主| 发表于 2017-3-3 14:33 | 显示全部楼层
这种少量按键的情况,我还是不用中断直接检测io脚的电平来判断按键与否吧,简单可靠
发表于 2017-3-3 18:29 来自手机 | 显示全部楼层
那么少的逻辑就不要用中断了吧,优化一下不用暂停语句。一秒钟内能多检测几次管脚的状态就行了
发表于 2017-3-3 18:29 来自手机 | 显示全部楼层
那么少的逻辑就不要用中断了吧,优化一下不用暂停语句。一秒钟内能多检测几次管脚的状态就行了

本版积分规则

QQ|一淘宝店|手机版|商店|电子DIY套件|一乐电子 ( 粤ICP备09076165号 ) 公安备案粤公网安备 44522102000183号

GMT+8, 2024-4-20 22:03 , Processed in 0.067098 second(s), 43 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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