Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
1186 | savelij | 1 | ifndef __regm328inc |
2 | __regm328inc equ 1 |
||
3 | save |
||
4 | listing off ; no listing over this file |
||
5 | |||
6 | ;**************************************************************************** |
||
7 | ;* * |
||
8 | ;* AS 1.42 - File REGM328.INC * |
||
9 | ;* * |
||
10 | ;* Contains Bit & Register Definitions for ATmega328 * |
||
11 | ;* * |
||
12 | ;**************************************************************************** |
||
13 | |||
14 | ;---------------------------------------------------------------------------- |
||
15 | ; Memory Limits |
||
16 | |||
17 | E2END equ 1023 |
||
18 | RAMSTART equ 0x100,data |
||
19 | RAMEND equ 0x8ff,data |
||
20 | FLASHEND label 0x7fff |
||
21 | |||
22 | ;---------------------------------------------------------------------------- |
||
23 | ; Chip Control |
||
24 | |||
25 | MCUCR port 0x35 ; MCU Control Register |
||
26 | IVCE avrbit MCUCR,0 ; Interrupt Vector Change Enable |
||
27 | IVSEL avrbit MCUCR,1 ; Interrupt Vector Select |
||
28 | BODSE avrbit MCUCR,5 ; BOD Sleep Enable |
||
29 | BODS avrbit MCUCR,6 ; BOD Sleep |
||
30 | |||
31 | MCUSR port 0x34 ; MCU Status Register |
||
32 | PORF avrbit MCUSR,0 ; Power-on Reset Occured |
||
33 | EXTRF avrbit MCUSR,1 ; External Reset Occured |
||
34 | BORF avrbit MCUSR,2 ; Brown Out Reset Occured |
||
35 | WDRF avrbit MCUSR,3 ; Watchdog Reset Occured |
||
36 | |||
37 | SMCR port 0x33 ; Sleep Mode Control Register |
||
38 | SE avrbit SMCR,0 ; Sleep Mode Enable |
||
39 | SM0 avrbit SMCR,1 ; Sleep Mode Select |
||
40 | SM1 avrbit SMCR,2 |
||
41 | SM2 avrbit SMCR,3 |
||
42 | |||
43 | PRR sfr 0x64 ; Power Reduction Register |
||
44 | PRADC avrbit PRR,0 ; Power Reduction ADC |
||
45 | PRUSART0 avrbit PRR,1 ; Power Reduction USART0 |
||
46 | PRSPI0 avrbit PRR,2 ; Power Reduction Serial Peripheral Interface 0 |
||
47 | PRTIM1 avrbit PRR,3 ; Power Reduction Timer/Counter 1 |
||
48 | PRTIM0 avrbit PRR,5 ; Power Reduction Timer/Counter 0 |
||
49 | PRTIM2 avrbit PRR,6 ; Power Reduction Timer/Counter 2 |
||
50 | PRTWI0 avrbit PRR,7 ; Power Reduction Two Wire Interface 0 |
||
51 | |||
52 | OSCCAL sfr 0x66 ; Oscillator Calibration |
||
53 | |||
54 | CLKPR sfr 0x61 ; Clock Prescale Register |
||
55 | CLKPS0 avrbit CLKPR,0 ; Clock Prescaler Relect |
||
56 | CLKPS1 avrbit CLKPR,1 |
||
57 | CLKPS2 avrbit CLKPR,2 |
||
58 | CLKPS3 avrbit CLKPR,3 |
||
59 | CLKPCE avrbit CLKPR,7 ; Clock Prescaler Change Enable |
||
60 | |||
61 | DWDR port 0x31 ; debugWire Data Register |
||
62 | |||
63 | ;---------------------------------------------------------------------------- |
||
64 | ; EEPROM/Program Memory Access |
||
65 | |||
66 | include "eem2.inc" |
||
67 | include "spmcsr37.inc" |
||
68 | |||
69 | EEPM0 avrbit EECR,4 ; EEPROM Programming Mode |
||
70 | EEPM1 avrbit EECR,5 |
||
71 | |||
72 | ; additional bits in SPMCSR |
||
73 | SIGRD avrbit SPMCSR,5 ; signature row read |
||
74 | |||
75 | ;---------------------------------------------------------------------------- |
||
76 | ; GPIO |
||
77 | |||
78 | PUD avrbit MCUCR,4 ; pull up Disable |
||
79 | |||
80 | PINB port 0x03 ; Port B @ 0x03 (IO) ff. |
||
81 | PINC port 0x06 ; Port C @ 0x06 (IO) ff. |
||
82 | PIND port 0x09 ; Port D @ 0x09 (IO) ff. |
||
83 | |||
84 | PCMSK0 sfr 0x6b ; Pin Change Mask Register 0 |
||
85 | PCMSK1 sfr 0x6c ; Pin Change Mask Register 1 (8..14) |
||
86 | PCMSK2 sfr 0x6d ; Pin Change Mask Register 2 |
||
87 | PCICR sfr 0x68 ; Pin Change Interrupt Control Register |
||
88 | PCIFR port 0x1b ; Pin Change Interrupt Flag Register |
||
89 | |||
90 | GPIOR0 port 0x1e ; general purpose Registers |
||
91 | GPIOR1 port 0x2a |
||
92 | GPIOR2 port 0x2b |
||
93 | |||
94 | ;---------------------------------------------------------------------------- |
||
95 | ; Interrupt Vectors |
||
96 | |||
97 | enumconf 2,code |
||
98 | enum INT0_vect=2 ; External Interrupt Request 0 |
||
99 | nextenum INT1_vect ; External Interrupt Request 1 |
||
100 | nextenum PCINT0_vect ; pin change Interrupt Request 0 |
||
101 | nextenum PCINT1_vect ; pin change Interrupt Request 1 |
||
102 | nextenum PCINT2_vect ; pin change Interrupt Request 2 |
||
103 | nextenum WDT_vect ; watchdog time-out Interrupt |
||
104 | nextenum TIMER2_COMPA_vect ; Timer/Counter 2 Compare Match A |
||
105 | nextenum TIMER2_COMPB_vect ; Timer/Counter 2 Compare Match B |
||
106 | nextenum TIMER2_OVF_vect ; Timer/Counter 2 Overflow |
||
107 | nextenum TIMER1_CAPT_vect ; Timer/Counter 1 Capture |
||
108 | nextenum TIMER1_COMPA_vect ; Timer/Counter 1 Compare Match A |
||
109 | nextenum TIMER1_COMPB_vect ; Timer/Counter 1 Compare Match B |
||
110 | nextenum TIMER1_OVF_vect ; Timer/Counter 1 Overflow |
||
111 | nextenum TIMER0_COMPA_vect ; Timer/Counter 0 Compare Match A |
||
112 | nextenum TIMER0_COMPB_vect ; Timer/Counter 0 Compare Match B |
||
113 | nextenum TIMER0_OVF_vect ; Timer/Counter 0 Overflow |
||
114 | nextenum SPI_STC_vect ; SPI Serial Transfer Complete |
||
115 | nextenum USART_RX_vect ; USART Rx Complete |
||
116 | nextenum USART_UDRE_vect ; USART Data Register Empty |
||
117 | nextenum USART_TX_vect ; USART Tx Complete |
||
118 | nextenum ADC_vect ; ADC conversion Complete |
||
119 | nextenum EE_READY_vect ; EEPROM Ready |
||
120 | nextenum ANALOG_COMP_vect ; Analog Comparator |
||
121 | nextenum TWI_vect ; two-wire Serial interface |
||
122 | nextenum SPM_READY_vect ; store program memory Ready |
||
123 | |||
124 | ;---------------------------------------------------------------------------- |
||
125 | ; External Interrupts |
||
126 | |||
127 | EICRA sfr 0x69 ; External Interrupt Control Register A |
||
128 | ISC00 avrbit EICRA,0 ; External Interrupt 0 Sense Control |
||
129 | ISC01 avrbit EICRA,1 |
||
130 | ISC10 avrbit EICRA,2 ; External Interrupt 1 Sense Control |
||
131 | ISC11 avrbit EICRA,3 |
||
132 | |||
133 | EIMSK port 0x1d ; External Interrupt Mask Register |
||
134 | INT0 avrbit EIMSK,0 ; Enable External Interrupt 0 |
||
135 | INT1 avrbit EIMSK,1 ; Enable External Interrupt 1 |
||
136 | |||
137 | EIFR port 0x1c ; External Interrupt Flag Register |
||
138 | INTF0 avrbit EIFR,0 ; External Interrupt 0 Occured |
||
139 | INTF1 avrbit EIFR,1 ; External Interrupt 1 Occured |
||
140 | |||
141 | ;---------------------------------------------------------------------------- |
||
142 | ; Timers |
||
143 | |||
144 | GTCCR port 0x23 ; General Timer/Counter Control Register |
||
145 | PSRSYNC avrbit GTCCR,0 ; Prescaler Reset |
||
146 | PSRASY avrbit GTCCR,1 ; Prescaler Reset Timer/Counter2 |
||
147 | TSM avrbit GTCCR,7 ; Timer/Counter Synchronization Mode |
||
148 | |||
149 | TCCR0A port 0x24 ; Timer/Counter 0 Control Register A |
||
150 | WGM00 avrbit TCCR0A,0 ; Timer/Counter 0 Waveform Generation Mode |
||
151 | WGM01 avrbit TCCR0A,1 |
||
152 | COM0B0 avrbit TCCR0A,4 ; Timer/Counter 0 Compare B Mode |
||
153 | COM0B1 avrbit TCCR0A,5 |
||
154 | COM0A0 avrbit TCCR0A,6 ; Timer/Counter 0 Compare A Mode |
||
155 | COM0A1 avrbit TCCR0A,7 |
||
156 | TCCR0B port 0x25 ; Timer/Counter 0 Control Register B |
||
157 | CS00 avrbit TCCR0B,0 ; Timer/Counter 0 Clock Select |
||
158 | CS01 avrbit TCCR0B,1 |
||
159 | CS02 avrbit TCCR0B,2 |
||
160 | WGM02 avrbit TCCR0B,3 ; Timer/Counter 0 Waveform Generation Mode |
||
161 | FOC0B avrbit TCCR0B,6 ; Timer/Counter 0 Force Output Compare B |
||
162 | FOC0A avrbit TCCR0B,7 ; Timer/Counter 0 Force Output Compare A |
||
163 | TCNT0 port 0x26 ; Timer/Counter 0 |
||
164 | OCR0A port 0x27 ; Timer/Counter 0 Output Compare Value A |
||
165 | OCR0B port 0x28 ; Timer/Counter 0 Output Compare Value B |
||
166 | |||
167 | TCCR1A sfr 0x80 ; Timer/Counter 1 Control Register A |
||
168 | WGM10 avrbit TCCR1A,0 ; Timer/Counter 1 Waveform Generation Mode |
||
169 | WGM11 avrbit TCCR1A,1 |
||
170 | COM1B0 avrbit TCCR1A,4 ; Timer/Counter 1 Compare Mode B |
||
171 | COM1B1 avrbit TCCR1A,5 |
||
172 | COM1A0 avrbit TCCR1A,6 ; Timer/Counter 1 Compare Mode A |
||
173 | COM1A1 avrbit TCCR1A,7 |
||
174 | TCCR1B sfr 0x81 ; Timer/Counter 1 Control Register B |
||
175 | CS10 avrbit TCCR1B,0 ; Timer/Counter 1 Prescaler Setting |
||
176 | CS11 avrbit TCCR1B,1 |
||
177 | CS12 avrbit TCCR1B,2 |
||
178 | WGM12 avrbit TCCR1B,3 ; Timer/Counter 1 Waveform Generation Mode |
||
179 | WGM13 avrbit TCCR1B,4 |
||
180 | ICES1 avrbit TCCR1B,6 ; Timer/Counter 1 Capture Slope Selection |
||
181 | ICNC1 avrbit TCCR1B,7 ; Timer/Counter 1 Capture Noise Filter |
||
182 | TCCR1C sfr 0x82 ; Timer/Counter 1 Control Register C |
||
183 | FOC1B avrbit TCCR1C,6 ; Timer/Counter 1 Force Output Compare B |
||
184 | FOC1A avrbit TCCR1C,7 ; Timer/Counter 1 Force Output Compare A |
||
185 | TCNT1L sfr 0x84 ; Timer/Counter 1 Value LSB |
||
186 | TCNT1H sfr 0x85 ; Timer/Counter 1 Value MSB |
||
187 | OCR1AL sfr 0x88 ; Timer/Counter 1 Output Compare Value A LSB |
||
188 | OCR1AH sfr 0x89 ; Timer/Counter 1 Output Compare Value A MSB |
||
189 | OCR1BL sfr 0x8a ; Timer/Counter 1 Output Compare Value B LSB |
||
190 | OCR1BH sfr 0x8b ; Timer/Counter 1 Output Compare Value B MSB |
||
191 | ICR1L sfr 0x86 ; Timer/Counter 1 Input Capture Value LSB |
||
192 | ICR1H sfr 0x87 ; Timer/Counter 1 Input Capture Value MSB |
||
193 | |||
194 | TCCR2A sfr 0xb0 ; Timer/Counter 2 Control Register A |
||
195 | WGM20 avrbit TCCR2A,0 ; Timer/Counter 2 Waveform Generation Mode |
||
196 | WGM21 avrbit TCCR2A,1 |
||
197 | COM2B0 avrbit TCCR2A,4 ; Timer/Counter 2 Compare Mode B |
||
198 | COM2B1 avrbit TCCR2A,5 |
||
199 | COM2A0 avrbit TCCR2A,6 ; Timer/Counter 2 Compare Mode B |
||
200 | COM2A1 avrbit TCCR2A,7 |
||
201 | TCCR2B sfr 0xb1 ; Timer/Counter 2 Control Register B |
||
202 | CS20 avrbit TCCR2B,0 |
||
203 | CS21 avrbit TCCR2B,1 |
||
204 | CS22 avrbit TCCR2B,2 ; Timer/Counter 2 Prescaler Setting |
||
205 | WGM22 avrbit TCCR2B,3 |
||
206 | FOC2B avrbit TCCR2B,6 ; Timer/Counter 2 Force Output Compare B |
||
207 | FOC2A avrbit TCCR2B,7 ; Timer/Counter 2 Force Output Compare A |
||
208 | TCNT2 sfr 0xb2 ; Timer/Counter 2 Value |
||
209 | OCR2A sfr 0xb3 ; Timer/Counter 2 Output Compare Value A |
||
210 | OCR2B sfr 0xb4 ; Timer/Counter 2 Output Compare Value B |
||
211 | |||
212 | TIMSK0 sfr 0x6e ; Timer/Counter 0 Interrupt Mask Register |
||
213 | TOIE0 avrbit TIMSK0,0 ; Timer/Counter 0 Overflow Interrupt Enable |
||
214 | OCIE0A avrbit TIMSK0,1 ; Timer/Counter 0 Output Compare Interrupt Enable A |
||
215 | OCIE0B avrbit TIMSK0,2 ; Timer/Counter 0 Output Compare Interrupt Enable B |
||
216 | TIMSK1 sfr 0x6f ; Timer/Counter 1 Interrupt Mask Register |
||
217 | TOIE1 avrbit TIMSK1,0 ; Timer/Counter 1 Overflow Interrupt Enable |
||
218 | OCIE1A avrbit TIMSK1,1 ; Timer/Counter 1 Output Compare Interrupt Enable A |
||
219 | OCIE1B avrbit TIMSK1,2 ; Timer/Counter 1 Output Compare Interrupt Enable B |
||
220 | ICIE1 avrbit TIMSK1,5 ; Timer/Counter 1 Input Capture Event |
||
221 | TIMSK2 sfr 0x70 ; Timer/Counter 2 Interrupt Mask Register |
||
222 | TOIE2 avrbit TIMSK2,0 ; Timer/Counter 2 Overflow Interrupt Enable |
||
223 | OCIE2A avrbit TIMSK2,1 ; Timer/Counter 2 Output Compare Interrupt Enable A |
||
224 | OCIE2B avrbit TIMSK2,2 ; Timer/Counter 2 Output Compare Interrupt Enable B |
||
225 | |||
226 | TIFR0 port 0x15 ; Timer/Counter 0 Interrupt Status Register |
||
227 | TIFR1 port 0x16 ; Timer/Counter 1 Interrupt Status Register |
||
228 | TIFR2 port 0x17 ; Timer/Counter 2 Interrupt Status Register |
||
229 | |||
230 | ASSR sfr 0xb6 ; Asynchronous Status Register |
||
231 | TCR2BUB avrbit ASSR,0 ; Timer/Counter Control Register 2 B Update Busy |
||
232 | TCR2AUB avrbit ASSR,1 ; Timer/Counter Control Register 2 A Update Busy |
||
233 | OCR2BUB avrbit ASSR,2 ; Output Compare Register 2 B Update Busy |
||
234 | OCR2AUB avrbit ASSR,3 ; Output Compare Register 2 A Update Busy |
||
235 | TCN2UB avrbit ASSR,4 ; Timer/Counter 2 Update Busy |
||
236 | AS2 avrbit ASSR,5 ; Asynchronous Timer/Counter 2 |
||
237 | EXCLK avrbit ASSR,6 ; Enable External Clock Input |
||
238 | |||
239 | ;---------------------------------------------------------------------------- |
||
240 | ; Watchdog Timer |
||
241 | |||
242 | include "wdme.inc" |
||
243 | |||
244 | ;---------------------------------------------------------------------------- |
||
245 | ; USART |
||
246 | |||
247 | __USART0_SPI__ equ 1 |
||
248 | include "usartc0.inc" |
||
249 | |||
250 | ;---------------------------------------------------------------------------- |
||
251 | ; SPI |
||
252 | |||
253 | include "spim02c.inc" |
||
254 | |||
255 | ;---------------------------------------------------------------------------- |
||
256 | ; TWI |
||
257 | |||
258 | include "twimb8.inc" |
||
259 | |||
260 | ;---------------------------------------------------------------------------- |
||
261 | ; A/D Converter |
||
262 | |||
263 | include "adcm78.inc" |
||
264 | |||
265 | ;---------------------------------------------------------------------------- |
||
266 | ; Analog Comparator |
||
267 | |||
268 | include "acm30.inc" |
||
269 | |||
270 | restore ; re-enable listing |
||
271 | |||
272 | endif ; __regm328inc |