打印
[AVR单片机]

AVR新手关于io取反的操作

[复制链接]
2247|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zhaohualiang|  楼主 | 2011-9-8 14:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include <avr/io.h>
#include <util/delay.h>

#define SET_1(a,b) a|=(1<<b)
#define CLE_0(a,b) a&=~(a<<b)

int main(void)
     {
     SET_1(DDRD,5);
     while(1)
         {
          CLE_0(PORTD,5);
          _delay_ms(100);
          SET_1(PORTD,5);
          _delay_ms(100);
         }
      }
这样在atmega64上运行led不闪烁,把
CLE_0(PORTD,5);
改成
PORTD=0XCF&PORTD;
这样会不停的闪烁。
不解,请赐教。

相关帖子

沙发
john_lee| | 2011-9-8 15:24 | 只看该作者
有错误:
#define CLE_0(a,b) a&=~(a<<b)
改成:
#define CLE_0(a,b) a&=~(1<<b)

使用特权

评论回复
板凳
zhaohualiang|  楼主 | 2011-9-8 17:03 | 只看该作者
太粗心了,多谢

使用特权

评论回复
地板
dream-realize| | 2011-9-8 17:04 | 只看该作者
zzzzzzzzzzzzzzzzz

使用特权

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

本版积分规则

51

主题

216

帖子

1

粉丝