[AVR单片机] AVR MEGA16如何定义某一寄存器的某一位?

[复制链接]
 楼主| jiyiche 发表于 2009-7-27 00:59 | 显示全部楼层 |阅读模式


bit,sbit不能用,那如何实现51当中的sbit DATA = P1.0;这种功能?
jbb0523 发表于 2009-7-27 10:56 | 显示全部楼层

怎么样都可以的。。。

比如说你要操作PA0口,置为输出高电平:
DDRA|=0X01;
PORTA|=0X01;
这样就可以了,不影响PA口其它位的。。。
void_c 发表于 2009-7-27 12:28 | 显示全部楼层

用位域

用位域 

#define LED               IO_BIT_ALIAS(&PORTB,2) 

  LED=0; 
  LED=1; 
  LED=!LED;  
 
avrvi 发表于 2009-7-28 10:25 | 显示全部楼层

这个是ICC下面的


#include <iom16v.h>
#include <macros.h>

typedef struct BYTE_BIT
{
unsigned BIT0:1;
unsigned BIT1:1;
unsigned BIT2:1;
unsigned BIT3:1;
unsigned BIT4:1;
unsigned BIT5:1;
unsigned BIT6:1;
unsigned BIT7:1;
}BYTEBIT;

# define PORTA_BIT   (*((volatile BYTEBIT *)&PORTA))
# define _PA0   PORTA_BIT.BIT0

void main(void)
{
_PA0=1;
}
相关链接:http://www.avrvi.com
bear15888 发表于 2009-7-31 10:48 | 显示全部楼层

4楼,是自己在ICC下写的结构体吧!

您需要登录后才可以回帖 登录 | 注册

本版积分规则

176

主题

484

帖子

0

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