~ubuntu-branches/ubuntu/breezy/avr-libc/breezy

« back to all changes in this revision

Viewing changes to include/iom603.h

  • Committer: Bazaar Package Importer
  • Author(s): Hakan Ardo
  • Date: 2002-04-15 14:53:38 UTC
  • Revision ID: james.westby@ubuntu.com-20020415145338-c8hi0tn5bx74w7o3
Tags: upstream-20020203
ImportĀ upstreamĀ versionĀ 20020203

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*            - iom603.h -
 
2
 
 
3
   This file #defines the internal register addresses for ATMEGA603.
 
4
*/
 
5
 
 
6
#ifndef __IOM603
 
7
#define __IOM603 1
 
8
 
 
9
#define AVR_MEGA 1
 
10
 
 
11
/*==========================*/
 
12
/* Predefined SFR Addresses */
 
13
/*==========================*/
 
14
 
 
15
/* Input Pins, Port F */
 
16
#define PINF      0x00
 
17
 
 
18
/* Input Pins, Port E */
 
19
#define PINE      0x01
 
20
 
 
21
/* Data Direction Register, Port E */
 
22
#define DDRE      0x02
 
23
 
 
24
/* Data Register, Port E */
 
25
#define PORTE     0x03
 
26
 
 
27
/* ADC Low Byte */
 
28
#define ADCL      0x04
 
29
#define ADCH      0x05
 
30
 
 
31
/* ADC Control and status register */
 
32
#define ADCSR     0x06
 
33
 
 
34
/* ADC Multiplexer select */
 
35
#define ADMUX     0x07
 
36
 
 
37
/* Analog Comparator Control and Status Register */
 
38
#define ACSR      0x08
 
39
 
 
40
/* UART Baud Rate Register */
 
41
#define UBRR      0x09
 
42
 
 
43
/* UART Control Register */
 
44
#define UCR       0x0A
 
45
 
 
46
/* UART Status Register */
 
47
#define USR       0x0B
 
48
 
 
49
/* UART I/O Data Register */
 
50
#define UDR       0x0C
 
51
 
 
52
/* SPI Control Register */
 
53
#define SPCR      0x0D
 
54
 
 
55
/* SPI Status Register */
 
56
#define SPSR      0x0E
 
57
 
 
58
/* SPI I/O Data Register */
 
59
#define SPDR      0x0F
 
60
 
 
61
/* Input Pins, Port D */
 
62
#define PIND      0x10
 
63
                                          
 
64
/* Data Direction Register, Port D */
 
65
#define DDRD      0x11
 
66
 
 
67
/* Data Register, Port D */
 
68
#define PORTD     0x12
 
69
 
 
70
/* Data Register, Port C */
 
71
#define PORTC     0x15
 
72
                      
 
73
/* Input Pins, Port B */
 
74
#define PINB      0x16
 
75
 
 
76
/* Data Direction Register, Port B */
 
77
#define DDRB      0x17
 
78
 
 
79
/* Data Register, Port B */
 
80
#define PORTB     0x18
 
81
  
 
82
/* Input Pins, Port A */
 
83
#define PINA      0x19
 
84
 
 
85
/* Data Direction Register, Port A */
 
86
#define DDRA      0x1A
 
87
 
 
88
/* Data Register, Port A */
 
89
#define PORTA     0x1B
 
90
  
 
91
/* EEPROM Control Register */
 
92
#define EECR      0x1C
 
93
 
 
94
/* EEPROM Data Register */
 
95
#define EEDR      0x1D
 
96
 
 
97
/* EEPROM Address Register */
 
98
#define EEARL     0x1E
 
99
#define EEARH     0x1F
 
100
 
 
101
/* Watchdog Timer Control Register */
 
102
#define WDTCR     0x21
 
103
 
 
104
/* Timer2 Output Compare Register */
 
105
#define OCR2      0x23
 
106
 
 
107
/* Timer/Counter 2 */
 
108
#define TCNT2     0x24
 
109
 
 
110
/* Timer/Counter 2 Control register */ 
 
