RTEMS CPU Kit with SuperCore
4.11.3
Main Page
Related Pages
Modules
+
Data Structures
Data Structures
+
Data Fields
+
All
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
+
Variables
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
+
Files
File List
+
Globals
+
All
_
a
b
c
d
e
f
g
h
i
j
l
m
n
o
p
q
r
s
t
u
v
w
x
+
Functions
_
a
b
c
d
e
f
g
i
j
l
m
n
o
p
q
r
s
t
u
v
w
+
Variables
_
b
c
d
i
r
+
Typedefs
a
b
c
d
f
h
i
m
o
p
q
r
s
t
u
w
x
+
Enumerations
b
c
d
e
h
i
m
o
p
r
s
t
w
+
Enumerator
c
i
m
p
r
s
t
w
+
Macros
_
a
b
c
d
e
f
g
h
i
l
m
n
o
p
r
s
t
w
mnt
data0
chrisj
rtems
releases
rtems-release.git
4.11.3
ws-rtems
rtems-4.11.3
cpukit
score
cpu
avr
avr
iom644pa.h
Go to the documentation of this file.
1
9
/*
10
* Copyright (c) 2009 Atmel Corporation
11
* All rights reserved.
12
*
13
* Redistribution and use in source and binary forms, with or without
14
* modification, are permitted provided that the following conditions are met:
15
*
16
* * Redistributions of source code must retain the above copyright
17
* notice, this list of conditions and the following disclaimer.
18
*
19
* * Redistributions in binary form must reproduce the above copyright
20
* notice, this list of conditions and the following disclaimer in
21
* the documentation and/or other materials provided with the
22
* distribution.
23
*
24
* * Neither the name of the copyright holders nor the names of
25
* contributors may be used to endorse or promote products derived
26
* from this software without specific prior written permission.
27
*
28
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
29
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
30
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
31
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
32
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
33
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
34
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
35
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
36
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
37
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
38
* POSSIBILITY OF SUCH DAMAGE.
39
*/
40
41
#ifndef _AVR_IO_H_
42
# error "Include <avr/io.h> instead of this file."
43
#endif
44
45
#ifndef _AVR_IOXXX_H_
46
# define _AVR_IOXXX_H_ "iom644PA.h"
47
#else
48
# error "Attempt to include more than one <avr/ioXXX.h> file."
49
#endif
50
51
52
#ifndef _AVR_ATmega644PA_H_
53
#define _AVR_ATmega644PA_H_ 1
54
62
/* Registers and associated bit numbers. */
63
64
#define PINA _SFR_IO8(0x00)
65
#define PINA0 0
66
#define PINA1 1
67
#define PINA2 2
68
#define PINA3 3
69
#define PINA4 4
70
#define PINA5 5
71
#define PINA6 6
72
#define PINA7 7
73
74
#define DDRA _SFR_IO8(0x01)
75
#define DDA0 0
76
#define DDA1 1
77
#define DDA2 2
78
#define DDA3 3
79
#define DDA4 4
80
#define DDA5 5
81
#define DDA6 6
82
#define DDA7 7
83
84
#define PORTA _SFR_IO8(0x02)
85
#define PORTA0 0
86
#define PORTA1 1
87
#define PORTA2 2
88
#define PORTA3 3
89
#define PORTA4 4
90
#define PORTA5 5
91
#define PORTA6 6
92
#define PORTA7 7
93
94
#define PINB _SFR_IO8(0x03)
95
#define PINB0 0
96
#define PINB1 1
97
#define PINB2 2
98
#define PINB3 3
99
#define PINB4 4
100
#define PINB5 5
101
#define PINB6 6
102
#define PINB7 7
103
104
#define DDRB _SFR_IO8(0x04)
105
#define DDB0 0
106
#define DDB1 1
107
#define DDB2 2
108
#define DDB3 3
109
#define DDB4 4
110
#define DDB5 5
111
#define DDB6 6
112
#define DDB7 7
113
114
#define PORTB _SFR_IO8(0x05)
115
#define PORTB0 0
116
#define PORTB1 1
117
#define PORTB2 2
118
#define PORTB3 3
119
#define PORTB4 4
120
#define PORTB5 5
121
#define PORTB6 6
122
#define PORTB7 7
123
124
#define PINC _SFR_IO8(0x06)
125
#define PINC0 0
126
#define PINC1 1
127
#define PINC2 2
128
#define PINC3 3
129
#define PINC4 4
130
#define PINC5 5
131
#define PINC6 6
132
#define PINC7 7
133
134
#define DDRC _SFR_IO8(0x07)
135
#define DDC0 0
136
#define DDC1 1
137
#define DDC2 2
138
#define DDC3 3
139
#define DDC4 4
140
#define DDC5 5
141
#define DDC6 6
142
#define DDC7 7
143
144
#define PORTC _SFR_IO8(0x08)
145
#define PORTC0 0
146
#define PORTC1 1
147
#define PORTC2 2
148
#define PORTC3 3
149
#define PORTC4 4
150
#define PORTC5 5
151
#define PORTC6 6
152
#define PORTC7 7
153
154
#define PIND _SFR_IO8(0x09)
155
#define PIND0 0
156
#define PIND1 1
157
#define PIND2 2
158
#define PIND3 3
159
#define PIND4 4
160
#define PIND5 5
161
#define PIND6 6
162
#define PIND7 7
163
164
#define DDRD _SFR_IO8(0x0A)
165
#define DDD0 0
166
#define DDD1 1
167
#define DDD2 2
168
#define DDD3 3
169
#define DDD4 4
170
#define DDD5 5
171
#define DDD6 6
172
#define DDD7 7
173
174
#define PORTD _SFR_IO8(0x0B)
175
#define PORTD0 0
176
#define PORTD1 1
177
#define PORTD2 2
178
#define PORTD3 3
179
#define PORTD4 4
180
#define PORTD5 5
181
#define PORTD6 6
182
#define PORTD7 7
183
184
#define TIFR0 _SFR_IO8(0x15)
185
#define TOV0 0
186
#define OCF0A 1
187
#define OCF0B 2
188
189
#define TIFR1 _SFR_IO8(0x16)
190
#define TOV1 0
191
#define OCF1A 1
192
#define OCF1B 2
193
#define ICF1 5
194
195
#define TIFR2 _SFR_IO8(0x17)
196
#define TOV2 0
197
#define OCF2A 1
198
#define OCF2B 2
199
200
#define PCIFR _SFR_IO8(0x1B)
201
#define PCIF0 0
202
#define PCIF1 1
203
#define PCIF2 2
204
#define PCIF3 3
205
206
#define EIFR _SFR_IO8(0x1C)
207
#define INTF0 0
208
#define INTF1 1
209
#define INTF2 2
210
211
#define EIMSK _SFR_IO8(0x1D)
212
#define INT0 0
213
#define INT1 1
214
#define INT2 2
215
216
#define GPIOR0 _SFR_IO8(0x1E)
217
#define GPIOR00 0
218
#define GPIOR01 1
219
#define GPIOR02 2
220
#define GPIOR03 3
221
#define GPIOR04 4
222
#define GPIOR05 5
223
#define GPIOR06 6
224
#define GPIOR07 7
225
226
#define EECR _SFR_IO8(0x1F)
227
#define EERE 0
228
#define EEPE 1
229
#define EEMPE 2
230
#define EERIE 3
231
#define EEPM0 4
232
#define EEPM1 5
233
234
#define EEDR _SFR_IO8(0x20)
235
#define EEDR0 0
236
#define EEDR1 1
237
#define EEDR2 2
238
#define EEDR3 3
239
#define EEDR4 4
240
#define EEDR5 5
241
#define EEDR6 6
242
#define EEDR7 7
243
244
#define EEAR _SFR_IO16(0x21)
245
246
#define EEARL _SFR_IO8(0x21)
247
#define EEAR0 0
248
#define EEAR1 1
249
#define EEAR2 2
250
#define EEAR3 3
251
#define EEAR4 4
252
#define EEAR5 5
253
#define EEAR6 6
254
#define EEAR7 7
255
256
#define EEARH _SFR_IO8(0x22)
257
#define EEAR8 0
258
#define EEAR9 1
259
#define EEAR10 2
260
#define EEAR11 3
261
262
#define GTCCR _SFR_IO8(0x23)
263
#define PSRSYNC 0
264
#define PSRASY 1
265
#define TSM 7
266
267
#define TCCR0A _SFR_IO8(0x24)
268
#define WGM00 0
269
#define WGM01 1
270
#define COM0B0 4
271
#define COM0B1 5
272
#define COM0A0 6
273
#define COM0A1 7
274
275
#define TCCR0B _SFR_IO8(0x25)
276
#define CS00 0
277
#define CS01 1
278
#define CS02 2
279
#define WGM02 3
280
#define FOC0B 6
281
#define FOC0A 7
282
283
#define TCNT0 _SFR_IO8(0x26)
284
#define TCNT0_0 0
285
#define TCNT0_1 1
286
#define TCNT0_2 2
287
#define TCNT0_3 3
288
#define TCNT0_4 4
289
#define TCNT0_5 5
290
#define TCNT0_6 6
291
#define TCNT0_7 7
292
293
#define OCR0A _SFR_IO8(0x27)
294
#define OCR0A_0 0
295
#define OCR0A_1 1
296
#define OCR0A_2 2
297
#define OCR0A_3 3
298
#define OCR0A_4 4
299
#define OCR0A_5 5
300
#define OCR0A_6 6
301
#define OCR0A_7 7
302
303
#define OCR0B _SFR_IO8(0x28)
304
#define OCR0B_0 0
305
#define OCR0B_1 1
306
#define OCR0B_2 2
307
#define OCR0B_3 3
308
#define OCR0B_4 4
309
#define OCR0B_5 5
310
#define OCR0B_6 6
311
#define OCR0B_7 7
312
313
#define GPIOR1 _SFR_IO8(0x2A)
314
#define GPIOR10 0
315
#define GPIOR11 1
316
#define GPIOR12 2
317
#define GPIOR13 3
318
#define GPIOR14 4
319
#define GPIOR15 5
320
#define GPIOR16 6
321
#define GPIOR17 7
322
323
#define GPIOR2 _SFR_IO8(0x2B)
324
#define GPIOR20 0
325
#define GPIOR21 1
326
#define GPIOR22 2
327
#define GPIOR23 3
328
#define GPIOR24 4
329
#define GPIOR25 5
330
#define GPIOR26 6
331
#define GPIOR27 7
332
333
#define SPCR _SFR_IO8(0x2C)
334
#define SPR0 0
335
#define SPR1 1
336
#define CPHA 2
337
#define CPOL 3
338
#define MSTR 4
339
#define DORD 5
340
#define SPE 6
341
#define SPIE 7
342
343
#define SPSR _SFR_IO8(0x2D)
344
#define SPI2X 0
345
#define WCOL 6
346
#define SPIF 7
347
348
#define SPDR _SFR_IO8(0x2E)
349
#define SPDR0 0
350
#define SPDR1 1
351
#define SPDR2 2
352
#define SPDR3 3
353
#define SPDR4 4
354
#define SPDR5 5
355
#define SPDR6 6
356
#define SPDR7 7
357
358
#define ACSR _SFR_IO8(0x30)
359
#define ACIS0 0
360
#define ACIS1 1
361
#define ACIC 2
362
#define ACIE 3
363
#define ACI 4
364
#define ACO 5
365
#define ACBG 6
366
#define ACD 7
367
368
#define OCDR _SFR_IO8(0x31)
369
#define OCDR0 0
370
#define OCDR1 1
371
#define OCDR2 2
372
#define OCDR3 3
373
#define OCDR4 4
374
#define OCDR5 5
375
#define OCDR6 6
376
#define OCDR7 7
377
378
#define SMCR _SFR_IO8(0x33)
379
#define SE 0
380
#define SM0 1
381
#define SM1 2
382
#define SM2 3
383
384
#define MCUSR _SFR_IO8(0x34)
385
#define PORF 0
386
#define EXTRF 1
387
#define BORF 2
388
#define WDRF 3
389
#define JTRF 4
390
391
#define MCUCR _SFR_IO8(0x35)
392
#define IVCE 0
393
#define IVSEL 1
394
#define PUD 4
395
#define BODSE 5
396
#define BODS 6
397
#define JTD 7
398
399
#define SPMCSR _SFR_IO8(0x37)
400
#define SPMEN 0
401
#define PGERS 1
402
#define PGWRT 2
403
#define BLBSET 3
404
#define RWWSRE 4
405
#define SIGRD 5
406
#define RWWSB 6
407
#define SPMIE 7
408
409
#define WDTCSR _SFR_MEM8(0x60)
410
#define WDP0 0
411
#define WDP1 1
412
#define WDP2 2
413
#define WDE 3
414
#define WDCE 4
415
#define WDP3 5
416
#define WDIE 6
417
#define WDIF 7
418
419
#define CLKPR _SFR_MEM8(0x61)
420
#define CLKPS0 0
421
#define CLKPS1 1
422
#define CLKPS2 2
423
#define CLKPS3 3
424
#define CLKPCE 7
425
426
#define PRR0 _SFR_MEM8(0x64)
427
#define PRADC 0
428
#define PRUSART0 1
429
#define PRSPI 2
430
#define PRTIM1 3
431
#define PRUSART1 4
432
#define PRTIM0 5
433
#define PRTIM2 6
434
#define PRTWI 7
435
436
#define OSCCAL _SFR_MEM8(0x66)
437
#define CAL0 0
438
#define CAL1 1
439
#define CAL2 2
440
#define CAL3 3
441
#define CAL4 4
442
#define CAL5 5
443
#define CAL6 6
444
#define CAL7 7
445
446
#define PCICR _SFR_MEM8(0x68)
447
#define PCIE0 0
448
#define PCIE1 1
449
#define PCIE2 2
450
#define PCIE3 3
451
452
#define EICRA _SFR_MEM8(0x69)
453
#define ISC00 0
454
#define ISC01 1
455
#define ISC10 2
456
#define ISC11 3
457
#define ISC20 4
458
#define ISC21 5
459
460
#define PCMSK0 _SFR_MEM8(0x6B)
461
#define PCINT0 0
462
#define PCINT1 1
463
#define PCINT2 2
464
#define PCINT3 3
465
#define PCINT4 4
466
#define PCINT5 5
467
#define PCINT6 6
468
#define PCINT7 7
469
470
#define PCMSK1 _SFR_MEM8(0x6C)
471
#define PCINT8 0
472
#define PCINT9 1
473
#define PCINT10 2
474
#define PCINT11 3
475
#define PCINT12 4
476
#define PCINT13 5
477
#define PCINT14 6
478
#define PCINT15 7
479
480
#define PCMSK2 _SFR_MEM8(0x6D)
481
#define PCINT16 0
482
#define PCINT17 1
483
#define PCINT18 2
484
#define PCINT19 3
485
#define PCINT20 4
486
#define PCINT21 5
487
#define PCINT22 6
488
#define PCINT23 7
489
490
#define TIMSK0 _SFR_MEM8(0x6E)
491
#define TOIE0 0
492
#define OCIE0A 1
493
#define OCIE0B 2
494
495
#define TIMSK1 _SFR_MEM8(0x6F)
496
#define TOIE1 0
497
#define OCIE1A 1
498
#define OCIE1B 2
499
#define ICIE1 5
500
501
#define TIMSK2 _SFR_MEM8(0x70)
502
#define TOIE2 0
503
#define OCIE2A 1
504
#define OCIE2B 2
505
506
#define PCMSK3 _SFR_MEM8(0x73)
507
#define PCINT24 0
508
#define PCINT25 1
509
#define PCINT26 2
510
#define PCINT27 3
511
#define PCINT28 4
512
#define PCINT29 5
513
#define PCINT30 6
514
#define PCINT31 7
515
516
#ifndef __ASSEMBLER__
517
#define ADC _SFR_MEM16(0x78)
518
#endif
519
#define ADCW _SFR_MEM16(0x78)
520
521
#define ADCL _SFR_MEM8(0x78)
522
#define ADCL0 0
523
#define ADCL1 1
524
#define ADCL2 2
525
#define ADCL3 3
526
#define ADCL4 4
527
#define ADCL5 5
528
#define ADCL6 6
529
#define ADCL7 7
530
531
#define ADCH _SFR_MEM8(0x79)
532
#define ADCH0 0
533
#define ADCH1 1
534
#define ADCH2 2
535
#define ADCH3 3
536
#define ADCH4 4
537
#define ADCH5 5
538
#define ADCH6 6
539
#define ADCH7 7
540
541
#define ADCSRA _SFR_MEM8(0x7A)
542
#define ADPS0 0
543
#define ADPS1 1
544
#define ADPS2 2
545
#define ADIE 3
546
#define ADIF 4
547
#define ADATE 5
548
#define ADSC 6
549
#define ADEN 7
550
551
#define ADCSRB _SFR_MEM8(0x7B)
552
#define ADTS0 0
553
#define ADTS1 1
554
#define ADTS2 2
555
#define ACME 6
556
557
#define ADMUX _SFR_MEM8(0x7C)
558
#define MUX0 0
559
#define MUX1 1
560
#define MUX2 2
561
#define MUX3 3
562
#define MUX4 4
563
#define ADLAR 5
564
#define REFS0 6
565
#define REFS1 7
566
567
#define DIDR0 _SFR_MEM8(0x7E)
568
#define ADC0D 0
569
#define ADC1D 1
570
#define ADC2D 2
571
#define ADC3D 3
572
#define ADC4D 4
573
#define ADC5D 5
574
#define ADC6D 6
575
#define ADC7D 7
576
577
#define DIDR1 _SFR_MEM8(0x7F)
578
#define AIN0D 0
579
#define AIN1D 1
580
581
#define TCCR1A _SFR_MEM8(0x80)
582
#define WGM10 0
583
#define WGM11 1
584
#define COM1B0 4
585
#define COM1B1 5
586
#define COM1A0 6
587
#define COM1A1 7
588
589
#define TCCR1B _SFR_MEM8(0x81)
590
#define CS10 0
591
#define CS11 1
592
#define CS12 2
593
#define WGM12 3
594
#define WGM13 4
595
#define ICES1 6
596
#define ICNC1 7
597
598
#define TCCR1C _SFR_MEM8(0x82)
599
#define FOC1B 6
600
#define FOC1A 7
601
602
#define TCNT1 _SFR_MEM16(0x84)
603
604
#define TCNT1L _SFR_MEM8(0x84)
605
#define TCNT1L0 0
606
#define TCNT1L1 1
607
#define TCNT1L2 2
608
#define TCNT1L3 3
609
#define TCNT1L4 4
610
#define TCNT1L5 5
611
#define TCNT1L6 6
612
#define TCNT1L7 7
613
614
#define TCNT1H _SFR_MEM8(0x85)
615
#define TCNT1H0 0
616
#define TCNT1H1 1
617
#define TCNT1H2 2
618
#define TCNT1H3 3
619
#define TCNT1H4 4
620
#define TCNT1H5 5
621
#define TCNT1H6 6
622
#define TCNT1H7 7
623
624
#define ICR1 _SFR_MEM16(0x86)
625
626
#define ICR1L _SFR_MEM8(0x86)
627
#define ICR1L0 0
628
#define ICR1L1 1
629
#define ICR1L2 2
630
#define ICR1L3 3
631
#define ICR1L4 4
632
#define ICR1L5 5
633
#define ICR1L6 6
634
#define ICR1L7 7
635
636
#define ICR1H _SFR_MEM8(0x87)
637
#define ICR1H0 0
638
#define ICR1H1 1
639
#define ICR1H2 2
640
#define ICR1H3 3
641
#define ICR1H4 4
642
#define ICR1H5 5
643
#define ICR1H6 6
644
#define ICR1H7 7
645
646
#define OCR1A _SFR_MEM16(0x88)
647
648
#define OCR1AL _SFR_MEM8(0x88)
649
#define OCR1AL0 0
650
#define OCR1AL1 1
651
#define OCR1AL2 2
652
#define OCR1AL3 3
653
#define OCR1AL4 4
654
#define OCR1AL5 5
655
#define OCR1AL6 6
656
#define OCR1AL7 7
657
658
#define OCR1AH _SFR_MEM8(0x89)
659
#define OCR1AH0 0
660
#define OCR1AH1 1
661
#define OCR1AH2 2
662
#define OCR1AH3 3
663
#define OCR1AH4 4
664
#define OCR1AH5 5
665
#define OCR1AH6 6
666
#define OCR1AH7 7
667
668
#define OCR1B _SFR_MEM16(0x8A)
669
670
#define OCR1BL _SFR_MEM8(0x8A)
671
#define OCR1BL0 0
672
#define OCR1BL1 1
673
#define OCR1BL2 2
674
#define OCR1BL3 3
675
#define OCR1BL4 4
676
#define OCR1BL5 5
677
#define OCR1BL6 6
678
#define OCR1BL7 7
679
680
#define OCR1BH _SFR_MEM8(0x8B)
681
#define OCR1BH0 0
682
#define OCR1BH1 1
683
#define OCR1BH2 2
684
#define OCR1BH3 3
685
#define OCR1BH4 4
686
#define OCR1BH5 5
687
#define OCR1BH6 6
688
#define OCR1BH7 7
689
690
#define TCCR2A _SFR_MEM8(0xB0)
691
#define WGM20 0
692
#define WGM21 1
693
#define COM2B0 4
694
#define COM2B1 5
695
#define COM2A0 6
696
#define COM2A1 7
697
698
#define TCCR2B _SFR_MEM8(0xB1)
699
#define CS20 0
700
#define CS21 1
701
#define CS22 2
702
#define WGM22 3
703
#define FOC2B 6
704
#define FOC2A 7
705
706
#define TCNT2 _SFR_MEM8(0xB2)
707
#define TCNT2_0 0
708
#define TCNT2_1 1
709
#define TCNT2_2 2
710
#define TCNT2_3 3
711
#define TCNT2_4 4
712
#define TCNT2_5 5
713
#define TCNT2_6 6
714
#define TCNT2_7 7
715
716
#define OCR2A _SFR_MEM8(0xB3)
717
#define OCR2A_0 0
718
#define OCR2A_1 1
719
#define OCR2A_2 2
720
#define OCR2A_3 3
721
#define OCR2A_4 4
722
#define OCR2A_5 5
723
#define OCR2A_6 6
724
#define OCR2A_7 7
725
726
#define OCR2B _SFR_MEM8(0xB4)
727
#define OCR2B_0 0
728
#define OCR2B_1 1
729
#define OCR2B_2 2
730
#define OCR2B_3 3
731
#define OCR2B_4 4
732
#define OCR2B_5 5
733
#define OCR2B_6 6
734
#define OCR2B_7 7
735
736
#define ASSR _SFR_MEM8(0xB6)
737
#define TCR2BUB 0
738
#define TCR2AUB 1
739
#define OCR2BUB 2
740
#define OCR2AUB 3
741
#define TCN2UB 4
742
#define AS2 5
743
#define EXCLK 6
744
745
#define TWBR _SFR_MEM8(0xB8)
746
#define TWBR0 0
747
#define TWBR1 1
748
#define TWBR2 2
749
#define TWBR3 3
750
#define TWBR4 4
751
#define TWBR5 5
752
#define TWBR6 6
753
#define TWBR7 7
754
755
#define TWSR _SFR_MEM8(0xB9)
756
#define TWPS0 0
757
#define TWPS1 1
758
#define TWS3 3
759
#define TWS4 4
760
#define TWS5 5
761
#define TWS6 6
762
#define TWS7 7
763
764
#define TWAR _SFR_MEM8(0xBA)
765
#define TWGCE 0
766
#define TWA0 1
767
#define TWA1 2
768
#define TWA2 3
769
#define TWA3 4
770
#define TWA4 5
771
#define TWA5 6
772
#define TWA6 7
773
774
#define TWDR _SFR_MEM8(0xBB)
775
#define TWD0 0
776
#define TWD1 1
777
#define TWD2 2
778
#define TWD3 3
779
#define TWD4 4
780
#define TWD5 5
781
#define TWD6 6
782
#define TWD7 7
783
784
#define TWCR _SFR_MEM8(0xBC)
785
#define TWIE 0
786
#define TWEN 2
787
#define TWWC 3
788
#define TWSTO 4
789
#define TWSTA 5
790
#define TWEA 6
791
#define TWINT 7
792
793
#define TWAMR _SFR_MEM8(0xBD)
794
#define TWAM0 1
795
#define TWAM1 2
796
#define TWAM2 3
797
#define TWAM3 4
798
#define TWAM4 5
799
#define TWAM5 6
800
#define TWAM6 7
801
802
#define UCSR0A _SFR_MEM8(0xC0)
803
#define MPCM0 0
804
#define U2X0 1
805
#define UPE0 2
806
#define DOR0 3
807
#define FE0 4
808
#define UDRE0 5
809
#define TXC0 6
810
#define RXC0 7
811
812
#define UCSR0B _SFR_MEM8(0xC1)
813
#define TXB80 0
814
#define RXB80 1
815
#define UCSZ02 2
816
#define TXEN0 3
817
#define RXEN0 4
818
#define UDRIE0 5
819
#define TXCIE0 6
820
#define RXCIE0 7
821
822
#define UCSR0C _SFR_MEM8(0xC2)
823
#define UCPOL0 0
824
#define UCSZ00 1
825
#define UCSZ01 2
826
#define USBS0 3
827
#define UPM00 4
828
#define UPM01 5
829
#define UMSEL00 6
830
#define UMSEL01 7
831
832
#define UBRR0 _SFR_MEM16(0xC4)
833
834
#define UBRR0L _SFR_MEM8(0xC4)
835
#define _UBRR0 0
836
#define _UBRR1 1
837
#define UBRR2 2
838
#define UBRR3 3
839
#define UBRR4 4
840
#define UBRR5 5
841
#define UBRR6 6
842
#define UBRR7 7
843
844
#define UBRR0H _SFR_MEM8(0xC5)
845
#define UBRR8 0
846
#define UBRR9 1
847
#define UBRR10 2
848
#define UBRR11 3
849
850
#define UDR0 _SFR_MEM8(0xC6)
851
#define UDR0_0 0
852
#define UDR0_1 1
853
#define UDR0_2 2
854
#define UDR0_3 3
855
#define UDR0_4 4
856
#define UDR0_5 5
857
#define UDR0_6 6
858
#define UDR0_7 7
859
860
#define UCSR1A _SFR_MEM8(0xC8)
861
#define MPCM1 0
862
#define U2X1 1
863
#define UPE1 2
864
#define DOR1 3
865
#define FE1 4
866
#define UDRE1 5
867
#define TXC1 6
868
#define RXC1 7
869
870
#define UCSR1B _SFR_MEM8(0xC9)
871
#define TXB81 0
872
#define RXB81 1
873
#define UCSZ12 2
874
#define TXEN1 3
875
#define RXEN1 4
876
#define UDRIE1 5
877
#define TXCIE1 6
878
#define RXCIE1 7
879
880
#define UCSR1C _SFR_MEM8(0xCA)
881
#define UCPOL1 0
882
#define UCSZ10 1
883
#define UCSZ11 2
884
#define USBS1 3
885
#define UPM10 4
886
#define UPM11 5
887
#define UMSEL10 6
888
#define UMSEL11 7
889
890
#define UBRR1 _SFR_MEM16(0xCC)
891
892
#define UBRR1L _SFR_MEM8(0xCC)
893
#define UBRR_0 0
894
#define UBRR_1 1
895
#define UBRR_2 2
896
#define UBRR_3 3
897
#define UBRR_4 4
898
#define UBRR_5 5
899
#define UBRR_6 6
900
#define UBRR_7 7
901
902
#define UBRR1H _SFR_MEM8(0xCD)
903
#define UBRR_8 0
904
#define UBRR_9 1
905
#define UBRR_10 2
906
#define UBRR_11 3
907
908
#define UDR1 _SFR_MEM8(0xCE)
909
#define UDR1_0 0
910
#define UDR1_1 1
911
#define UDR1_2 2
912
#define UDR1_3 3
913
#define UDR1_4 4
914
#define UDR1_5 5
915
#define UDR1_6 6
916
#define UDR1_7 7
917
918
919
/* Interrupt vectors */
920
/* Vector 0 is the reset vector */
921
#define INT0_vect_num 1
922
#define INT0_vect _VECTOR(1)
/* External Interrupt Request 0 */
923
#define INT1_vect_num 2
924
#define INT1_vect _VECTOR(2)
/* External Interrupt Request 1 */
925
#define INT2_vect_num 3
926
#define INT2_vect _VECTOR(3)
/* External Interrupt Request 2 */
927
#define PCINT0_vect_num 4
928
#define PCINT0_vect _VECTOR(4)
/* Pin Change Interrupt Request 0 */
929
#define PCINT1_vect_num 5
930
#define PCINT1_vect _VECTOR(5)
/* Pin Change Interrupt Request 1 */
931
#define PCINT2_vect_num 6
932
#define PCINT2_vect _VECTOR(6)
/* Pin Change Interrupt Request 2 */
933
#define PCINT3_vect_num 7
934
#define PCINT3_vect _VECTOR(7)
/* Pin Change Interrupt Request 3 */
935
#define WDT_vect_num 8
936
#define WDT_vect _VECTOR(8)
/* Watchdog Time-out Interrupt */
937
#define TIMER2_COMPA_vect_num 9
938
#define TIMER2_COMPA_vect _VECTOR(9)
/* Timer/Counter2 Compare Match A */
939
#define TIMER2_COMPB_vect_num 10
940
#define TIMER2_COMPB_vect _VECTOR(10)
/* Timer/Counter2 Compare Match B */
941
#define TIMER2_OVF_vect_num 11
942
#define TIMER2_OVF_vect _VECTOR(11)
/* Timer/Counter2 Overflow */
943
#define TIMER1_CAPT_vect_num 12
944
#define TIMER1_CAPT_vect _VECTOR(12)
/* Timer/Counter1 Capture Event */
945
#define TIMER1_COMPA_vect_num 13
946
#define TIMER1_COMPA_vect _VECTOR(13)
/* Timer/Counter1 Compare Match A */
947
#define TIMER1_COMPB_vect_num 14
948
#define TIMER1_COMPB_vect _VECTOR(14)
/* Timer/Counter1 Compare Match B */
949
#define TIMER1_OVF_vect_num 15
950
#define TIMER1_OVF_vect _VECTOR(15)
/* Timer/Counter1 Overflow */
951
#define TIMER0_COMPA_vect_num 16
952
#define TIMER0_COMPA_vect _VECTOR(16)
/* Timer/Counter0 Compare Match A */
953
#define TIMER0_COMPB_vect_num 17
954
#define TIMER0_COMPB_vect _VECTOR(17)
/* Timer/Counter0 Compare Match B */
955
#define TIMER0_OVF_vect_num 18
956
#define TIMER0_OVF_vect _VECTOR(18)
/* Timer/Counter0 Overflow */
957
#define SPI_STC_vect_num 19
958
#define SPI_STC_vect _VECTOR(19)
/* SPI Serial Transfer Complete */
959
#define USART0_RX_vect_num 20
960
#define USART0_RX_vect _VECTOR(20)
/* USART0, Rx Complete */
961
#define USART0_UDRE_vect_num 21
962
#define USART0_UDRE_vect _VECTOR(21)
/* USART0 Data register Empty */
963
#define USART0_TX_vect_num 22
964
#define USART0_TX_vect _VECTOR(22)
/* USART0, Tx Complete */
965
#define ANALOG_COMP_vect_num 23
966
#define ANALOG_COMP_vect _VECTOR(23)
/* Analog Comparator */
967
#define ADC_vect_num 24
968
#define ADC_vect _VECTOR(24)
/* ADC Conversion Complete */
969
#define EE_READY_vect_num 25
970
#define EE_READY_vect _VECTOR(25)
/* EEPROM Ready */
971
#define TWI_vect_num 26
972
#define TWI_vect _VECTOR(26)
/* 2-wire Serial Interface */
973
#define SPM_READY_vect_num 27
974
#define SPM_READY_vect _VECTOR(27)
/* Store Program Memory Read */
975
#define USART1_RX_vect_num 28
976
#define USART1_RX_vect _VECTOR(28)
/* USART1 RX complete */
977
#define USART1_UDRE_vect_num 29
978
#define USART1_UDRE_vect _VECTOR(29)
/* USART1 Data Register Empty */
979
#define USART1_TX_vect_num 30
980
#define USART1_TX_vect _VECTOR(30)
/* USART1 TX complete */
981
982
#define _VECTOR_SIZE 4
/* Size of individual vector. */
983
#define _VECTORS_SIZE (31 * _VECTOR_SIZE)
984
985
986
/* Constants */
987
#define SPM_PAGESIZE (256)
988
#define RAMSTART (0x100)
989
#define RAMSIZE (4096)
990
#define RAMEND (RAMSTART + RAMSIZE - 1)
991
#define XRAMSTART (0x0)
992
#define XRAMSIZE (0)
993
#define XRAMEND (RAMEND)
994
#define E2END (0x7FF)
995
#define E2PAGESIZE (8)
996
#define FLASHEND (0xFFFF)
997
998
999
/* Fuses */
1000
#define FUSE_MEMORY_SIZE 3
1001
1002
/* Low Fuse Byte */
1003
#define FUSE_CKSEL0 (unsigned char)~_BV(0)
/* Select Clock Source */
1004
#define FUSE_CKSEL1 (unsigned char)~_BV(1)
/* Select Clock Source */
1005
#define FUSE_CKSEL2 (unsigned char)~_BV(2)
/* Select Clock Source */
1006
#define FUSE_CKSEL3 (unsigned char)~_BV(3)
/* Select Clock Source */
1007
#define FUSE_SUT0 (unsigned char)~_BV(4)
/* Select start-up time */
1008
#define FUSE_SUT1 (unsigned char)~_BV(5)
/* Select start-up time */
1009
#define FUSE_CKOUT (unsigned char)~_BV(6)
/* Clock output */
1010
#define FUSE_CKDIV8 (unsigned char)~_BV(7)
/* Divide clock by 8 */
1011
#define LFUSE_DEFAULT (FUSE_CKDIV8 & FUSE_SUT1 & FUSE_SUT0 & FUSE_CKSEL3 & FUSE_CKSEL2 & FUSE_CKSEL0)
1012
1013
/* High Fuse Byte */
1014
#define FUSE_BOOTRST (unsigned char)~_BV(0)
/* Select Reset Vector */
1015
#define FUSE_BOOTSZ0 (unsigned char)~_BV(1)
/* Select Boot Size */
1016
#define FUSE_BOOTSZ1 (unsigned char)~_BV(2)
/* Select Boot Size */
1017
#define FUSE_EESAVE (unsigned char)~_BV(3)
/* EEPROM memory is preserved through chip erase */
1018
#define FUSE_WDTON (unsigned char)~_BV(4)
/* Watchdog timer always on */
1019
#define FUSE_SPIEN (unsigned char)~_BV(5)
/* Enable Serial programming and Data Downloading */
1020
#define FUSE_JTAGEN (unsigned char)~_BV(6)
/* Enable JTAG */
1021
#define FUSE_OCDEN (unsigned char)~_BV(7)
/* Enable OCD */
1022
#define HFUSE_DEFAULT (FUSE_JTAGEN & FUSE_SPIEN & FUSE_BOOTSZ1 & FUSE_BOOTSZ0)
1023
1024
/* Extended Fuse Byte */
1025
#define FUSE_BODLEVEL0 (unsigned char)~_BV(0)
/* Brown-out Detector trigger level */
1026
#define FUSE_BODLEVEL1 (unsigned char)~_BV(1)
/* Brown-out Detector trigger level */
1027
#define FUSE_BODLEVEL2 (unsigned char)~_BV(2)
/* Brown-out Detector trigger level */
1028
#define EFUSE_DEFAULT (0xFF)
1029
1030
1031
/* Lock Bits */
1032
#define __LOCK_BITS_EXIST
1033
#define __BOOT_LOCK_BITS_0_EXIST
1034
#define __BOOT_LOCK_BITS_1_EXIST
1035
1036
1037
/* Signature */
1038
#define SIGNATURE_0 0x1E
1039
#define SIGNATURE_1 0x96
1040
#define SIGNATURE_2 0x0A
1041
1042
1043
/* Device Pin Definitions */
1044
#define MOSI_DDR DDRB
1045
#define MOSI_PORT PORTB
1046
#define MOSI_PIN PINB
1047
#define MOSI_BIT 5
1048
1049
#define PCINT13_DDR DDRB
1050
#define PCINT13_PORT PORTB
1051
#define PCINT13_PIN PINB
1052
#define PCINT13_BIT 5
1053
1054
#define MISO_DDR DDRB
1055
#define MISO_PORT PORTB
1056
#define MISO_PIN PINB
1057
#define MISO_BIT 6
1058
1059
#define PCINT14_DDR DDRB
1060
#define PCINT14_PORT PORTB
1061
#define PCINT14_PIN PINB
1062
#define PCINT14_BIT 6
1063
1064
#define SCK_DDR DDRB
1065
#define SCK_PORT PORTB
1066
#define SCK_PIN PINB
1067
#define SCK_BIT 7
1068
1069
#define PCINT15_DDR DDRB
1070
#define PCINT15_PORT PORTB
1071
#define PCINT15_PIN PINB
1072
#define PCINT15_BIT 7
1073
1074
#define RXD_DDR DDRD
1075
#define RXD_PORT PORTD
1076
#define RXD_PIN PIND
1077
#define RXD_BIT 0
1078
1079
#define PCINT24_DDR DDRD
1080
#define PCINT24_PORT PORTD
1081
#define PCINT24_PIN PIND
1082
#define PCINT24_BIT 0
1083
1084
#define TXD_DDR DDRD
1085
#define TXD_PORT PORTD
1086
#define TXD_PIN PIND
1087
#define TXD_BIT 1
1088
1089
#define PCINT25_DDR DDRD
1090
#define PCINT25_PORT PORTD
1091
#define PCINT25_PIN PIND
1092
#define PCINT25_BIT 1
1093
1094
#define INT0_DDR DDRD
1095
#define INT0_PORT PORTD
1096
#define INT0_PIN PIND
1097
#define INT0_BIT 2
1098
1099
#define RDX1_DDR DDRD
1100
#define RDX1_PORT PORTD
1101
#define RDX1_PIN PIND
1102
#define RDX1_BIT 2
1103
1104
#define PCINT26_DDR DDRD
1105
#define PCINT26_PORT PORTD
1106
#define PCINT26_PIN PIND
1107
#define PCINT26_BIT 2
1108
1109
#define INT1_DDR DDRD
1110
#define INT1_PORT PORTD
1111
#define INT1_PIN PIND
1112
#define INT1_BIT 3
1113
1114
#define TXD1_DDR DDRD
1115
#define TXD1_PORT PORTD
1116
#define TXD1_PIN PIND
1117
#define TXD1_BIT 3
1118
1119
#define PCINT27_DDR DDRD
1120
#define PCINT27_PORT PORTD
1121
#define PCINT27_PIN PIND
1122
#define PCINT27_BIT 3
1123
1124
#define OC1B_DDR DDRD
1125
#define OC1B_PORT PORTD
1126
#define OC1B_PIN PIND
1127
#define OC1B_BIT 4
1128
1129
#define XCK1_DDR DDRD
1130
#define XCK1_PORT PORTD
1131
#define XCK1_PIN PIND
1132
#define XCK1_BIT 4
1133
1134
#define PCINT28_DDR DDRD
1135
#define PCINT28_PORT PORTD
1136
#define PCINT28_PIN PIND
1137
#define PCINT28_BIT 4
1138
1139
#define OC1A_DDR DDRD
1140
#define OC1A_PORT PORTD
1141
#define OC1A_PIN PIND
1142
#define OC1A_BIT 5
1143
1144
#define PCINT29_DDR DDRD
1145
#define PCINT29_PORT PORTD
1146
#define PCINT29_PIN PIND
1147
#define PCINT29_BIT 5
1148
1149
#define ICP_DDR DDRD
1150
#define ICP_PORT PORTD
1151
#define ICP_PIN PIND
1152
#define ICP_BIT 6
1153
1154
#define OC2B_DDR DDRD
1155
#define OC2B_PORT PORTD
1156
#define OC2B_PIN PIND
1157
#define OC2B_BIT 6
1158
1159
#define PCINT30_DDR DDRD
1160
#define PCINT30_PORT PORTD
1161
#define PCINT30_PIN PIND
1162
#define PCINT30_BIT 6
1163
1164
#define OC2A_DDR DDRD
1165
#define OC2A_PORT PORTD
1166
#define OC2A_PIN PIND
1167
#define OC2A_BIT 7
1168
1169
#define PCINT31_DDR DDRD
1170
#define PCINT31_PORT PORTD
1171
#define PCINT31_PIN PIND
1172
#define PCINT31_BIT 7
1173
1174
#define SCL_DDR DDRC
1175
#define SCL_PORT PORTC
1176
#define SCL_PIN PINC
1177
#define SCL_BIT 0
1178
1179
#define PCINT16_DDR DDRC
1180
#define PCINT16_PORT PORTC
1181
#define PCINT16_PIN PINC
1182
#define PCINT16_BIT 0
1183
1184
#define SDA_DDR DDRC
1185
#define SDA_PORT PORTC
1186
#define SDA_PIN PINC
1187
#define SDA_BIT 1
1188
1189
#define PCINT17_DDR DDRC
1190
#define PCINT17_PORT PORTC
1191
#define PCINT17_PIN PINC
1192
#define PCINT17_BIT 1
1193
1194
#define PCINT18_DDR DDRC
1195
#define PCINT18_PORT PORTC
1196
#define PCINT18_PIN PINC
1197
#define PCINT18_BIT 2
1198
1199
#define PCINT19_DDR DDRC
1200
#define PCINT19_PORT PORTC
1201
#define PCINT19_PIN PINC
1202
#define PCINT19_BIT 3
1203
1204
#define PCINT20_DDR DDRC
1205
#define PCINT20_PORT PORTC
1206
#define PCINT20_PIN PINC
1207
#define PCINT20_BIT 4
1208
1209
#define PCINT21_DDR DDRC
1210
#define PCINT21_PORT PORTC
1211
#define PCINT21_PIN PINC
1212
#define PCINT21_BIT 5
1213
1214
#define PCINT22_DDR DDRC
1215
#define PCINT22_PORT PORTC
1216
#define PCINT22_PIN PINC
1217
#define PCINT22_BIT 6
1218
1219
#define PCINT23_DDR DDRC
1220
#define PCINT23_PORT PORTC
1221
#define PCINT23_PIN PINC
1222
#define PCINT23_BIT 7
1223
1224
#define ADC7_DDR DDRA
1225
#define ADC7_PORT PORTA
1226
#define ADC7_PIN PINA
1227
#define ADC7_BIT 7
1228
1229
#define PCINT7_DDR DDRA
1230
#define PCINT7_PORT PORTA
1231
#define PCINT7_PIN PINA
1232
#define PCINT7_BIT 7
1233
1234
#define ADC6_DDR DDRA
1235
#define ADC6_PORT PORTA
1236
#define ADC6_PIN PINA
1237
#define ADC6_BIT 6
1238
1239
#define PCINT6_DDR DDRA
1240
#define PCINT6_PORT PORTA
1241
#define PCINT6_PIN PINA
1242
#define PCINT6_BIT 6
1243
1244
#define ADC5_DDR DDRA
1245
#define ADC5_PORT PORTA
1246
#define ADC5_PIN PINA
1247
#define ADC5_BIT 5
1248
1249
#define PCINT5_DDR DDRA
1250
#define PCINT5_PORT PORTA
1251
#define PCINT5_PIN PINA
1252
#define PCINT5_BIT 5
1253
1254
#define ADC4_DDR DDRA
1255
#define ADC4_PORT PORTA
1256
#define ADC4_PIN PINA
1257
#define ADC4_BIT 4
1258
1259
#define PCINT4_DDR DDRA
1260
#define PCINT4_PORT PORTA
1261
#define PCINT4_PIN PINA
1262
#define PCINT4_BIT 4
1263
1264
#define ADC3_DDR DDRA
1265
#define ADC3_PORT PORTA
1266
#define ADC3_PIN PINA
1267
#define ADC3_BIT 3
1268
1269
#define PCINT3_DDR DDRA
1270
#define PCINT3_PORT PORTA
1271
#define PCINT3_PIN PINA
1272
#define PCINT3_BIT 3
1273
1274
#define ADC2_DDR DDRA
1275
#define ADC2_PORT PORTA
1276
#define ADC2_PIN PINA
1277
#define ADC2_BIT 2
1278
1279
#define PCINT2_DDR DDRA
1280
#define PCINT2_PORT PORTA
1281
#define PCINT2_PIN PINA
1282
#define PCINT2_BIT 2
1283
1284
#define ADC1_DDR DDRA
1285
#define ADC1_PORT PORTA
1286
#define ADC1_PIN PINA
1287
#define ADC1_BIT 1
1288
1289
#define PCINT1_DDR DDRA
1290
#define PCINT1_PORT PORTA
1291
#define PCINT1_PIN PINA
1292
#define PCINT1_BIT 1
1293
1294
#define ADC0_DDR DDRA
1295
#define ADC0_PORT PORTA
1296
#define ADC0_PIN PINA
1297
#define ADC0_BIT 0
1298
1299
#define PCINT0_DDR DDRA
1300
#define PCINT0_PORT PORTA
1301
#define PCINT0_PIN PINA
1302
#define PCINT0_BIT 0
1303
1304
#define XCK_DDR DDRB
1305
#define XCK_PORT PORTB
1306
#define XCK_PIN PINB
1307
#define XCK_BIT 0
1308
1309
#define T0_DDR DDRB
1310
#define T0_PORT PORTB
1311
#define T0_PIN PINB
1312
#define T0_BIT 0
1313
1314
#define PCINT8_DDR DDRB
1315
#define PCINT8_PORT PORTB
1316
#define PCINT8_PIN PINB
1317
#define PCINT8_BIT 0
1318
1319
#define T1_DDR DDRB
1320
#define T1_PORT PORTB
1321
#define T1_PIN PINB
1322
#define T1_BIT 1
1323
1324
#define CLKO_DDR DDRB
1325
#define CLKO_PORT PORTB
1326
#define CLKO_PIN PINB
1327
#define CLKO_BIT 1
1328
1329
#define PCINT9_DDR DDRB
1330
#define PCINT9_PORT PORTB
1331
#define PCINT9_PIN PINB
1332
#define PCINT9_BIT 1
1333
1334
#define AIN0_DDR DDRB
1335
#define AIN0_PORT PORTB
1336
#define AIN0_PIN PINB
1337
#define AIN0_BIT 2
1338
1339
#define INT2_DDR DDRB
1340
#define INT2_PORT PORTB
1341
#define INT2_PIN PINB
1342
#define INT2_BIT 2
1343
1344
#define PCINT10_DDR DDRB
1345
#define PCINT10_PORT PORTB
1346
#define PCINT10_PIN PINB
1347
#define PCINT10_BIT 2
1348
1349
#define AIN1_DDR DDRB
1350
#define AIN1_PORT PORTB
1351
#define AIN1_PIN PINB
1352
#define AIN1_BIT 3
1353
1354
#define OC0A_DDR DDRB
1355
#define OC0A_PORT PORTB
1356
#define OC0A_PIN PINB
1357
#define OC0A_BIT 3
1358
1359
#define PCINT11_DDR DDRB
1360
#define PCINT11_PORT PORTB
1361
#define PCINT11_PIN PINB
1362
#define PCINT11_BIT 3
1363
1364
#define SS_DDR DDRB
1365
#define SS_PORT PORTB
1366
#define SS_PIN PINB
1367
#define SS_BIT 4
1368
1369
#define OC0B_DDR DDRB
1370
#define OC0B_PORT PORTB
1371
#define OC0B_PIN PINB
1372
#define OC0B_BIT 4
1373
1374
#define PCINT12_DDR DDRB
1375
#define PCINT12_PORT PORTB
1376
#define PCINT12_PIN PINB
1377
#define PCINT12_BIT 4
1378
1380
#endif
/* _AVR_ATmega644PA_H_ */
Generated by
1.8.13