Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
1186 | savelij | 1 | ifndef __regavrinc ; avoid multiple inclusion |
2 | __regavrinc equ 1 |
||
3 | |||
4 | save |
||
5 | listing off ; no listing over this file |
||
6 | |||
7 | ;**************************************************************************** |
||
8 | ;* * |
||
9 | ;* AS 1.42 - Datei REGAVROLD.INC * |
||
10 | ;* * |
||
11 | ;* Contains SFR and Bit Definitions for AVR Processors * |
||
12 | ;* OUTDATED VERSION - PLEASE SWITCH TO NEW FILE IF POSSIBLE * |
||
13 | ;* * |
||
14 | ;**************************************************************************** |
||
15 | |||
16 | ; Set internal CPU code and memory addresses in one step |
||
17 | |||
18 | switch MOMCPUNAME |
||
19 | case "AT90S1200" |
||
20 | __cpucode equ 0x011200 |
||
21 | eeend equ 63 ; End Address EEPROM |
||
22 | iramend equ 95,data ; End Address SRAM |
||
23 | iromend label 1023 ; End Address EPROM |
||
24 | case "AT90S2313" |
||
25 | __cpucode equ 0x012313 |
||
26 | eeend equ 127 |
||
27 | iramend equ 0xdf,data |
||
28 | iromend label 2047 |
||
29 | case "AT90S4414" |
||
30 | __cpucode equ 0x014414 |
||
31 | eeend equ 255 |
||
32 | iramend equ 0x15f,data |
||
33 | iromend label 4095 |
||
34 | case "AT90S8515" |
||
35 | __cpucode equ 0x018515 |
||
36 | eeend equ 511 |
||
37 | iramend equ 0x25f,data |
||
38 | iromend label 8191 |
||
39 | case "ATMEGA8" |
||
40 | __cpucode equ 0x020008 |
||
41 | eeend equ 511 |
||
42 | iramend equ 0x45f,data |
||
43 | iromend label 8191 |
||
44 | case "ATMEGA16" |
||
45 | __cpucode equ 0x020010 |
||
46 | eeend equ 511 |
||
47 | iramend equ 0x45f,data |
||
48 | iromend label 16383 |
||
49 | elsecase |
||
50 | fatal "wrong target selected: only AT90S1200, AT90S2313, AT90S4414, AT90S8515, ATMEGA8, or ATMEGA16 supported" |
||
51 | endcase |
||
52 | |||
53 | ismega function code,(code>>16)=2 |
||
54 | |||
55 | if MOMPASS=1 |
||
56 | message "Atmel AVR SFR Definitions (C) 1996,2002 Alfred Arnold" |
||
57 | endif |
||
58 | |||
59 | ;---------------------------------------------------------------------------- |
||
60 | ; Constant Memory Addresses |
||
61 | |||
62 | eestart equ 0 ; Start Address Internal EEPROM |
||
63 | iram equ 96,data ; Start Address Internal SRAM |
||
64 | ; (behind mapped I/O) |
||
65 | irom label 0 ; Start Address Internal EPROM |
||
66 | |||
67 | ;---------------------------------------------------------------------------- |
||
68 | ; Prozessorkern |
||
69 | |||
70 | sreg port 0x3f ; Status Register: |
||
71 | c equ 0 ; Carry |
||
72 | z equ 1 ; Zero Result |
||
73 | n equ 2 ; Negative Result |
||
74 | v equ 3 ; Twos Complement Overflow |
||
75 | s equ 4 ; Sign |
||
76 | h equ 5 ; Half Carry |
||
77 | t equ 6 ; Bit Storage |
||
78 | i equ 7 ; Globale Interrupt Enable |
||
79 | |||
80 | ; Size of stack pointer depends on size of Internal data space |
||
81 | ; (if present at all) |
||
82 | |||
83 | if __cpucode>=0x012313 |
||
84 | spl equ 0x3d ; Stack Pointer (LSB) |
||
85 | if iramend>=256 |
||
86 | sph equ 0x3e ; (MSB) |
||
87 | endif |
||
88 | endif |
||
89 | |||
90 | ;---------------------------------------------------------------------------- |
||
91 | ; Chip Configuration |
||
92 | |||
93 | mcucr port 0x35 ; CPU Control: |
||
94 | isc00 equ 0 ; INT0 Edge Selection |
||
95 | isc01 equ 1 ; INT0 Edge/Level Trigger |
||
96 | if __cpucode>=0x012313 |
||
97 | isc10 equ 2 ; INT1 Edge Selection |
||
98 | isc11 equ 3 ; INT1 Edge/Level Trigger |
||
99 | endif |
||
100 | if ismega(__cpucode) |
||
101 | ; Note: for the Mega16, bits 6 & 7 are interchanged, I guess that's an |
||
102 | ; error in the data sheet... |
||
103 | se equ 7 ; Sleep Enable |
||
104 | sm2 equ 6 ; Sleep Mode Select |
||
105 | sm1 equ 5 |
||
106 | sm0 equ 4 |
||
107 | else ; !ismega |
||
108 | sm equ 4 ; Select Idle/PowerDdown Mode |
||
109 | se equ 5 ; Enable Sleep Mode |
||
110 | if __cpucode>=0x014414 |
||
111 | srw equ 6 ; Wait State Selection External SRAM |
||
112 | sre equ 7 ; External External SRAM |
||
113 | endif |
||
114 | endif |
||
115 | |||
116 | if ismega(__cpucode) |
||
117 | osccal port 0x31 ; Oscillator Calibration |
||
118 | |||
119 | mcucsr port 0x34 |
||
120 | if __cpucode>=0x020010 |
||
121 | jtd equ 7 ; JTAG Reset Flag |
||
122 | isc2 equ 6 ; Interrupt Sense Control 2 |
||
123 | endif |
||
124 | wdrf equ 3 ; Watchdog Reset Occured |
||
125 | borf equ 2 ; Brown Out Occured |
||
126 | extrf equ 1 ; External Reset Occured |
||
127 | porf equ 0 ; Power On Reset Occured |
||
128 | |||
129 | spmcr port 0x37 ; Store Program Memory Control Register |
||
130 | spmie equ 7 ; Interrupt Enable |
||
131 | rwwsb equ 6 ; Read-while-Write Section Busy |
||
132 | rwwsre equ 4 ; Read-while-Write Section Read Enable |
||
133 | blbset equ 3 ; Boot Lock Bit Set |
||
134 | pgwrt equ 2 ; Page Write |
||
135 | pgers equ 1 ; Page Erase |
||
136 | spmen equ 0 ; Store Program Memory Enable |
||
137 | endif |
||
138 | |||
139 | ;---------------------------------------------------------------------------- |
||
140 | ; Interrupt-Steuerung |
||
141 | |||
142 | if ismega(__cpucode) |
||
143 | gicr port 0x3b |
||
144 | ivce equ 0 ; Interrupt Vector Change Enable |
||
145 | ivsel equ 1 ; Interrupt Vector Select |
||
146 | int0 equ 6 ; Enable External Interrupt 0 |
||
147 | int1 equ 7 ; Enable External Interrupt 1 |
||
148 | if __cpucode>=0x020010 |
||
149 | int2 equ 5 ; Enable External Interrupt 2 |
||
150 | endif |
||
151 | elseif |
||
152 | gimsk port 0x3b ; Global Interrupt Mask: |
||
153 | int0 equ 6 ; External Interrupt 0 |
||
154 | if __cpucode>=0x012313 |
||
155 | int1 equ 7 ; External Interrupt 1 |
||
156 | endif |
||
157 | endif |
||
158 | |||
159 | if __cpucode>=0x012313 |
||
160 | gifr port 0x3a ; Global Interrupt Flags |
||
161 | intf0 equ 6 ; External Interrupt 0 |
||
162 | intf1 equ 7 ; External Interrupt 1 |
||
163 | ifdef int2 |
||
164 | intf2 equ int2 ; External Interrupt 2 |
||
165 | endif |
||
166 | endif |
||
167 | |||
168 | ; who the heck decided to rearrange all bits for the Megas? |
||
169 | |||
170 | timsk port 0x39 ; Timer Interrupt Mask: |
||
171 | if ismega(__cpucode) |
||
172 | toie0 equ 0 |
||
173 | elseif |
||
174 | toie0 equ 1 ; Timer 0 Overflow |
||
175 | endif |
||
176 | if __cpucode>=0x012313 |
||
177 | if __cpucode>=0x014414 |
||
178 | if ismega(__cpucode) |
||
179 | ocie1b equ 3 ; Timer 1 Vergleich B |
||
180 | elseif |
||
181 | ocie1b equ 5 ; Timer 1 Vergleich B |
||
182 | endif |
||
183 | endif |
||
184 | if ismega(__cpucode) |
||
185 | toie1 equ 2 |
||
186 | ticie1 equ 5 |
||
187 | toie2 equ 6 |
||
188 | ocie2 equ 7 |
||
189 | ocie1a equ 4 |
||
190 | elseif |
||
191 | toie1 equ 7 ; Timer 1 Overflow |
||
192 | ticie1 equ 3 ; Timer 1 Capture |
||
193 | ocie1a equ 6 ; Timer 1 Compare |
||
194 | endif |
||
195 | endif |
||
196 | |||
197 | tifr port 0x38 ; Timer Interrupt Flags |
||
198 | tov0 equ toie0 ; Timer 0 Overflow |
||
199 | if __cpucode>=0x012313 |
||
200 | ocf1a equ ocie1a ; Timer 1 Compare A |
||
201 | tov1 equ toie1 ; Timer 1 Overflow |
||
202 | icf1 equ ticie1 ; Timer 1 Capture |
||
203 | endif |
||
204 | if __cpucode>=0x014414 |
||
205 | ocf1b equ ocie1b ; Timer 1 Compare |
||
206 | endif |
||
207 | if ismega(__cpucode) |
||
208 | tov2 equ toie2 |
||
209 | ocf2 equ ocie2 |
||
210 | endif |
||
211 | |||
212 | |||
213 | ;---------------------------------------------------------------------------- |
||
214 | ; Parallel Ports |
||
215 | |||
216 | if ismega(__cpucode) |
||
217 | sfior equ 0x30 |
||
218 | psr10 equ 0 ; T0/T1 Prescaler Reset |
||
219 | psr2 equ 1 ; ditto T2 |
||
220 | pud equ 2 ; Pullup Disable |
||
221 | acme equ 3 ; Analog Comparator Multiplexer Enable |
||
222 | adhsm equ 4 ; ADC High Speed Mode |
||
223 | if __cpucode>=0x020010 |
||
224 | adts0 equ 5 |
||
225 | adts1 equ 6 |
||
226 | adts2 equ 7 |
||
227 | endif |
||
228 | endif |
||
229 | |||
230 | if (__cpucode=0x014414)||(__cpucode=0x018515)||(__cpucode=0x020010) |
||
231 | porta port 0x1b ; Port A Data Register |
||
232 | ddra port 0x1a ; Port A Data Direction Register |
||
233 | pina port 0x19 ; Port A Read Register |
||
234 | endif |
||
235 | |||
236 | portb port 0x18 ; Port B Data Register |
||
237 | ddrb port 0x17 ; Port B Data Direction Register |
||
238 | pinb port 0x16 ; Port B Read Register |
||
239 | |||
240 | if __cpucode>=0x014414 |
||
241 | portc port 0x15 ; Port C Data Register |
||
242 | ddrc port 0x14 ; Port C Data Direction Register |
||
243 | pinc port 0x13 ; Port C Read Register |
||
244 | endif |
||
245 | |||
246 | portd port 0x12 ; Port D Data Register |
||
247 | ddrd port 0x11 ; Port D Data Direction Register |
||
248 | pind port 0x10 ; Port D Read Register |
||
249 | |||
250 | ;---------------------------------------------------------------------------- |
||
251 | ; Timer |
||
252 | |||
253 | tccr0 port 0x33 ; Timer 0 Control Register: |
||
254 | cs00 equ 0 ; Prescaler Setting |
||
255 | cs01 equ 1 |
||
256 | cs02 equ 2 |
||
257 | if __cpucode=0x020010 |
||
258 | wgm01 equ 3 ; Waveform Generation Mode |
||
259 | wgm00 equ 6 |
||
260 | com00 equ 4 ; Compare/Match Output Mode |
||
261 | com01 equ 5 |
||
262 | foc0 equ 7 ; Force Output Compare |
||
263 | endif |
||
264 | |||
265 | tcnt0 port 0x32 ; Timer 0 Count Register |
||
266 | |||
267 | ocr0 port 0x3c |
||
268 | |||
269 | if __cpucode>=0x012313 |
||
270 | tccr1a port 0x2f ; Timer 1 Steuerregister A: |
||
271 | pwm10 equ 0 ; PWM Mode |
||
272 | wgm10 equ pwm10 |
||
273 | pwm11 equ 1 |
||
274 | wgm11 equ pwm11 |
||
275 | com1a0 equ 6 ; Compare Mode A |
||
276 | com1a1 equ 7 |
||
277 | if __cpucode>=0x014414 |
||
278 | com1b0 equ 4 ; Compare Mode B |
||
279 | com1b1 equ 5 |
||
280 | endif |
||
281 | if ismega(__cpucode) |
||
282 | foc1b equ 2 |
||
283 | foc1a equ 3 |
||
284 | endif |
||
285 | |||
286 | tccr1b port 0x2e ; Timer 1 Control Register B: |
||
287 | cs10 equ 0 ; Prescale setting |
||
288 | cs11 equ 1 |
||
289 | cs12 equ 2 |
||
290 | ctc1 equ 3 ; Reset after Equality ? |
||
291 | wgm12 equ ctc1 |
||
292 | if ismega(__cpucode) |
||
293 | wgm13 equ 4 |
||
294 | endif |
||
295 | ices1 equ 6 ; Capture Edge Selection |
||
296 | icnc1 equ 7 ; Capture Noise Filter |
||
297 | |||
298 | tcnt1l port 0x2c ; Timer 1 Count Register (LSB) |
||
299 | tcnt1h port 0x2d ; (MSB) |
||
300 | |||
301 | if __cpucode>=0x014414 |
||
302 | ocr1al port 0x2a ; Timer 1 Compare Register A (LSB) |
||
303 | ocr1ah port 0x2b ; (MSB) |
||
304 | ocr1bl port 0x28 ; Timer 1 Compare Register B (LSB) |
||
305 | ocr1bh port 0x29 ; (MSB) |
||
306 | elseif |
||
307 | ocr1l port 0x2a ; Timer 1 Compare Register (LSB) |
||
308 | ocr1h port 0x2b ; (MSB) |
||
309 | endif |
||
310 | |||
311 | if ismega(__cpucode) |
||
312 | icr1l port 0x26 |
||
313 | icr1h port 0x27 |
||
314 | elseif |
||
315 | icr1l port 0x24 ; Timer 1 Capture Value (LSB) |
||
316 | icr1h port 0x25 ; (MSB) |
||
317 | endif |
||
318 | endif |
||
319 | |||
320 | if ismega(__cpucode) |
||
321 | tccr2 port 0x26 ; Timer 2 Control Register |
||
322 | cs20 equ 0 ; Prescaler |
||
323 | cs21 equ 1 |
||
324 | cs22 equ 2 |
||
325 | wgm21 equ 3 |
||
326 | com20 equ 4 |
||
327 | com21 equ 5 |
||
328 | wgm20 equ 6 |
||
329 | foc2 equ 7 |
||
330 | |||
331 | tcnt2 port 0x24 ; Timer Value |
||
332 | ocr2 port 0x23 ; Output Compare Value |
||
333 | |||
334 | assr port 0x22 ; Asynchronous Status Register |
||
335 | as2 equ 3 ; Asynchronous Timer 2 |
||
336 | tcn2ub equ 2 ; Timer/Counter 2 Update Busy |
||
337 | ocr2ub equ 1 ; Output Compare Register 2 Update Busy |
||
338 | tcr2ub equ 0 ; Timer/Counter Control Register 2 Update Busy |
||
339 | endif |
||
340 | |||
341 | ;---------------------------------------------------------------------------- |
||
342 | ; Watchdog |
||
343 | |||
344 | wdtcr port 0x21 ; Watchdog-Control Register: |
||
345 | wdp0 equ 0 ; Prescaler |
||
346 | wdp1 equ 1 |
||
347 | wdp2 equ 2 |
||
348 | wde equ 3 ; Enable |
||
349 | if __cpucode=0x010008 |
||
350 | wdce equ 4 ; Watchdog Change Enable |
||
351 | elseif __cpucode>=0x012313 |
||
352 | wdttoe equ 4 ; Needed for Disable |
||
353 | endif |
||
354 | |||
355 | ;---------------------------------------------------------------------------- |
||
356 | ; serielle Ports |
||
357 | |||
358 | if __cpucode>=0x012312 |
||
359 | udr port 0x0c ; Data Register UART |
||
360 | |||
361 | usr port 0x0b ; Status Register UART: |
||
362 | ucsra port usr |
||
363 | if ismega(__cpucode) |
||
364 | mpcm equ 0 ; Multiprocessor Communication Mode |
||
365 | u2x equ 1 ; Double Speed |
||
366 | pe equ 2 ; Parity Error |
||
367 | endif |
||
368 | or equ 3 ; Receiver Overflow |
||
369 | dor equ or |
||
370 | fe equ 4 ; Framing Error |
||
371 | udre equ 5 ; Data Register Empty |
||
372 | txc equ 6 ; Transmission Complete |
||
373 | rxc equ 7 ; Reception Complete |
||
374 | |||
375 | ucr port 0x0a ; UART Control Register: |
||
376 | ucsrb port ucr |
||
377 | txb8 equ 0 ; Transmit Bit 8 |
||
378 | rxb8 equ 1 ; Receive Bit 8 |
||
379 | chr9 equ 2 ; Enable 9 Bit Data Values |
||
380 | ucsz2 equ chr9 |
||
381 | txen equ 3 ; Transmitter Enable |
||
382 | rxen equ 4 ; Receiver Enable |
||
383 | udrie equ 5 ; Enable Free Data Register Interrupt |
||
384 | txcie equ 6 ; Enable Transmit Complete Interrupt |
||
385 | rxcie equ 7 ; Enable Receive Complete Interrupt |
||
386 | |||
387 | if ismega(__cpucode) |
||
388 | ucsrc port 0x20 ; Control Register C |
||
389 | ursel equ 7 ; Register Select |
||
390 | umsel equ 6 ; Sync/Async Mode |
||
391 | upm1 equ 5 ; Parity Mode |
||
392 | upm0 equ 4 |
||
393 | usbs equ 3 ; Stop Bit Select |
||
394 | ucsz1 equ 2 ; Character Size |
||
395 | ucsz0 equ 1 |
||
396 | ucpol equ 0 ; Clock Polarity |
||
397 | endif |
||
398 | |||
399 | ubrr port 0x09 ; Baud Rate Generator |
||
400 | if ismega(__cpucode) |
||
401 | ubrrl port ubrr |
||
402 | ubrrh port ucsrc |
||
403 | endif |
||
404 | endif |
||
405 | |||
406 | if __cpucode>=0x014414 |
||
407 | spcr port 0x0d ; SPI Control Register: |
||
408 | spr0 equ 0 ; Clock Selection |
||
409 | spr1 equ 1 |
||
410 | cpha equ 2 ; Clock Phase |
||
411 | cpol equ 3 ; Clock Polarity |
||
412 | mstr equ 4 ; Master/Slave Select |
||
413 | dord equ 5 ; Bit Order |
||
414 | spe equ 6 ; SPI Enable |
||
415 | spie equ 7 ; SPI Interrupt Enable |
||
416 | |||
417 | spsr port 0x0e ; SPI Status Register: |
||
418 | if ismega(__cpucode) |
||
419 | spi2x equ 0 ; Double Speed Mode |
||
420 | endif |
||
421 | wcol equ 6 ; Write Collision ? |
||
422 | spif equ 7 ; SPI Interrupt Flag |
||
423 | |||
424 | spdr port 0x0f ; SPI Data Register |
||
425 | endif |
||
426 | |||
427 | if ismega(__cpucode) |
||
428 | twbr port 0x00 ; Bit Rate Register |
||
429 | |||
430 | twcr port 0x36 ; Control Register |
||
431 | twint equ 7 ; Interrupt Flag |
||
432 | twea equ 6 ; Enable Acknowledge Bit |
||
433 | twsta equ 5 ; Start Condition |
||
434 | twsto equ 4 ; Stop Condition |
||
435 | twwc equ 3 ; Write Collision Flag |
||
436 | twen equ 2 ; Enable Bit |
||
437 | twie equ 0 ; Interupt Enable |
||
438 | |||
439 | twsr port 0x01 ; Status Register |
||
440 | tws7 equ 7 ; Status |
||
441 | tws6 equ 6 |
||
442 | tws5 equ 5 |
||
443 | tws4 equ 4 |
||
444 | tws3 equ 3 |
||
445 | twps1 equ 1 ; Prescaler |
||
446 | twps0 equ 0 |
||
447 | |||
448 | twdr port 0x03 ; Data Register |
||
449 | |||
450 | twar port 0x02 ; (Slave) Address Register |
||
451 | twgce equ 0 ; General Call recognition Bit |
||
452 | endif |
||
453 | |||
454 | ;---------------------------------------------------------------------------- |
||
455 | ; Analog Comparator |
||
456 | |||
457 | acsr port 0x08 ; Comparator Control/Status Register: |
||
458 | acis0 equ 0 ; Interrupt Mode |
||
459 | acis1 equ 1 |
||
460 | if __cpucode>=0x012313 |
||
461 | acic equ 2 ; Use Comparator as Capture Signal for Timer 1 |
||
462 | endif |
||
463 | acie equ 3 ; Interrupt Enable |
||
464 | aci equ 4 ; Interrupt Flag |
||
465 | aco equ 5 ; Comparator Output |
||
466 | if ismega(__cpucode) |
||
467 | acbg equ 6 ; Bandgap Select |
||
468 | endif |
||
469 | acd equ 7 ; Power Off |
||
470 | |||
471 | ;---------------------------------------------------------------------------- |
||
472 | ; A/D Converter |
||
473 | |||
474 | if ismega(__cpucode) |
||
475 | admux port 0x07 ; Multiplexer Selection |
||
476 | refs1 equ 7 ; reference Selection Bits |
||
477 | refs0 equ 6 |
||
478 | adlar equ 5 ; Left Adjust Right |
||
479 | mux3 equ 3 ; Multiplexer |
||
480 | mux2 equ 2 |
||
481 | mux1 equ 1 |
||
482 | mux0 equ 0 |
||
483 | |||
484 | if __cpucode >=0x020010 |
||
485 | adcsra port 0x06 ; Control/Status Register |
||
486 | adate equ 5 ; Auto Trigger Enable |
||
487 | elseif |
||
488 | adcsr port 0x06 ; Control/Status Register |
||
489 | adfr equ 5 ; free Running Select |
||
490 | endif |
||
491 | aden equ 7 ; Enable ADC |
||
492 | adsc equ 6 ; Start Conversion |
||
493 | adif equ 4 ; Interrupt Flag |
||
494 | adie equ 3 ; Interrupt Enable |
||
495 | adps2 equ 2 ; Prescaler Select |
||
496 | adps1 equ 1 |
||
497 | adps0 equ 0 |
||
498 | |||
499 | adch port 0x05 ; Data Register |
||
500 | adcl port 0x04 |
||
501 | endif |
||
502 | |||
503 | ;---------------------------------------------------------------------------- |
||
504 | ; JTAG |
||
505 | |||
506 | if __cpucode >=0x020010 |
||
507 | ocdr port osccal ; Debug Register |
||
508 | endif |
||
509 | |||
510 | ;---------------------------------------------------------------------------- |
||
511 | ; EEPROM |
||
512 | |||
513 | if eeend>=256 |
||
514 | eearl port 0x1e ; Address Register |
||
515 | eearh port 0x1f |
||
516 | elseif |
||
517 | eear port 0x1e |
||
518 | endif |
||
519 | |||
520 | eedr port 0x1d ; Data Register |
||
521 | |||
522 | eecr port 0x1c ; Control Register: |
||
523 | eere equ 0 ; Read Enable |
||
524 | eewe equ 1 ; Write Enable |
||
525 | if __cpucode>=0x012313 |
||
526 | eemwe equ 2 |
||
527 | endif |
||
528 | if __cpucode=0x020008 |
||
529 | eerie equ 3 ; Enable Ready Interrupt |
||
530 | endif |
||
531 | |||
532 | ;---------------------------------------------------------------------------- |
||
533 | ; Vectors |
||
534 | ; Unfortunately, interrupt numbers change for biggger processors |
||
535 | ; Why only, Atmel, why ? |
||
536 | |||
537 | vec_reset label 0 ; Reset Entry |
||
538 | switch __cpucode |
||
539 | case 0x011200 |
||
540 | vec_int0 label 1 ; Entry External Interrupt 0 |
||
541 | vec_tm0ovf label 2 ; Entry Overflow Timer 0 |
||
542 | vec_anacomp label 3 ; Entry Analog Comparator |
||
543 | case 0x012313 |
||
544 | vec_int0 label 1 ; Entry External Interrupt 0 |
||
545 | vec_int1 label 2 ; Entry External Interrupt 2 |
||
546 | vec_tm1capt label 3 ; Entry Capture Timer 1 |
||
547 | vec_tm1comp label 4 ; Entry Compare Timer 1 |
||
548 | vec_tm1ovf label 5 ; Entry Overflow Timer 1 |
||
549 | vec_tm0ovf label 6 ; Entry Overflow Timer 0 |
||
550 | vec_uartrx label 7 ; Entry UART Empfang komplett |
||
551 | vec_uartudre label 8 ; Entry UART Data Register leer |
||
552 | vec_uarttx label 9 ; Entry UART Sendung komplett |
||
553 | vec_anacomp label 10 ; Entry Analog-Komparator |
||
554 | case 0x014414,0x018515 |
||
555 | vec_int0 label 1 ; Entry External Interrupt 0 |
||
556 | vec_int1 label 2 ; Entry External Interrupt 2 |
||
557 | vec_tm1capt label 3 ; Entry Capture Timer 1 |
||
558 | vec_tm1compa label 4 ; Entry Compare A Timer 1 |
||
559 | vec_tm1compb label 5 ; Entry Compare A Timer 1 |
||
560 | vec_tm1ovf label 6 ; Entry Overflow Timer 1 |
||
561 | vec_tm0ovf label 7 ; Entry Overflow Timer 0 |
||
562 | vec_spi label 8 ; Entry SPI Interrupt |
||
563 | vec_uartrx label 9 ; Entry UART Reception Complete |
||
564 | vec_uartudre label 10 ; Entry UART Data Register Empty |
||
565 | vec_uarttx label 11 ; Entry UART Sendung Complete |
||
566 | vec_anacomp label 12 ; Entry Analog Comparator |
||
567 | case 0x020008 |
||
568 | vec_int0 label 1 ; Entry External Interrupt 0 |
||
569 | vec_int1 label 2 ; External Interrupt 1 |
||
570 | vec_tm2comp label 3 ; Timer 2 Compare Match |
||
571 | vec_tm2ovf label 4 ; Timer 2 Overflow |
||
572 | vec_tm1capt label 5 ; Timer 1 Capture |
||
573 | vec_tm1compa label 6 ; Timer 1 Compare Match A |
||
574 | vec_tm1compb label 7 ; Timer 1 Compare Match B |
||
575 | vec_tm1ovf label 8 ; Timer 1 Overflow |
||
576 | vec_tm0ovf label 9 ; Timer 0 Overflow |
||
577 | vec_spi label 10 ; SPI Transfer Complete |
||
578 | vec_uartrx label 11 ; UART Rx Complete |
||
579 | vec_uartudre label 12 ; UART Data Register Empty |
||
580 | vec_uarttx label 13 ; UART Tx Complete |
||
581 | vec_adc label 14 ; ADC Conversion Complete |
||
582 | vec_eerdy label 15 ; EEPROM Ready |
||
583 | vec_anacomp label 16 ; analog Comparator |
||
584 | vec_twi label 17 ; Two-Wire Interface |
||
585 | vec_spm_rdy label 18 ; Store Program Memory Ready |
||
586 | case 0x020010 |
||
587 | vec_int0 label 2 ; External Interrupt 0 |
||
588 | vec_int1 label 4 ; External Interrupt 1 |
||
589 | vec_tm2comp label 6 ; Timer 2 Compare Match |
||
590 | vec_tm2ovf label 8 ; Timer 2 Overflow |
||
591 | vec_tm1capt label 10 ; Timer 1 Capture |
||
592 | vec_tm1compa label 12 ; Timer 1 Compare Match A |
||
593 | vec_tm1compb label 14 ; Timer 1 Compare Match B |
||
594 | vec_tm1ovf label 16 ; Timer 1 Overflow |
||
595 | vec_tm0ovf label 18 ; Timer 0 Overflow |
||
596 | vec_spi label 20 ; SPI Transfer Complete |
||
597 | vec_uartrx label 22 ; UART Rx Complete |
||
598 | vec_uartudre label 24 ; UART Data Register Empty |
||
599 | vec_uarttx label 26 ; UART Tx Complete |
||
600 | vec_adc label 28 ; ADC Conversion Complete |
||
601 | vec_eerdy label 30 ; EEPROM Ready |
||
602 | vec_anacomp label 32 ; analog Comparator |
||
603 | vec_twi label 34 ; Two-Wire Interface |
||
604 | vec_int2 label 36 ; External Interrupt 2 |
||
605 | vec_tm0comp label 38 ; Timer 0 Compare Match |
||
606 | vec_spm_rdy label 40 ; Store Program Memory Ready |
||
607 | endcase |
||
608 | |||
609 | ;---------------------------------------------------------------------------- |
||
610 | |||
611 | restore ; re-allow listing |
||
612 | |||
613 | endif ; __regavrinc |