Main Page   Compound List   File List   Compound Members   File Members  

iotn15.h

Go to the documentation of this file.
00001 /*
00002    iotn15.h - internal register definitions for ATtiny15
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    Based on advance information Atmel datasheet Rev. 1187A-08/99.
00018  */
00019 
00020 #ifndef __IOTN15
00021 #define __IOTN15 1
00022 
00023 #ifndef __ASSEMBLER__
00024 #  warning "MCU not supported by the C compiler"
00025 #endif
00026 
00027 /* I/O space addresses */
00028 
00029 /* 0x00..0x03 reserved */
00030 
00031 #define ADCL    0x04
00032 #define ADCH    0x05
00033 #define ADCSR   0x06
00034 #define ADMUX   0x07
00035 
00036 /* Analog Comparator Control and Status Register */
00037 #define ACSR    0x08
00038 
00039 /* 0x09..0x15 reserved */
00040 
00041 /* Input Pins, Port B */
00042 #define PINB    0x16
00043 
00044 /* Data Direction Register, Port B */
00045 #define DDRB    0x17
00046 
00047 /* Data Register, Port B */
00048 #define PORTB   0x18
00049 
00050 /* 0x19..0x1B reserved */
00051 
00052 /* EEPROM Control Register */
00053 #define EECR    0x1C
00054 
00055 /* EEPROM Data Register */
00056 #define EEDR    0x1D
00057 
00058 /* EEPROM Address Register */
00059 #define EEARL   0x1E
00060 
00061 /* 0x1F..0x20 reserved */
00062 
00063 /* Watchdog Timer Control Register */
00064 #define WDTCR   0x21
00065 
00066 /* 0x22..0x2B reserved */
00067 #define SFIOR   0x2C
00068 
00069 #define OCR1B   0x2D
00070 #define OCR1A   0x2E
00071 #define TCNT1   0x2F
00072 #define TCCR1   0x30
00073 
00074 /* Oscillator Calibration Register */
00075 #define OSCCAL  0x31
00076 
00077 /* Timer/Counter0 (8-bit) */
00078 #define TCNT0   0x32
00079 
00080 /* Timer/Counter0 Control Register */
00081 #define TCCR0   0x33
00082 
00083 /* MCU general Status Register */
00084 #define MCUSR   0x34
00085 
00086 /* MCU general Control Register */
00087 #define MCUCR   0x35
00088 
00089 /* 0x36..0x37 reserved */
00090 
00091 /* Timer/Counter Interrupt Flag Register */
00092 #define TIFR    0x38
00093 
00094 /* Timer/Counter Interrupt MaSK Register */
00095 #define TIMSK   0x39
00096 
00097 /* General Interrupt Flag Register */
00098 #define GIFR    0x3A
00099 
00100 /* General Interrupt MaSK register */
00101 #define GIMSK   0x3B
00102 
00103 /* 0x3C..0x3E reserved */
00104 
00105 /* Status REGister */
00106 #define SREG    0x3F
00107 
00108 /* Interrupt vectors (byte addresses) */
00109 /* Warning: different order (ADC is before EE_RDY in other devices) */
00110 #define RESET_vect              (0x00)
00111 #define INT0_vect               (0x02)
00112 #define PIN_vect                (0x04)
00113 #define TIMER1_COMPA_vect       (0x06)
00114 #define TIMER1_OVF_vect         (0x08)
00115 #define TIMER0_OVF_vect         (0x0A)
00116 #define EE_RDY_vect             (0x0C)
00117 #define ANA_COMP_vect           (0x0E)
00118 #define ADC_vect                (0x10)
00119 
00120 #define INT_VECT_SIZE (0x12)
00121 
00122 /* Bit numbers */
00123 
00124 /* GIMSK */
00125 #define INT0    6
00126 #define PCIE    5
00127 
00128 /* GIFR */
00129 #define INTF0   6
00130 #define PCIF    5
00131 
00132 /* TIMSK */
00133 #define OCIE1   6
00134 #define TOIE1   2
00135 #define TOIE0   1
00136 
00137 /* TIFR */
00138 #define OCF1    6
00139 #define TOV1    2
00140 #define TOV0    1
00141 
00142 /* MCUCR */
00143 #define PUD     6
00144 #define SE      5
00145 #define SM1     4
00146 #define SM0     3
00147 #define ISC01   1
00148 #define ISC00   0
00149 
00150 /* MCUSR */
00151 #define WDRF    3
00152 #define BORF    2
00153 #define EXTRF   1
00154 #define PORF    0
00155 
00156 /* TCCR0 */
00157 #define CS02    2
00158 #define CS01    1
00159 #define CS00    0
00160 
00161 /* TCCR1 */
00162 #define CTC1    7
00163 #define PWM1    6
00164 #define COM1A1  5
00165 #define COM1A0  4
00166 #define CS13    3
00167 #define CS12    2
00168 #define CS11    1
00169 #define CS10    0
00170 
00171 /* SFIOR */
00172 #define FOC1A   2
00173 #define PSR1    1
00174 #define PSR0    0
00175 
00176 /* WDTCR */
00177 #define WDTOE   4
00178 #define WDE     3
00179 #define WDP2    2
00180 #define WDP1    1
00181 #define WDP0    0
00182 
00183 /* EECR */
00184 #define EERIE   3
00185 #define EEMWE   2
00186 #define EEWE    1
00187 #define EERE    0
00188 
00189 /*
00190    PB5 = RESET# / ADC0
00191    PB4 = ADC3
00192    PB3 = ADC2
00193    PB2 = SCK / ADC1 / T0 / INT0
00194    PB1 = MISO / AIN1 / OCP
00195    PB0 = MOSI / AIN0 / AREF
00196  */
00197 
00198 /* PORTB */
00199 #define PORTB4  4
00200 #define PORTB3  3
00201 #define PORTB2  2
00202 #define PORTB1  1
00203 #define PORTB0  0
00204 
00205 /* DDRB */
00206 #define DDB4    4
00207 #define DDB3    3
00208 #define DDB2    2
00209 #define DDB1    1
00210 #define DDB0    0
00211 
00212 /* PINB */
00213 #define PINB5   5
00214 #define PINB4   4
00215 #define PINB3   3
00216 #define PINB2   2
00217 #define PINB1   1
00218 #define PINB0   0
00219 
00220 /* ACSR */
00221 #define ACD     7
00222 #define GREF    6
00223 #define ACO     5
00224 #define ACI     4
00225 #define ACIE    3
00226 #define ACIS1   1
00227 #define ACIS0   0
00228 
00229 /* ADMUX */
00230 #define REFS1   7
00231 #define REFS0   6
00232 #define ADLAR   5
00233 #define MUX2    2
00234 #define MUX1    1
00235 #define MUX0    0
00236 
00237 /* ADCSR */
00238 #define ADEN    7
00239 #define ADSC    6
00240 #define ADFR    5
00241 #define ADIF    4
00242 #define ADIE    3
00243 #define ADPS2   2
00244 #define ADPS1   1
00245 #define ADPS0   0
00246 
00247 #define ZL r30
00248 #define ZH r31
00249 
00250 /* Last memory addresses */
00251 #define RAMEND          0x1F
00252 #define XRAMEND         0x0
00253 #define E2END           0x3F
00254 #define FLASHEND        0x3FF
00255 
00256 #endif  /* __IOTN15 */

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