打印

AVR MEGA16如何定义某一寄存器的某一位?

[复制链接]
3587|9
手机看帖
扫描二维码
随时随地手机跟帖
沙发
s46410864| | 2009-7-27 08:20 | 只看该作者

define..

用define??

使用特权

评论回复
板凳
huangqi412| | 2009-7-27 08:34 | 只看该作者

51里那些不是标准C,,, 最好用标准C

标准C用宏定义加移位,与或等位操作实现.稍微注意一下写法,便宜器就会用最简单方法转换你的C成机器指令.

使用特权

评论回复
地板
tcc8073| | 2009-7-27 10:13 | 只看该作者

建议汇编和C混合编写

建议汇编和C混合编写

使用特权

评论回复
5
huangqi412| | 2009-7-27 10:29 | 只看该作者

不推荐汇编... 底层也可用C,

每次了解下编译器就可以便宜出和汇编一样的

使用特权

评论回复
6
qjy_dali| | 2009-7-27 12:09 | 只看该作者

AVR本身没有51那样的位处理机制

  用掩码处理吧

使用特权

评论回复
7
void_c| | 2009-7-27 12:23 | 只看该作者

用位域

#define LED               IO_BIT_ALIAS(&PORTB,2) 

  LED=0; 
  LED=1; 
  LED=!LED; 

使用特权

评论回复
8
jiyiche|  楼主 | 2009-7-27 15:42 | 只看该作者

能给个具体的代码吗?

光是这样讲我比较难明白,谢谢各位了

使用特权

评论回复
9
gaohq| | 2009-7-27 17:51 | 只看该作者

7楼的可用于ICCAVR吗?

使用特权

评论回复
10
Zigbee笔记| | 2009-7-28 13:01 | 只看该作者

这样可用吗

#define _BV(bit) (1<<(bit))
#define SET_MODE5                PORTA |= _BV(PA0)
#define CLI_MODE5                PORTA &= ~_BV(PA0)

使用特权

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

本版积分规则

176

主题

484

帖子

0

粉丝