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

[复制链接]
 楼主| jiyiche 发表于 2009-7-27 00:58 | 显示全部楼层 |阅读模式
bit,sbit不能用,那如何实现51当中的sbit DATA = P1.0;这种功能?
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混合编写
huangqi412 发表于 2009-7-27 10:29 | 显示全部楼层

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

每次了解下编译器就可以便宜出和汇编一样的
qjy_dali 发表于 2009-7-27 12:09 | 显示全部楼层

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

  用掩码处理吧
void_c 发表于 2009-7-27 12:23 | 显示全部楼层

用位域

#define LED               IO_BIT_ALIAS(&PORTB,2) 

  LED=0; 
  LED=1; 
  LED=!LED; 
 楼主| jiyiche 发表于 2009-7-27 15:42 | 显示全部楼层

能给个具体的代码吗?

光是这样讲我比较难明白,谢谢各位了
gaohq 发表于 2009-7-27 17:51 | 显示全部楼层

7楼的可用于ICCAVR吗?

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

粉丝
快速回复 在线客服 返回列表 返回顶部