111
#define TCCR2     0x25
 
112
 
 
113
/* T/C 1 Input Capture Register */
 
114
#define ICR1L     0x26
 
115
#define ICR1H     0x27
 
116
 
 
117
/* Timer/Counter1 Output Compare Register B */ 
 
118
#define OCR1BL    0x28
 
119
#define OCR1BH    0x29
 
120
 
 
121
/* Timer/Counter1 Output Compare Register A */
 
122
#define OCR1AL    0x2A
 
123
#define OCR1AH    0x2B
 
124
 
 
125
/* Timer/Counter 1 */
 
126
#define TCNT1L    0x2C
 
127
#define TCNT1H    0x2D
 
128
 
 
129
/* Timer/Counter 1 Control and Status Register */
 
130
#define TCCR1B    0x2E
 
131
 
 
132
/* Timer/Counter 1 Control Register */
 
133
#define TCCR1A    0x2F
 
134
 
 
135
/* Timer/Counter 0 Asynchronous Control & Status Register */
 
136
#define ASSR      0x30
 
137
 
 
138
/* Output Compare Register 0 */
 
139
#define OCR0      0x31
 
140
 
 
141
/* Timer/Counter 0 */
 
142
#define TCNT0     0x32
 
143
 
 
144
/* Timer/Counter 0 Control Register */
 
145
#define TCCR0     0x33
 
146
 
 
147
/* MCU Status Register */
 
148
#define MCUSR     0x34
 
149
 
 
150
/* MCU general Control Register */
 
151
#define MCUCR     0x35
 
152
 
 
153
/* Timer/Counter Interrupt Flag Register */
 
154
#define TIFR      0x36
 
155
 
 
156
/* Timer/Counter Interrupt MaSK register */
 
157
#define TIMSK     0x37
 
158
 
 
159
/* ļæ½xternal Interrupt Flag Register */
 
160
#define EIFR      0x38
 
161
 
 
162
/* External Interrupt MaSK register */
 
163
#define EIMSK      0x39
 
164
 
 
165
/* External Interrupt Control Register */
 
166
#define EICR      0x3A
 
167
 
 
168
/* RAM Page Z select register */
 
169
/* #define RAMPZ     0x3B */
 
170
 
 
171
/* XDIV Divide control register */
 
172
#define XDIV      0x3C
 
173
 
 
174
/* Stack Pointer */
 
175
#define SPL      0x3D
 
176
#define SPH      0x3E
 
177
 
 
178
/* Status REGister */
 
179
#define SREG      0x3F
 
180
 
 
181
 
 
182
/*==============================*/
 
183
/* Interrupt Vector Definitions */
 
184
/*==============================*/
 
185
 
 
186
#define SIG_INTERRUPT0          _vector_1
 
187
#define SIG_INTERRUPT1          _vector_2
 
188
#define SIG_INTERRUPT2          _vector_3
 
189
#define SIG_INTERRUPT3          _vector_4
 
190
#define SIG_INTERRUPT4          _vector_5
 
191
#define SIG_INTERRUPT5          _vector_6
 
192
#define SIG_INTERRUPT6          _vector_7
 
193
#define SIG_INTERRUPT7          _vector_8
 
194
#define SIG_OUTPUT_COMPARE2     _vector_9
 
195
#define SIG_OVERFLOW2           _vector_10
 
196
#define SIG_INPUT_CAPTURE1      _vector_11
 
197
#define SIG_OUTPUT_COMPARE1A    _vector_12
 
198
#define SIG_OUTPUT_COMPARE1B    _vector_13
 
199
#define SIG_OVERFLOW1           _vector_14
 
200
#define SIG_OUTPUT_COMPARE0     _vector_15
 
201
#define SIG_OVERFLOW0           _vector_16
 
202
#define SIG_SPI                 _vector_17
 
203
#define SIG_UART_RECV           _vector_18
 
204
#define SIG_UART_DATA           _vector_19
 
205
#define SIG_UART_TRANS          _vector_20
 
