打印
[AVR单片机]

AVR外部中断0实验问题

[复制链接]
1512|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
clleady|  楼主 | 2010-4-16 13:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#pragma interrupt_handler int0_isr:iv_INT0
void int0_isr(void)
{
//uchar i;
//for(i=0;i<5;i++)
while(~(PORTD&(1<<PD2)))
{
PORTC=~PORTC;
delay_ms(1000);
}
}

我做了个LED中断闪烁仿真,设置为低电平外部中断。
做了2种
1,功能描述,当按下按钮,灯闪烁5次。(通过for循环成功实现)
2,功能描述,当按下按钮,开始闪烁,直到放开按钮,结束闪烁。(通过 while(~(PORTD&(1<<PD2)))失败)
难道2的解决方案一定要用检查标志位寄存器吗?

相关帖子

沙发
SHSLZHZ| | 2010-4-16 13:21 | 只看该作者
1# clleady
脚的判断要用PIN的,因此你得改成:
while(~(PIND&(1<<PD2)))就对了

使用特权

评论回复
板凳
clleady|  楼主 | 2010-4-16 13:45 | 只看该作者
while(~(PIND&(1<<PD2)))也不对。

使用特权

评论回复
地板
SHSLZHZ| | 2010-4-16 14:48 | 只看该作者
说错了,应写成:
while(!(PIND&(1<<PD2)))就对了

使用特权

评论回复
5
clleady|  楼主 | 2010-4-16 15:16 | 只看该作者
谢谢指教。

使用特权

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

本版积分规则

个人签名:活到老学到老

219

主题

477

帖子

1

粉丝