Main Page   Compound List   File List   Compound Members   File Members  

iom83.h

Go to the documentation of this file.
00001 /*
00002    iom83.h - internal register definitions for ATmega83
00003 
00004    Contributors:
00005      Created by Marek Michalkiewicz <marekm@linux.org.pl>
00006 
00007    THIS SOFTWARE IS NOT COPYRIGHTED
00008 
00009    This source code is offered for use in the public domain.  You may
00010    use, modify or distribute it freely.
00011 
00012    This code is distributed in the hope that it will be useful, but
00013    WITHOUT ANY WARRANTY.  ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
00014    DISCLAIMED.  This includes but is not limited to warranties of
00015    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
00016 
00017    Warning: subject to change, there may be errors, verify with the
00018    official datasheet when it is released.
00019  */
00020 
00021 #ifndef __IOM83
00022 #define __IOM83
00023 
00024 #define AVR_ENHANCED 1
00025 
00026 /* I/O space addresses */
00027 
00028 /* TWI stands for "Two Wire Interface" or "TWI Was I2C(tm)" */
00029 #define TWBR    0x00
00030 #define TWSR    0x01
00031 #define TWAR    0x02
00032 #define TWDR    0x03
00033 
00034 /* ADC */
00035 #define ADCL    0x04
00036 #define ADCH    0x05
00037 #define ADCSR   0x06
00038 #define ADMUX   0x07
00039 
00040 /* analog comparator */
00041 #define ACSR    0x08
00042 
00043 /* UART */
00044 #define UBRR    0x09
00045 #define UCSRB   0x0A
00046 #define UCSRA   0x0B
00047 #define UDR     0x0C
00048 
00049 /* SPI */
00050 #define SPCR    0x0D
00051 #define SPSR    0x0E
00052 #define SPDR    0x0F
00053 
00054 /* Port D */
00055 #define PIND    0x10
00056 #define DDRD    0x11
00057 #define PORTD   0x12
00058 
00059 /* Port C */
00060 #define PINC    0x13
00061 #define DDRC    0x14
00062 #define PORTC   0x15
00063 
00064 /* Port B */
00065 #define PINB    0x16
00066 #define DDRB    0x17
00067 #define PORTB   0x18
00068 
00069 /* Port A */
00070 #define PINA    0x19
00071 #define DDRA    0x1A
00072 #define PORTA   0x1B
00073 
00074 /* EEPROM */
00075 #define EECR    0x1C
00076 #define EEDR    0x1D
00077 #define EEARL   0x1E
00078 #define EEARH   0x1F
00079 
00080 #define UBRRH   0x20
00081 
00082 #define WDTCR   0x21
00083 
00084 #define ASSR    0x22
00085 
00086 /* Timer 2 */
00087 #define OCR2    0x23
00088 #define TCNT2   0x24
00089 #define TCCR2   0x25
00090 
00091 /* Timer 1 */
00092 #define ICR1L   0x26
00093 #define ICR1H   0x27
00094 #define OCR1BL  0x28
00095 #define OCR1BH  0x29
00096 #define OCR1AL  0x2A
00097 #define OCR1AH  0x2B
00098 #define TCNT1L  0x2C
00099 #define TCNT1H  0x2D
00100 #define TCCR1B  0x2E
00101 #define TCCR1A  0x2F
00102 
00103 #define SFIOR   0x30
00104 
00105 #define OSCCAL  0x31
00106 
00107 /* Timer 0 */
00108 #define TCNT0   0x32
00109 #define TCCR0   0x33
00110 
00111 #define MCUSR   0x34
00112 #define MCUCR   0x35
00113 
00114 #define TWCR    0x36
00115 
00116 #define SPMCR   0x37
00117 
00118 #define TIFR    0x38
00119 #define TIMSK   0x39
00120 
00121 #define GIFR    0x3A
00122 #define GIMSK   0x3B
00123 
00124 /* 0x3C reserved (OCR0?) */
00125 
00126 #define SPL     0x3D
00127 #define SPH     0x3E
00128 #define SREG    0x3F
00129 
00130 
00131 /* Interrupt vectors (byte addresses) */
00132 
00133 #define RESET_vect              (0x00)
00134 #define INT0_vect               (0x02)
00135 #define INT1_vect               (0x04)
00136 #define TIMER2_COMP_vect        (0x06)
00137 #define TIMER2_OVF_vect         (0x08)
00138 #define TIMER1_CAPT_vect        (0x0A)
00139 #define TIMER1_COMPA_vect       (0x0C)
00140 #define TIMER1_COMPB_vect       (0x0E)
00141 #define TIMER1_OVF_vect         (0x10)
00142 #define TIMER0_OVF_vect         (0x12)
00143 #define SPI_STC_vect            (0x14)
00144 #define UART_RX_vect            (0x16)
00145 #define UART_UDRE_vect          (0x18)
00146 #define UART_TX_vect            (0x1A)
00147 #define ADC_vect                (0x1C)
00148 #define EE_RDY_vect             (0x1E)
00149 #define ANA_COMP_vect           (0x20)
00150 #define TWI_INT_vect            (0x22)
00151 
00152 #define INT_VECT_SIZE (0x24)
00153 
00154 /* Bit numbers */
00155 
00156 /* GIMSK */
00157 #define INT1    7
00158 #define INT0    6
00159 
00160 /* GIFR */
00161 #define INTF1   7
00162 #define INTF0   6
00163 
00164 /* TIMSK */
00165 #define OCIE2   7
00166 #define TOIE2   6
00167 #define TICIE1  5
00168 #define OCIE1A  4
00169 #define OCIE1B  3
00170 #define TOIE1   2
00171 /* bit 1 reserved (OCIE0?) */
00172 #define TOIE0   0
00173 
00174 /* TIFR */
00175 #define OCF2    7
00176 #define TOV2    6
00177 #define ICF1    5
00178 #define OCF1A   4
00179 #define OCF1B   3
00180 #define TOV1    2
00181 /* bit 1 reserved (OCF0?) */
00182 #define TOV0    0
00183 
00184 /* SPMCR */
00185 /* bits 7-4 reserved */
00186 #define BLBSET  3
00187 #define PGWRT   2
00188 #define PGERS   1
00189 #define SPMEN   0
00190 
00191 /* TWCR */
00192 #define TWINT   7
00193 #define TWEA    6
00194 #define TWSTA   5
00195 #define TWSTO   4
00196 #define TWWC    3
00197 #define TWEN    2
00198 /* bit 1 reserved (TWI_TST?) */
00199 #define TWIE    0
00200 
00201 /* TWAR */
00202 #define TWGCE   0
00203 
00204 /* MCUCR */
00205 /* bit 7 reserved (SM2?) */
00206 #define SE      6
00207 #define SM1     5
00208 #define SM0     4
00209 #define ISC11   3
00210 #define ISC10   2
00211 #define ISC01   1
00212 #define ISC00   0
00213 
00214 /* MCUSR */
00215 /* bits 7-4 reserved */
00216 #define WDRF    3
00217 #define BORF    2
00218 #define EXTRF   1
00219 #define PORF    0
00220 
00221 /* SFIOR */
00222 /* bits 7-4 reserved */
00223 #define ACME    3
00224 #define PUD     2
00225 #define PSR2    1
00226 #define PSR10   0
00227 
00228 /* TCCR0 */
00229 /* bits 7-3 reserved */
00230 #define CS02    2
00231 #define CS01    1
00232 #define CS00    0
00233 
00234 /* TCCR2 */
00235 #define FOC2    7
00236 #define PWM2    6
00237 #define COM21   5
00238 #define COM20   4
00239 #define CTC2    3
00240 #define CS22    2
00241 #define CS21    1
00242 #define CS20    0
00243 
00244 /* ASSR */
00245 /* bits 7-4 reserved */
00246 #define AS2     3
00247 #define TCN2UB  2
00248 #define OCR2UB  1
00249 #define TCR2UB  0
00250 
00251 /* TCCR1A */
00252 #define COM1A1  7
00253 #define COM1A0  6
00254 #define COM1B1  5
00255 #define COM1B0  4
00256 #define FOC1A   3
00257 #define FOC1B   2
00258 #define PWM11   1
00259 #define PWM10   0
00260 
00261 /* TCCR1B */
00262 #define ICNC1   7
00263 #define ICES1   6
00264 /* bits 5-4 reserved */
00265 #define CTC1    3
00266 #define CS12    2
00267 #define CS11    1
00268 #define CS10    0
00269 
00270 /* WDTCR */
00271 /* bits 7-5 reserved */
00272 #define WDTOE   4
00273 #define WDE     3
00274 #define WDP2    2
00275 #define WDP1    1
00276 #define WDP0    0
00277 
00278 /* EECR */
00279 /* bits 7-4 reserved */
00280 #define EERIE   3
00281 #define EEMWE   2
00282 #define EEWE    1
00283 #define EERE    0
00284 
00285 /* PA7-PA0 = ADC7-ADC0 */
00286 /* PORTA */
00287 #define PA7     7
00288 #define PA6     6
00289 #define PA5     5
00290 #define PA4     4
00291 #define PA3     3
00292 #define PA2     2
00293 #define PA1     1
00294 #define PA0     0
00295 
00296 /* DDRA */
00297 #define DDA7    7
00298 #define DDA6    6
00299 #define DDA5    5
00300 #define DDA4    4
00301 #define DDA3    3
00302 #define DDA2    2
00303 #define DDA1    1
00304 #define DDA0    0
00305 
00306 /* PINA */
00307 #define PINA7   7
00308 #define PINA6   6
00309 #define PINA5   5
00310 #define PINA4   4
00311 #define PINA3   3
00312 #define PINA2   2
00313 #define PINA1   1
00314 #define PINA0   0
00315 
00316 /*
00317    PB7 = SCK
00318    PB6 = MISO
00319    PB5 = MOSI
00320    PB4 = SS#
00321    PB3 = AIN1
00322    PB2 = AIN0
00323    PB1 = T1
00324    PB0 = T0
00325  */
00326 
00327 /* PORTB */
00328 #define PB7     7
00329 #define PB6     6
00330 #define PB5     5
00331 #define PB4     4
00332 #define PB3     3
00333 #define PB2     2
00334 #define PB1     1
00335 #define PB0     0
00336 
00337 /* DDRB */
00338 #define DDB7    7
00339 #define DDB6    6
00340 #define DDB5    5
00341 #define DDB4    4
00342 #define DDB3    3
00343 #define DDB2    2
00344 #define DDB1    1
00345 #define DDB0    0
00346 
00347 /* PINB */
00348 #define PINB7   7
00349 #define PINB6   6
00350 #define PINB5   5
00351 #define PINB4   4
00352 #define PINB3   3
00353 #define PINB2   2
00354 #define PINB1   1
00355 #define PINB0   0
00356 
00357 /*
00358    PC7 = TOSC2
00359    PC6 = TOSC1
00360    PC1 = SDA
00361    PC0 = SCL
00362  */
00363 /* PORTC */
00364 #define PC7      7
00365 #define PC6      6
00366 #define PC5      5
00367 #define PC4      4
00368 #define PC3      3
00369 #define PC2      2
00370 #define PC1      1
00371 #define PC0      0
00372 
00373 /* DDRC */
00374 #define DDC7    7
00375 #define DDC6    6
00376 #define DDC5    5
00377 #define DDC4    4
00378 #define DDC3    3
00379 #define DDC2    2
00380 #define DDC1    1
00381 #define DDC0    0
00382 
00383 /* PINC */
00384 #define PINC7   7
00385 #define PINC6   6
00386 #define PINC5   5
00387 #define PINC4   4
00388 #define PINC3   3
00389 #define PINC2   2
00390 #define PINC1   1
00391 #define PINC0   0
00392 
00393 /*
00394    PD7 = OC2
00395    PD6 = ICP
00396    PD5 = OC1A
00397    PD4 = OC1B
00398    PD3 = INT1
00399    PD2 = INT0
00400    PD1 = TXD
00401    PD0 = RXD
00402  */
00403 
00404 /* PORTD */
00405 #define PD7      7
00406 #define PD6      6
00407 #define PD5      5
00408 #define PD4      4
00409 #define PD3      3
00410 #define PD2      2
00411 #define PD1      1
00412 #define PD0      0
00413 
00414 /* DDRD */
00415 #define DDD7    7
00416 #define DDD6    6
00417 #define DDD5    5
00418 #define DDD4    4
00419 #define DDD3    3
00420 #define DDD2    2
00421 #define DDD1    1
00422 #define DDD0    0
00423 
00424 /* PIND */
00425 #define PIND7   7
00426 #define PIND6   6
00427 #define PIND5   5
00428 #define PIND4   4
00429 #define PIND3   3
00430 #define PIND2   2
00431 #define PIND1   1
00432 #define PIND0   0
00433 
00434 /*
00435    PE2 = ALE
00436    PE1 = OC1B
00437    PE0 = ICP / INT2
00438  */
00439 
00440 /* SPSR */
00441 #define SPIF    7
00442 #define WCOL    6
00443 #define SPI2X   0
00444 
00445 /* SPCR */
00446 #define SPIE    7
00447 #define SPE     6
00448 #define DORD    5
00449 #define MSTR    4
00450 #define CPOL    3
00451 #define CPHA    2
00452 #define SPR1    1
00453 #define SPR0    0
00454 
00455 /* UCSRA */
00456 #define RXC     7
00457 #define TXC     6
00458 #define UDRE    5
00459 #define FE      4
00460 #define OVR     3
00461 /* bit 2 reserved (PE?) */
00462 #define U2X     1
00463 #define MPCM    0
00464 
00465 /* UCSRB */
00466 #define RXCIE   7
00467 #define TXCIE   6
00468 #define UDRIE   5
00469 #define RXEN    4
00470 #define TXEN    3
00471 #define CHR9    2
00472 #define RXB8    1
00473 #define TXB8    0
00474 
00475 /* ACSR */
00476 #define ACD     7
00477 #define AINBG   6
00478 #define ACO     5
00479 #define ACI     4
00480 #define ACIE    3
00481 #define ACIC    2
00482 #define ACIS1   1
00483 #define ACIS0   0
00484 
00485 /* ADCSR */
00486 #define ADEN    7
00487 #define ADSC    6
00488 #define ADFR    5
00489 #define ADIF    4
00490 #define ADIE    3
00491 #define ADPS2   2
00492 #define ADPS1   1
00493 #define ADPS0   0
00494 
00495 /* ADMUX */
00496 #define REFS1   7
00497 #define REFS0   6
00498 #define ADLAR   5
00499 #define MUX4    4
00500 #define MUX3    3
00501 #define MUX2    2
00502 #define MUX1    1
00503 #define MUX0    0
00504 
00505 /* Pointer registers (same for all AVR devices so far) */
00506 #define XL r26
00507 #define XH r27
00508 #define YL r28
00509 #define YH r29
00510 #define ZL r30
00511 #define ZH r31
00512 
00513 /* Last memory addresses */
00514 #define RAMEND          0x25F
00515 #define XRAMEND         0x25F
00516 #define E2END           0x1FF
00517 #define FLASHEND        0x1FFF
00518 
00519 #endif  /* __IOM83 */

Generated at Fri Jul 19 14:55:41 2002 for avrgcc by doxygen1.2.8.1 written by Dimitri van Heesch, © 1997-2001