206
#define SIG_ADC                 _vector_21
 
207
#define SIG_EEPROM_READY        _vector_22
 
208
#define SIG_COMPARATOR          _vector_23
 
209
 
 
210
#define END_VECTOR              (23)
 
211
#define INT_VECT_SIZE (0x60)
 
212
 
 
213
/*
 
214
   The Register Bit names are represented by their bit number (0-7).
 
215
*/                                                
 
216
 
 
217
/* XDIV Divide control register*/
 
218
#define    XDIVEN       7
 
219
#define    XDIV6        6
 
220
#define    XDIV5        5
 
221
#define    XDIV4        4
 
222
#define    XDIV3        3
 
223
#define    XDIV2        2
 
224
#define    XDIV1        1
 
225
#define    XDIV0        0
 
226
 
 
227
/* RAM Page Z select register */
 
228
/* #define     RAMPZ0      0 */
 
229
 
 
230
/* External Interrupt Control Register */ 
 
231
#define    ISC71        7
 
232
#define    ISC70        6
 
233
#define    ISC61        5
 
234
#define    ISC60        4
 
235
#define    ISC51        3
 
236
#define    ISC50        2
 
237
#define    ISC41        1
 
238
#define    ISC40        0
 
239
 
 
240
/* External Interrupt MaSK register */
 
241
#define    INT7         7
 
242
#define    INT6         6   
 
243
#define    INT5         5
 
244
#define    INT4         4
 
245
#define    INT3         3
 
246
#define    INT2         2
 
247
#define    INT1         1
 
248
#define    INT0         0
 
249
 
 
250
/* ļæ½xternal Interrupt Flag Register */
 
251
#define    INTF7        7
 
252
#define    INTF6        6
 
253
#define    INTF5        5
 
254
#define    INTF4        4
 
255
 
 
256
/* Timer/Counter Interrupt MaSK register */ 
 
257
#define    OCIE2        7
 
258
#define    TOIE2        6
 
259
#define    TICIE1       5
 
260
#define    OCIE1A       4
 
261
#define    OCIE1B       3
 
262
#define    TOIE1        2
 
263
#define    OCIE0        1
 
264
#define    TOIE0        0
 
265
 
 
266
/* Timer/Counter Interrupt Flag Register */
 
267
#define    OCF2         7
 
268
#define    TOV2         6
 
269
#define    ICF1         5
 
270
#define    OCF1A        4
 
271
#define    OCF1B        3
 
272
#define    TOV1         2
 
273
#define    OCF0         1
 
274
#define    TOV0         0      
 
275
 
 
276
/* MCU general Control Register */
 
277
#define    SRE          7
 
278
#define    SRW          6
 
279
#define    SE           5
 
280
#define    SM1          4
 
281
#define    SM0          3
 
282
 
 
283
/* MCU Status Register */ 
 
284
#define    EXTRF        1
 
285
#define    PORF         0
 
286
 
 
287
/* Timer/Counter 0 Control Register */
 
288
#define    PWM0         6
 
289
#define    COM01        5
 
290
#define    COM00        4
 
291
#define    CTC0         3
 
292
#define    CS02         2
 
293
#define    CS01         1
 
294
#define    CS00         0
 
295
 
 
296
/* Timer/Counter 0 Asynchronous Control & Status Register */ 
 
297
#define    AS0          3
 
298
#define    TCN0UB       2
 
299
#define    OCR0UB       1
 
300
#define    TCR0UB       0 
 
301
 
 
302
/* Timer/Counter 1 Control Register */ 
 
303
#define    COM1A1       7
 
304
#define    COM1A0       6
 
305
#define    COM1B1       5
 
306
#define    COM1B0       4
 
307
#define    PWM11        1
 
308
#define    PWM10        0
 
309
 
 
310
/* Timer/Counter 1 Control and Status Register */
 
311
#define    ICNC1        7
 
312
#define    ICES1        6
 
313
#define    CTC1         3
 
314
#define    CS12         2
 
