164 #define #define #define #dafine #define #define #define #define #define #define /* SPT #define #define #define #define #define #define #define #define #define #define #define #defi
Trang 1lôi
During C programming, the contents of a specific register may be referred to by name when an
appropriate header file is included within your program The header file provides the link between
the register name used within a program and the hardware location of the register
Provided below is the ATmegal6 header file from the ICC AVR compiler This header file
was provided courtesy of ImageCraft
#define iom16v h
/* ATmegal6 header file for
* ImageCraft TCCAVR compiler
*/
‘
x /
/* interrupt vector number definitions added
*
/* Jast changed 2002/05/01
*&
X7
/* 2 wire serial interface */
4
#define TWBR (*(volatrile unsigned char *)0x20)
#define TWSR (* (volatile unsigned char *) 0x21)
‡†define TWPST 1
#define TWPSO 0
#define TWCR (* (volatile unsigned char *)056)
Trang 2162
#define
#define
#define
#dafine
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
/* ADC *,
TW NT 7 TWEhA 6 TWSTA 5 TWSTO 4
PT WERIN 2
TWAR
TPWGCE 9
TWDR (* (volatile
(*{volatile
,
/
ADC
ADC
ADCH
ADCSR
ADCSRA
ADEN 7 ADSC 6 ADATE 5 ADFR 2 ADIF
ADITE ADPS2 ADPS1 ADESO ADMUX
REEFS 7 REPSO 6
(*(volatile (*{volatile (*{volatile
ADLAR 5 MUX 4 4 MUx3 3 MUX? 2
MUXO 0
(*(volatile unsigned char * {(*{volatile unsigned char
/*This
(*(volatile unsigned char
ATMEL AVR MICROCONTROLLER PRIMER: PROGRAMMING AND INTERFACING
unsigned char *)0x22)
unsigned char *}0x23)}
*} 0x24) char *)Ox24}
*4 0x25}
unsigned int unsigned unsigned char
}Ox26)
* ) 0x26)
definition was in olid "#đ9atasheet*#/
*)0x27)
Trang 3/* Analog Comparator */
#define ACSR {(* (volatile
ACBG 6
#define
tdefine
tdefine
fdefine ACT 4
#define ACEE 3
‡define
†define
#define
/* USART */
#define UBRRHI (*({(volatile unsigned char *
#define UBRRH (*{volatile unsigned char
#define URSEL 7
#define UBRR (*(volatile unsigned char
t†define UCSRC (*{volatile unsigned char
fdefine URSEL 7
#define UMSEL 6
fdefine UPMO 4
tdefine UCSZ1 2
#define UCSZO 1
#define UCPOL 0
#define UCSRB (* (volatile unsigned char
#define TXCIE 5
#tdefine UDRIE 5
fdefine TXEN 3
#define UCSZ2 2
†define RXB8 1
#define UCSRA (* {volatile unsigned char
linsigned char *}
ATMEGAI6 HEADER FILE
9x28)
}ÐÔ
Ôxá£
*)Ôx29)
*}QOx29)
*)Ôx49Q)
*}Ox2A)
*)O0x28)
163
Trang 4164
#define
#define
#define
#dafine
#define
#define
#define
#define
#define
#define
/* SPT
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
/* Port
#define
#define
#define
/* Port
#define
#define
#define
UDR
DOR OVER Phy U2X MPCM 9
/*This
/
SPCR (*(volatile unsigned
DORD 5
MS 'TR 4 CPOL 3 CPHA 2
Corr
SPRU =5 SPSR (*{(volatile unsigned
SPE2X Q SPDR (* (volatile unsigned
D */
PIND
DDERD
PORTD
(*(volatile unsigned
(* (volatile unsigned
C */
PINC
DDRC
PORTC
(*{volatile unsigned (*(volatile unsigned
definition differs
X (*(volatile unsigned char *)0x32)
4 (*(volatile unsigned char *}Gx35)
ATMEL AVR MICROCONTROLLER PRIMER: PROGRAMMING AND INTERFACING
From the ""databook*/
(*{volatile unsigned char *}0x2C)
char *})Ôx2D)}
char *)Ox2F}
char *) 0x30) char *})
char *)Qx33
Ộ + 3 tt
Char *
Trang 5ATMEGAI6 HEADER FILE 165 /* Port B */
#Gefine PINB (* (volatile unsigned char *)Ox36)
#define DDRB (*(volatile unsigned char *)0x37)
8)
#define PORTBR (*(voelatile unsioned char *}0x3
/* Port A */
#define PINA (*{volatile unsigned char *)0x39)
†define DDRA (* (volatile unsigned char *})03A)
fdefine PORTA (*({volatile unsignec char *) 038)
/* EEPROM */
fdefine EBECR (*(volatile unsigned char *)0x3C)
#define EERIE 3
fdefine EEMWE 2
#define PBEBRE 9
+
#define EEDR (*(volatile unsigned char *)0x3D)
#Gefine BEAR (*(volatile unsigned int *}0x3E)
fdefine EBBARL (*(volatile unsigned char *) 0x38)
#define EEARH (* (volatile unsigned char *})Cx3F)
/* Watchdeg Timer Control Regi stes */
#define WDTCR (* {volatile unsigned char *}041)
#Hdefine WDTOR 4
#define WDE
#†define WDP1
‡define WDPO
"3 SF
/* Tamer/Counter 2 */
#define ASSR (* (volatile unsigned char *) 0x42)
#tdefine A32 3
#define TCN2UR 2
#öởefine
tdefine
#define
OCR2ZUB
TCR2ZUB
Trang 6166
ATMEL
#define
#define
#define
#dafine
#define
#define
#define
#define
#define
#define
/* Time
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
v/Counter 1 *,
AVR MICROCONTROLLER PRIMER: PROGRAMMING AND INTERFACING
TONE?
TCCR2 (* (volatile unsigned char
WGM2Ô 6
COM21
COM20
WGM21 3
(*(volatile unsigned char *)0x44)
*) 0x45)
uN th
x / TCRI
TCRIL
ICRIB
OCRIB
OCRIBE
OCRIBH
OCRLA
OCRIAL
OCRILAH
res a Ni r1 4
(*{(volatile unsigned int *}0x46) (*(volatile unsigned char *)0x46) (*(volatile unsigned char *} 0x47}
(*(volatile unsigned int *}0x48}
(*{volatile unsigned char *)0x48)
*)Ox49) (*{volatile unsigned int *}0x4A}
char *)ỳÔx4A) char *}Ox4B)
(*{volatile unsigned char
(* (volatile unsigned (*{volatile unsigned (*{volatile unsigned int *}0x4C}
TCNTIL (* (volatile unsigned char *}Cx4C}
*YOx4D)
*3 0x4)
TCNTLIA
TCCRIB
ECNCL
(*{volatile unsigned char (*{volatile unsigned char
{CES1 6 WGMi 3 4 WGM1 2 3 C512
cS!
c7 TN
CSiLo
TCCRIA (* (volatile unsigned
COMILAL 7 COMIAO 6 COM1B1 5
char *})Ôx4áF)}
Trang 7#öởefine
‡define
#define
define
#define
#define
#define
#define
/* Oscillator Calibration
†define
FOCIA
FOCIB
WGM11
WGM1Ô
SFEOR
ADTS2
ADTSI
ADTSO
ADHSM
ACME:
PUD
PSR2
FPSR1O
OSCCAL
COMIBO
ATMEGAI6 HEADER FILE
cial Function I/O register */
(*(volatile unsigned char *}) x50}
7
(*{volatile unsigned char
* /
/* On-Chip Debug register */
tdefine
Ik
OCDR
/ Timer/Counter
fdefine
#Gefine
#define
#define
#define
#define
#define
fdefine
†define
#define
#öởefine
OCRO
TCNTO
TCCRO
EQCO
WGMÔ Ô
COMO1
COMOĐ9
WGMO1
¬
CS91
O¢
a
`
/* MCU general
(*{volatile unsigned (*{yolatile unsigned
xf
0
9
i
(*(vyolatile unsigned
*/
(*(yolatile unsigned
char *}) 0x51)
char *)0s5C) char *) 0x52}
char *}0x53)
167
Trang 8168
ATMEL AVR MICROCONTROLLER PRIMER: PROGRAMMING AND INTERFACING
#define
#define
#define
#dafine
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
/* SPM
#define
#define
#define
#define
#define
#define
#define
#define
/* Timer/Counter
#define
#qdefine
#define
#define
#define
#define
MCUCR
MCUCSR
MCUSR
JED {SC2 JERE WORE BORE hATRE PORF
SM2
Si SMI SMO TSCil TScio {SCOL
nf TSCOO
SPMCR
SPMšE RWWSB RWWS RE:
BUBSET PGWR?
PGERS
SPMEN
TIPR
OCE2 TOV?
CFL OCFLA OCFiB
(*(volatile unsigned char
interrupts */
(*{volatile unsigned char *)0x54)
*)0x54)
1
6
A
2
1
9 (*~{volatile unsigned char *}0x55)
+
i
Conrol Register */
(*(volatile unsigned char *}0x57}
7
6
fi
“
/
(*(volatile unsigned char *}) 0x58)
1
Trang 9#define
#define
#define
#define
#define
fdefine
#define
#define
fdefine
#define
#define
†define
/*
#Gefine
#define
#define
#Gefine
#define
#define
fdefine
†define
Ik
/ Stack Pointer
#define
‡define
#define
/*
†define
⁄ T = \
/* Port A b:
#define
General interrupts */
Status
TEIMSK (*{volatile unsigned char
/
GEFR (*(volatile unsigned char
INTEL
INTE O
INTE? 5
GICE (*(volatile unsigned char
INTL 7
ENTO D
TNT2
Tx*x7zơma
rVSoe
avr
EVCE œ
*/
SP
SPL
SPH
(*{volatile unsigned int
REGister */
SREG (*{(volatile unsiaqned char
ade ts ° */ / PORTA? 7
ATMEGAI6 HEADER FILE
*}0x59)
*}Ôx5A)
*3O0x5D) (*{volatile unsigned char *}0x5D) (*{vyolatile unsigned char *)Ox5E)
169
Trang 10178 ATMEL AVR MICROCONTROLLER PRIMER: PROGRAMMING AND INTERFACING
#define PORTAS
#define PORTAS5
#define PORTA4
#define PORTA3 3
#define PORTA2 2
#Hdefine PORTAL 1
#define PORTAO 0
#define PA
wi ` oO
#define PA3 3
#define PA2 2
#define PAO 9
#define DDAS 6
#define DDAS5 5
#define DDA3
#define DDAL
#đafine DDAG
#define PINAT
#define PINAG
#define PINAS oD
#define PINA4 4
#define PINA3 3
#define PINA?
#tdefine PINAL 1
#define PINAS Q
/* Pork B bits */
Trang 11#define
#define
#define
#define
#define
fdefine
#define
#Gefine
fdefine
#define
#define
define
#define
#define
tdefine
#define
#Gefine
#define
#define
†define
#define
#define
tdefine
#define
#define
#define
#define
#define
fdefine
†define
#define
/* Port
#define
PORTBS
PORTBS
PORTB4
PORTBS
PORTR2
PORTBI
PORTBO
PB?
PB6
PRBS
PB4
PBS
PR2
PBL
PBO
DDB?
DDB
DDBS5
DDB4
DDB3
DDB2
DDB1
DDBO
PORTC?
NS
ATMEGAI6 HEADER FILE i # i
Trang 12172 ATMEL AVR MICROCONTROLLER PRIMER: PROGRAMMING AND INTERFACING
#define PORTCS
#define PORTCS5
#define PORTC4
#define PORTC3 3
#define PORTC2 2
#define ĐPORTGI 1
#define PORTCO 0
#define
#define
rg a
t G
#define
#define
#define 3
#define
#define
#define
rg Vf cS œS
#define DDC?7 7
#define DDC6 6
#define DDG4 4
#define DDC3
#tdefine DDC?
#define DDCL
#tdefine DDCÔö oO
#define PINCT7
#define ĐING6
#define PING5 oD
#define PINC4 4
#define PINC3 3
#define ĐING2
#define ĐÍNG1 1
#define PINCS Q
/* Pork D bits */
Trang 13#define
#define
#define
#define
#define
fdefine
#define
#Gefine
fdefine
#define
#define
define
#define
#define
tdefine
#define
#Gefine
#define
#define
†define
#define
#define
tdefine
#define
#define
#define
#define
#define
fdefine
†define
#define
/
/* Lock,
PORTDS6
PORTDS
PORTD4
PORTDS
PORTD2
PORTDI
PORTDO
PD?
PDE
PDS
PD4
PDS
PD2
PDI
PDO
DDD?
DDD
DDDS5
DDD4
DDD3
DDD2
DDD1
DDDO
PENDS
PEND4
PEND3
PEND2
PENDI
PENDO
mye and
NS
Fuse mig Bits
ATMEGAI6 HEADER FILE
with LPM/SPM instructions * 7
/
i ~ỹ S2
Trang 14174 ATMEL AVR MICROCONTROLLER PRIMER: PROGRAMMING AND INTERFACING /* lock bits */
#define BULB? 5
#define BLBIL 4
#define BLBOL 2
/* fuses low bits */
#define BODLEVEL 7
#define BODEN 6
#fdefine SUTL 3
#define CKSELS
#define CKSEL2
/* fuses high bits */
#tdefine JTAGEN D
#define SPTEN
#define CKOPT 4
#define BOOTSZ1
#define BOOTSZO
#define BOOTRST Õ
/* Interrupt Vector Numbers */
#define iv TIMER2 COMP 4
Trang 15i
#öefine
‘define
#define
fdefine
#Gefine
#define
#define
#define
#define
#define
†define
fdefine
#define
†define
#Gefine
#define
#define
#Gefine
#define
#define
‡endl£f
iv TEIMER2 OVE
iv TIMER] CAPT
iv _TIMER1 COM
iv TIMERL COME:
iv TIMER] OVE
1V TIMERO OVE
iv BE RDY
iv EE READY
iv ANA COMP
iv ANALOG COME
1V TW
iv 'TWSE
iv INT2
1v TIMERQ COMP
iv _SPM_RDY
iv SPM READY
` oY
ATMEGAI6 HEADER FILE i # 5