专注电子技术学习与研究
当前位置:单片机教程网 >> MCU设计实例 >> 浏览文章

位域的方式做AVR的位定义

作者:佚名   来源:本站原创   点击数:  更新时间:2012年04月02日   【字体:
#ifndef __MEGA48IOBIT_H__
#define __MEGA48IOBIT_H__
typedef struct _bit_field
{
unsigned bit0:1;
unsigned bit1:1;
unsigned bit2:1;
unsigned bit3:1;
unsigned bit4:1;
unsigned bit5:1;
unsigned bit6:1;
unsigned bit7:1;
}bit_field;
#define _PIND   0x29
#define PIND00   (*(volatile bit_field*)(_PIND)).bit0
#define PIND01   (*(volatile bit_field*)(_PIND)).bit1
#define PIND02   (*(volatile bit_field*)(_PIND)).bit2
#define PIND03   (*(volatile bit_field*)(_PIND)).bit3
#define PIND04   (*(volatile bit_field*)(_PIND)).bit4
#define PIND05   (*(volatile bit_field*)(_PIND)).bit5
#define PIND06   (*(volatile bit_field*)(_PIND)).bit6
#define PIND07   (*(volatile bit_field*)(_PIND)).bit7
#define _DDRD   0x2A
#define DDRD00   (*(volatile bit_field*)(_DDRD)).bit0
#define DDRD01   (*(volatile bit_field*)(_DDRD)).bit1
#define DDRD02   (*(volatile bit_field*)(_DDRD)).bit2
#define DDRD03   (*(volatile bit_field*)(_DDRD)).bit3
#define DDRD04   (*(volatile bit_field*)(_DDRD)).bit4
#define DDRD05   (*(volatile bit_field*)(_DDRD)).bit5
#define DDRD06   (*(volatile bit_field*)(_DDRD)).bit6
#define DDRD07   (*(volatile bit_field*)(_DDRD)).bit7
#define _PORTD  0x2B
#define PORTD00  (*(volatile bit_field*)(_PORTD)).bit0
#define PORTD01  (*(volatile bit_field*)(_PORTD)).bit1
#define PORTD02  (*(volatile bit_field*)(_PORTD)).bit2
#define PORTD03  (*(volatile bit_field*)(_PORTD)).bit3
#define PORTD04  (*(volatile bit_field*)(_PORTD)).bit4
#define PORTD05  (*(volatile bit_field*)(_PORTD)).bit5
#define PORTD06  (*(volatile bit_field*)(_PORTD)).bit6
#define PORTD07  (*(volatile bit_field*)(_PORTD)).bit7
#define _PINC   0x26
#define PINC00   (*(volatile bit_field*)(_PINC)).bit0
#define PINC01   (*(volatile bit_field*)(_PINC)).bit1
#define PINC02   (*(volatile bit_field*)(_PINC)).bit2
#define PINC03   (*(volatile bit_field*)(_PINC)).bit3
#define PINC04   (*(volatile bit_field*)(_PINC)).bit4
#define PINC05   (*(volatile bit_field*)(_PINC)).bit5
#define PINC06   (*(volatile bit_field*)(_PINC)).bit6
#define PINC07   (*(volatile bit_field*)(_PINC)).bit7
#define _DDRC   0x27
#define DDRC00   (*(volatile bit_field*)(_DDRC)).bit0
#define DDRC01   (*(volatile bit_field*)(_DDRC)).bit1
#define DDRC02   (*(volatile bit_field*)(_DDRC)).bit2
#define DDRC03   (*(volatile bit_field*)(_DDRC)).bit3
#define DDRC04   (*(volatile bit_field*)(_DDRC)).bit4
#define DDRC05   (*(volatile bit_field*)(_DDRC)).bit5
#define DDRC06   (*(volatile bit_field*)(_DDRC)).bit6
#define DDRC07   (*(volatile bit_field*)(_DDRC)).bit7
#define _PORTC  0x28
#define PORTC00  (*(volatile bit_field*)(_PORTC)).bit0
#define PORTC01  (*(volatile bit_field*)(_PORTC)).bit1
#define PORTC02  (*(volatile bit_field*)(_PORTC)).bit2
#define PORTC03  (*(volatile bit_field*)(_PORTC)).bit3
#define PORTC04  (*(volatile bit_field*)(_PORTC)).bit4
#define PORTC05  (*(volatile bit_field*)(_PORTC)).bit5
#define PORTC06  (*(volatile bit_field*)(_PORTC)).bit6
#define PORTC07  (*(volatile bit_field*)(_PORTC)).bit7
#define _PINB   0x23
#define PINB00   (*(volatile bit_field*)(_PINB)).bit0
#define PINB01   (*(volatile bit_field*)(_PINB)).bit1
#define PINB02   (*(volatile bit_field*)(_PINB)).bit2
#define PINB03   (*(volatile bit_field*)(_PINB)).bit3
#define PINB04   (*(volatile bit_field*)(_PINB)).bit4
#define PINB05   (*(volatile bit_field*)(_PINB)).bit5
#define PINB06   (*(volatile bit_field*)(_PINB)).bit6
#define PINB07   (*(volatile bit_field*)(_PINB)).bit7
#define _DDRB   0x24
#define DDRB00   (*(volatile bit_field*)(_DDRB)).bit0
#define DDRB01   (*(volatile bit_field*)(_DDRB)).bit1
#define DDRB02   (*(volatile bit_field*)(_DDRB)).bit2
#define DDRB03   (*(volatile bit_field*)(_DDRB)).bit3
#define DDRB04   (*(volatile bit_field*)(_DDRB)).bit4
#define DDRB05   (*(volatile bit_field*)(_DDRB)).bit5
#define DDRB06   (*(volatile bit_field*)(_DDRB)).bit6
#define DDRB07   (*(volatile bit_field*)(_DDRB)).bit7
#define _PORTB  0x25
#define PORTB00  (*(volatile bit_field*)(_PORTB)).bit0
#define PORTB01  (*(volatile bit_field*)(_PORTB)).bit1
#define PORTB02  (*(volatile bit_field*)(_PORTB)).bit2
#define PORTB03  (*(volatile bit_field*)(_PORTB)).bit3
#define PORTB04  (*(volatile bit_field*)(_PORTB)).bit4
#define PORTB05  (*(volatile bit_field*)(_PORTB)).bit5
#define PORTB06  (*(volatile bit_field*)(_PORTB)).bit6
#define PORTB07  (*(volatile bit_field*)(_PORTB)).bit7

#endif
关闭窗口

相关文章