315
#define    CS11         1
 
316
#define    CS10         0
 
317
 
 
318
/* Timer/Counter 2 Control register */ 
 
319
#define    PWM2         6
 
320
#define    COM21        5
 
321
#define    COM20        4
 
322
#define    CTC2         3
 
323
#define    CS22         2
 
324
#define    CS21         1
 
325
#define    CS20         0
 
326
 
 
327
/* Watchdog Timer Control Register */ 
 
328
#define    WDTOE        4
 
329
#define    WDE          3
 
330
#define    WDP2         2
 
331
#define    WDP1         1
 
332
#define    WDP0         0
 
333
  
 
334
/* EEPROM Control Register */
 
335
#define    EERIE        3
 
336
#define    EEMWE        2
 
337
#define    EEWE         1
 
338
#define    EERE         0
 
339
 
 
340
/* Data Register, Port A */
 
341
#define    PA7          7
 
342
#define    PA6          6
 
343
#define    PA5          5
 
344
#define    PA4          4
 
345
#define    PA3          3
 
346
#define    PA2          2
 
347
#define    PA1          1
 
348
#define    PA0          0
 
349
 
 
350
/* Data Direction Register, Port A */ 
 
351
#define    DDA7         7
 
352
#define    DDA6         6
 
353
#define    DDA5         5
 
354
#define    DDA4         4
 
355
#define    DDA3         3
 
356
#define    DDA2         2
 
357
#define    DDA1         1
 
358
#define    DDA0         0
 
359
   
 
360
/* Input Pins, Port A */ 
 
361
#define    PINA7        7
 
362
#define    PINA6        6
 
363
#define    PINA5        5
 
364
#define    PINA4        4
 
365
#define    PINA3        3
 
366
#define    PINA2        2
 
367
#define    PINA1        1
 
368
#define    PINA0        0
 
369
 
 
370
/* Data Register, Port B */ 
 
371
#define    PB7          7
 
372
#define    PB6          6
 
373
#define    PB5          5
 
374
#define    PB4          4
 
375
#define    PB3          3
 
376
#define    PB2          2
 
377
#define    PB1          1
 
378
#define    PB0          0
 
379
 
 
380
/* Data Direction Register, Port B */
 
381
#define    DDB7         7
 
382
#define    DDB6         6
 
383
#define    DDB5         5
 
384
#define    DDB4         4
 
385
#define    DDB3         3
 
386
#define    DDB2         2
 
387
#define    DDB1         1
 
388
#define    DDB0         0
 
389
                      
 
390
/* Input Pins, Port B */
 
391
#define    PINB7        7
 
392
#define    PINB6        6
 
393
#define    PINB5        5
 
394
#define    PINB4        4
 
395
#define    PINB3        3
 
396
#define    PINB2        2
 
397
#define    PINB1        1
 
398
#define    PINB0        0
 
399
 
 
400
/* Data Register, Port C */
 
401
#define    PC7          7
 
402
#define    PC6          6
 
403
#define    PC5          5
 
404
#define    PC4          4
 
405
#define    PC3          3
 
406
#define    PC2          2
 
407
#define    PC1          1
 
408
#define    PC0          0
 
409
 
 
410
/* Data Register, Port D */
 
411
#define    PD7          7
 
412
#define    PD6          6
 
413
#define    PD5          5
 
414
#define    PD4          4
 
415
#define    PD3          3
 
416
#define    PD2          2
 
417
#define    PD1          1
 
418
#define    PD0          0
 
419
                                          
 
420
/* Data Direction Register, Port D */
 
421
#define    DDD7         7
 
422
#define    DDD6         6
 
423
#define    DDD5         5
 
424
#define    DDD4         4
 
425
#define    DDD3         3
 
426
#define    DDD2         2
 
427
#define    DDD1         1
 
428
#define    DDD0         0
 
429
 
 
430
/* Input Pins, Port D */
 
431
#define    PIND7        7
 
432
#define    PIND6        6
 
433
#define    PIND5        5
 
434
#define    PIND4        4
 
435
#define    PIND3        3
 
436
#define    PIND2        2
 
437
#define    PIND1        1
 
438
#define    PIND0        0
 
439
 
 
440
/* Data Register, Port E */
 
441
#define    PE7          7
 
442
#define    PE6          6
 
443
#define    PE5          5
 
444
#define    PE4          4
 
445
#define    PE3          3
 
446
#define    PE2          2
 
447
#define    PE1          1
 
448
#define    PE0          0
 
449
 
 
450
/* Data Direction Register, Port E */
 
451
#define    DDE7         7
 
452
#define    DDE6         6
 
453
#define    DDE5         5
 
454
#define    DDE4         4
 
455
#define    DDE3         3
 
456
#define    DDE2         2
 
457
#define    DDE1         1
 
458
#define    DDE0         0
 
459
 
 
460
/* Input Pins, Port E */
 
461
#define    PINE7        7
 
462
#define    PINE6        6
 
463
#define    PINE5        5
 
464
#define    PINE4        4
 
465
#define    PINE3        3
 
466
#define    PINE2        2
 
467
#define    PINE1        1
 
468
#define    PINE0        0
 
469
 
 
470
/* Input Pins, Port F */
 
471
#define    PINF7        7
 
472
#define    PINF6        6
 
473
#define    PINF5        5
 
474
#define    PINF4        4
 
475
#define    PINF3        3
 
476
#define    PINF2        2
 
477
#define    PINF1        1
 
478
#define    PINF0        0
 
479
 
 
480
/* SPI Status Register */ 
 
481
#define    SPIF         7
 
482
#define    WCOL         6
 
483
 
 
484
/* SPI Control Register */
 
485
#define    SPIE         7
 
486
#define    SPE          6
 
487
#define    DORD         5
 
488
#define    MSTR         4
 
489
#define    CPOL         3
 
490
#define    CPHA         2
 
491
#define    SPR1         1
 
492
#define    SPR0         0
 
493
  
 
494
/* UART Status Register */
 
495
#define    RXC          7
 
496
#define    TXC          6
 
497
#define    UDRE         5
 
498
#define    FE           4
 
499
#define    OVR          3    /*This definition differs from the databook    */
 
500
                        /*definition to avoid problems with the OR instruction */
 
501
 
 
502
/* UART Control Register */
 
503
#define    RXCIE        7
 
504
#define    TXCIE        6
 
505
#define    UDRIE        5
 
506
#define    RXEN         4
 
507
#define    TXEN         3
 
508
#define    CHR9         2
 
509
#define    RXB8         1
 
510
#define    TXB8         0
 
511
 
 
512
/* Analog Comparator Control and Status Register */
 
513
#define    ACD          7
 
514
#define    ACO          5
 
515
#define    ACI          4
 
516
#define    ACIE         3
 
517
#define    ACIC         2
 
518
#define    ACIS1        1
 
519
#define    ACIS0        0
 
520
 
 
521
/* ADC Control and status register */
 
522
#define    ADEN         7
 
523
#define    ADSC         6
 
524
#define    ADFR         5
 
525
#define    ADIF         4
 
526
#define    ADIE         3
 
527
#define    ADPS2        2
 
528
#define    ADPS1        1
 
529
#define    ADPS0        0
 
530
 
 
531
/* ADC Multiplexer select */
 
532
#define    MUX2         2
 
533
#define    MUX1         1
 
534
#define    MUX0         0
 
535
 
 
536
/* Pointer definition */
 
537
#define    XL       r26
 
538
#define    XH       r27
 
539
#define    YL       r28
 
540
#define    YH       r29
 
541
#define    ZL       r30
 
542
#define    ZH       r31
 
543
 
 
544
/* Constants */
 
545
#define    RAMEND   0x0FFF     /*Last On-Chip SRAM Location*/
 
546
#define    XRAMEND  0xFFFF
 
547
#define    E2END    0x07FF
 
548
#define    FLASHEND 0xFFFF
 
549
 
 
550
#endif