source: rtems/cpukit/score/cpu/avr/avr/iom128rfa1.h @ 04a62dce

4.104.11
Last change on this file since 04a62dce was 04a62dce, checked in by Joel Sherrill <joel.sherrill@…>, on Aug 6, 2009 at 2:52:07 PM

2009-08-05 Josh Switnicki <josh.switnicki@…>

  • Makefile.am: added AVR specific Header files to score/cpu/avr/avr. These are from avr-libc 1.6 and assumed to exist by AVR applications.
  • preinstall.am: Regenerated.
  • Property mode set to 100644
File size: 164.7 KB
Line 
1/* Copyright (c) 2009 Atmel Corporation
2   All rights reserved.
3
4   Redistribution and use in source and binary forms, with or without
5   modification, are permitted provided that the following conditions are met:
6
7   * Redistributions of source code must retain the above copyright
8     notice, this list of conditions and the following disclaimer.
9
10   * Redistributions in binary form must reproduce the above copyright
11     notice, this list of conditions and the following disclaimer in
12     the documentation and/or other materials provided with the
13     distribution.
14
15   * Neither the name of the copyright holders nor the names of
16     contributors may be used to endorse or promote products derived
17     from this software without specific prior written permission.
18
19  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
20  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
23  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
24  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
25  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
26  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
27  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
28  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
29  POSSIBILITY OF SUCH DAMAGE. */
30
31/* $Id$ */
32
33/* avr/iom128rfa1.h - definitions for ATmega128RFA1 */
34
35#ifndef _AVR_IOM128RFA1_H_
36#define _AVR_IOM128RFA1_H_ 1
37
38/* This file should only be included from <avr/io.h>, never directly. */
39
40#ifndef _AVR_IO_H_
41#  error "Include <avr/io.h> instead of this file."
42#endif
43
44#ifndef _AVR_IOXXX_H_
45#  define _AVR_IOXXX_H_ "iom128rfa1.h"
46#else
47#  error "Attempt to include more than one <avr/ioXXX.h> file."
48#endif
49
50#include <avr/sfr_defs.h>
51
52#ifndef __ASSEMBLER__
53#  define _MMIO_BYTE_STRUCT(mem_addr,type) (*(volatile type *)(mem_addr))
54#  define _SFR_IO8_STRUCT(io_addr,type) _MMIO_BYTE_STRUCT((io_addr) + 0x20, type)
55#endif /* __ASSEMBLER__ */
56
57/*
58 * USAGE:
59 *
60 * simple register assignment:
61 * TIFR1 = 0x17
62 * subregister assignment:
63 * TIFR1_struct.ocf1a = 1
64 * (subregister names are converted to small letters)
65 */
66
67
68/* Port A Input Pins Address */
69#define PINA                            _SFR_IO8(0x00)
70
71  /* PINA */
72
73#define PINA0                           0
74#define PINA1                           1
75#define PINA2                           2
76#define PINA3                           3
77#define PINA4                           4
78#define PINA5                           5
79#define PINA6                           6
80#define PINA7                           7
81
82/* Port A Data Direction Register */
83#define DDRA                            _SFR_IO8(0x01)
84
85  /* DDRA */
86
87#define DDA0                            0
88#define DDA1                            1
89#define DDA2                            2
90#define DDA3                            3
91#define DDA4                            4
92#define DDA5                            5
93#define DDA6                            6
94#define DDA7                            7
95
96/* Port A Data Register */
97#define PORTA                           _SFR_IO8(0x02)
98
99  /* PORTA */
100
101#define PORTA0                          0
102#define PA0                             0
103#define PORTA1                          1
104#define PA1                             1
105#define PORTA2                          2
106#define PA2                             2
107#define PORTA3                          3
108#define PA3                             3
109#define PORTA4                          4
110#define PA4                             4
111#define PORTA5                          5
112#define PA5                             5
113#define PORTA6                          6
114#define PA6                             6
115#define PORTA7                          7
116#define PA7                             7
117
118/* Port B Input Pins Address */
119#define PINB                            _SFR_IO8(0x03)
120
121  /* PINB */
122
123#define PINB0                           0
124#define PINB1                           1
125#define PINB2                           2
126#define PINB3                           3
127#define PINB4                           4
128#define PINB5                           5
129#define PINB6                           6
130#define PINB7                           7
131
132/* Port B Data Direction Register */
133#define DDRB                            _SFR_IO8(0x04)
134
135  /* DDRB */
136
137#define DDB0                            0
138#define DDB1                            1
139#define DDB2                            2
140#define DDB3                            3
141#define DDB4                            4
142#define DDB5                            5
143#define DDB6                            6
144#define DDB7                            7
145
146/* Port B Data Register */
147#define PORTB                           _SFR_IO8(0x05)
148
149  /* PORTB */
150
151#define PORTB0                          0
152#define PB0                             0
153#define PORTB1                          1
154#define PB1                             1
155#define PORTB2                          2
156#define PB2                             2
157#define PORTB3                          3
158#define PB3                             3
159#define PORTB4                          4
160#define PB4                             4
161#define PORTB5                          5
162#define PB5                             5
163#define PORTB6                          6
164#define PB6                             6
165#define PORTB7                          7
166#define PB7                             7
167
168/* Port C Input Pins Address */
169#define PINC                            _SFR_IO8(0x06)
170
171  /* PINC */
172
173#define PINC0                           0
174#define PINC1                           1
175#define PINC2                           2
176#define PINC3                           3
177#define PINC4                           4
178#define PINC5                           5
179#define PINC6                           6
180#define PINC7                           7
181
182/* Port C Data Direction Register */
183#define DDRC                            _SFR_IO8(0x07)
184
185  /* DDRC */
186
187#define DDC0                            0
188#define DDC1                            1
189#define DDC2                            2
190#define DDC3                            3
191#define DDC4                            4
192#define DDC5                            5
193#define DDC6                            6
194#define DDC7                            7
195
196/* Port C Data Register */
197#define PORTC                           _SFR_IO8(0x08)
198
199  /* PORTC */
200
201#define PORTC0                          0
202#define PC0                             0
203#define PORTC1                          1
204#define PC1                             1
205#define PORTC2                          2
206#define PC2                             2
207#define PORTC3                          3
208#define PC3                             3
209#define PORTC4                          4
210#define PC4                             4
211#define PORTC5                          5
212#define PC5                             5
213#define PORTC6                          6
214#define PC6                             6
215#define PORTC7                          7
216#define PC7                             7
217
218/* Port D Input Pins Address */
219#define PIND                            _SFR_IO8(0x09)
220
221  /* PIND */
222
223#define PIND0                           0
224#define PIND1                           1
225#define PIND2                           2
226#define PIND3                           3
227#define PIND4                           4
228#define PIND5                           5
229#define PIND6                           6
230#define PIND7                           7
231
232/* Port D Data Direction Register */
233#define DDRD                            _SFR_IO8(0x0A)
234
235  /* DDRD */
236
237#define DDD0                            0
238#define DDD1                            1
239#define DDD2                            2
240#define DDD3                            3
241#define DDD4                            4
242#define DDD5                            5
243#define DDD6                            6
244#define DDD7                            7
245
246/* Port D Data Register */
247#define PORTD                           _SFR_IO8(0x0B)
248
249  /* PORTD */
250
251#define PORTD0                          0
252#define PD0                             0
253#define PORTD1                          1
254#define PD1                             1
255#define PORTD2                          2
256#define PD2                             2
257#define PORTD3                          3
258#define PD3                             3
259#define PORTD4                          4
260#define PD4                             4
261#define PORTD5                          5
262#define PD5                             5
263#define PORTD6                          6
264#define PD6                             6
265#define PORTD7                          7
266#define PD7                             7
267
268/* Port E Input Pins Address */
269#define PINE                            _SFR_IO8(0x0C)
270
271  /* PINE */
272
273#define PINE0                           0
274#define PINE1                           1
275#define PINE2                           2
276#define PINE3                           3
277#define PINE4                           4
278#define PINE5                           5
279#define PINE6                           6
280#define PINE7                           7
281
282/* Port E Data Direction Register */
283#define DDRE                            _SFR_IO8(0x0D)
284
285  /* DDRE */
286
287#define DDE0                            0
288#define DDE1                            1
289#define DDE2                            2
290#define DDE3                            3
291#define DDE4                            4
292#define DDE5                            5
293#define DDE6                            6
294#define DDE7                            7
295
296/* Port E Data Register */
297#define PORTE                           _SFR_IO8(0x0E)
298
299  /* PORTE */
300
301#define PORTE0                          0
302#define PE0                             0
303#define PORTE1                          1
304#define PE1                             1
305#define PORTE2                          2
306#define PE2                             2
307#define PORTE3                          3
308#define PE3                             3
309#define PORTE4                          4
310#define PE4                             4
311#define PORTE5                          5
312#define PE5                             5
313#define PORTE6                          6
314#define PE6                             6
315#define PORTE7                          7
316#define PE7                             7
317
318/* Port F Input Pins Address */
319#define PINF                            _SFR_IO8(0x0F)
320
321  /* PINF */
322
323#define PINF0                           0
324#define PINF1                           1
325#define PINF2                           2
326#define PINF3                           3
327#define PINF4                           4
328#define PINF5                           5
329#define PINF6                           6
330#define PINF7                           7
331
332/* Port F Data Direction Register */
333#define DDRF                            _SFR_IO8(0x10)
334
335  /* DDRF */
336
337#define DDF0                            0
338#define DDF1                            1
339#define DDF2                            2
340#define DDF3                            3
341#define DDF4                            4
342#define DDF5                            5
343#define DDF6                            6
344#define DDF7                            7
345
346/* Port F Data Register */
347#define PORTF                           _SFR_IO8(0x11)
348
349  /* PORTF */
350
351#define PORTF0                          0
352#define PF0                             0
353#define PORTF1                          1
354#define PF1                             1
355#define PORTF2                          2
356#define PF2                             2
357#define PORTF3                          3
358#define PF3                             3
359#define PORTF4                          4
360#define PF4                             4
361#define PORTF5                          5
362#define PF5                             5
363#define PORTF6                          6
364#define PF6                             6
365#define PORTF7                          7
366#define PF7                             7
367
368/* Port G Input Pins Address */
369#define PING                            _SFR_IO8(0x12)
370
371  /* PING */
372
373#define PING0                           0
374#define PING1                           1
375#define PING2                           2
376#define PING3                           3
377#define PING4                           4
378#define PING5                           5
379
380/* Port G Data Direction Register */
381#define DDRG                            _SFR_IO8(0x13)
382
383  /* DDRG */
384
385#define DDG0                            0
386#define DDG1                            1
387#define DDG2                            2
388#define DDG3                            3
389#define DDG4                            4
390#define DDG5                            5
391
392/* Port G Data Register */
393#define PORTG                           _SFR_IO8(0x14)
394
395  /* PORTG */
396
397#define PORTG0                          0
398#define PG0                             0
399#define PORTG1                          1
400#define PG1                             1
401#define PORTG2                          2
402#define PG2                             2
403#define PORTG3                          3
404#define PG3                             3
405#define PORTG4                          4
406#define PG4                             4
407#define PORTG5                          5
408#define PG5                             5
409
410/* Timer/Counter0 Interrupt Flag Register */
411#define TIFR0                           _SFR_IO8(0x15)
412
413#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
414
415struct __reg_TIFR0 {
416        unsigned int _tov0 : 1; /* Timer/Counter0 Overflow Flag */
417        unsigned int _ocf0a : 1;        /* Timer/Counter0 Output Compare A Match Flag */
418        unsigned int _ocf0b : 1;        /* Timer/Counter0 Output Compare B Match Flag */
419        unsigned int : 5;
420};
421
422#define TIFR0_struct _SFR_IO8_STRUCT(0x15, struct __reg_TIFR0)
423
424#endif /* __ASSEMBLER__ */
425
426  /* TIFR0 */
427
428#define TOV0                            0
429#define OCF0A                           1
430#define OCF0B                           2
431
432/* Timer/Counter1 Interrupt Flag Register */
433#define TIFR1                           _SFR_IO8(0x16)
434
435#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
436
437struct __reg_TIFR1 {
438        unsigned int _tov1 : 1; /* Timer/Counter1 Overflow Flag */
439        unsigned int _ocf1a : 1;        /* Timer/Counter1 Output Compare A Match Flag */
440        unsigned int _ocf1b : 1;        /* Timer/Counter1 Output Compare B Match Flag */
441        unsigned int _ocf1c : 1;        /* Timer/Counter1 Output Compare C Match Flag */
442        unsigned int : 1;
443        unsigned int _icf1 : 1; /* Timer/Counter1 Input Capture Flag */
444        unsigned int : 2;
445};
446
447#define TIFR1_struct _SFR_IO8_STRUCT(0x16, struct __reg_TIFR1)
448
449#endif /* __ASSEMBLER__ */
450
451  /* TIFR1 */
452
453#define TOV1                            0
454#define OCF1A                           1
455#define OCF1B                           2
456#define OCF1C                           3
457#define ICF1                            5
458
459/* Timer/Counter Interrupt Flag Register */
460#define TIFR2                           _SFR_IO8(0x17)
461
462#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
463
464struct __reg_TIFR2 {
465        unsigned int _tov2 : 1; /* Timer/Counter2 Overflow Flag */
466        unsigned int _ocf2a : 1;        /* Output Compare Flag 2 A */
467        unsigned int _ocf2b : 1;        /* Output Compare Flag 2 B */
468        unsigned int : 5;
469};
470
471#define TIFR2_struct _SFR_IO8_STRUCT(0x17, struct __reg_TIFR2)
472
473#endif /* __ASSEMBLER__ */
474
475  /* TIFR2 */
476
477#define TOV2                            0
478#define OCF2A                           1
479#define OCF2B                           2
480
481/* Timer/Counter3 Interrupt Flag Register */
482#define TIFR3                           _SFR_IO8(0x18)
483
484#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
485
486struct __reg_TIFR3 {
487        unsigned int _tov3 : 1; /* Timer/Counter3 Overflow Flag */
488        unsigned int _ocf3a : 1;        /* Timer/Counter3 Output Compare A Match Flag */
489        unsigned int _ocf3b : 1;        /* Timer/Counter3 Output Compare B Match Flag */
490        unsigned int _ocf3c : 1;        /* Timer/Counter3 Output Compare C Match Flag */
491        unsigned int : 1;
492        unsigned int _icf3 : 1; /* Timer/Counter3 Input Capture Flag */
493        unsigned int : 2;
494};
495
496#define TIFR3_struct _SFR_IO8_STRUCT(0x18, struct __reg_TIFR3)
497
498#endif /* __ASSEMBLER__ */
499
500  /* TIFR3 */
501
502#define TOV3                            0
503#define OCF3A                           1
504#define OCF3B                           2
505#define OCF3C                           3
506#define ICF3                            5
507
508/* Timer/Counter4 Interrupt Flag Register */
509#define TIFR4                           _SFR_IO8(0x19)
510
511#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
512
513struct __reg_TIFR4 {
514        unsigned int _tov4 : 1; /* Timer/Counter4 Overflow Flag */
515        unsigned int _ocf4a : 1;        /* Timer/Counter4 Output Compare A Match Flag */
516        unsigned int _ocf4b : 1;        /* Timer/Counter4 Output Compare B Match Flag */
517        unsigned int _ocf4c : 1;        /* Timer/Counter4 Output Compare C Match Flag */
518        unsigned int : 1;
519        unsigned int _icf4 : 1; /* Timer/Counter4 Input Capture Flag */
520        unsigned int : 2;
521};
522
523#define TIFR4_struct _SFR_IO8_STRUCT(0x19, struct __reg_TIFR4)
524
525#endif /* __ASSEMBLER__ */
526
527  /* TIFR4 */
528
529#define TOV4                            0
530#define OCF4A                           1
531#define OCF4B                           2
532#define OCF4C                           3
533#define ICF4                            5
534
535/* Timer/Counter5 Interrupt Flag Register */
536#define TIFR5                           _SFR_IO8(0x1A)
537
538#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
539
540struct __reg_TIFR5 {
541        unsigned int _tov5 : 1; /* Timer/Counter5 Overflow Flag */
542        unsigned int _ocf5a : 1;        /* Timer/Counter5 Output Compare A Match Flag */
543        unsigned int _ocf5b : 1;        /* Timer/Counter5 Output Compare B Match Flag */
544        unsigned int _ocf5c : 1;        /* Timer/Counter5 Output Compare C Match Flag */
545        unsigned int : 1;
546        unsigned int _icf5 : 1; /* Timer/Counter5 Input Capture Flag */
547        unsigned int : 2;
548};
549
550#define TIFR5_struct _SFR_IO8_STRUCT(0x1a, struct __reg_TIFR5)
551
552#endif /* __ASSEMBLER__ */
553
554  /* TIFR5 */
555
556#define TOV5                            0
557#define OCF5A                           1
558#define OCF5B                           2
559#define OCF5C                           3
560#define ICF5                            5
561
562/* Pin Change Interrupt Flag Register */
563#define PCIFR                           _SFR_IO8(0x1B)
564
565#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
566
567struct __reg_PCIFR {
568        unsigned int _pcif : 3; /* Pin Change Interrupt Flag 2 */
569        unsigned int : 5;
570};
571
572#define PCIFR_struct _SFR_IO8_STRUCT(0x1b, struct __reg_PCIFR)
573
574#endif /* __ASSEMBLER__ */
575
576  /* PCIFR */
577
578#define PCIF0                           0
579#define PCIF1                           1
580#define PCIF2                           2
581
582/* External Interrupt Flag Register */
583#define EIFR                            _SFR_IO8(0x1C)
584
585#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
586
587struct __reg_EIFR {
588        unsigned int _intf : 8; /* External Interrupt Flag */
589};
590
591#define EIFR_struct _SFR_IO8_STRUCT(0x1c, struct __reg_EIFR)
592
593#endif /* __ASSEMBLER__ */
594
595  /* EIFR */
596
597#define INTF0                           0
598#define INTF1                           1
599#define INTF2                           2
600#define INTF3                           3
601#define INTF4                           4
602#define INTF5                           5
603#define INTF6                           6
604#define INTF7                           7
605
606/* External Interrupt Mask Register */
607#define EIMSK                           _SFR_IO8(0x1D)
608
609#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
610
611struct __reg_EIMSK {
612        unsigned int _int : 8;  /* External Interrupt Request Enable */
613};
614
615#define EIMSK_struct _SFR_IO8_STRUCT(0x1d, struct __reg_EIMSK)
616
617#endif /* __ASSEMBLER__ */
618
619  /* EIMSK */
620
621#define INT0                            0
622#define INT1                            1
623#define INT2                            2
624#define INT3                            3
625#define INT4                            4
626#define INT5                            5
627#define INT6                            6
628#define INT7                            7
629
630/* General Purpose IO Register 0 */
631#define GPIOR0                          _SFR_IO8(0x1E)
632
633#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
634
635struct __reg_GPIOR0 {
636        unsigned int _gpior0 : 8;       /* General Purpose I/O Register 0 Value */
637};
638
639#define GPIOR0_struct _SFR_IO8_STRUCT(0x1e, struct __reg_GPIOR0)
640
641#endif /* __ASSEMBLER__ */
642
643  /* GPIOR0 */
644
645#define GPIOR00                         0
646#define GPIOR01                         1
647#define GPIOR02                         2
648#define GPIOR03                         3
649#define GPIOR04                         4
650#define GPIOR05                         5
651#define GPIOR06                         6
652#define GPIOR07                         7
653
654/* 6-char sequence denoting where to find the EEPROM registers in memory space.
655   Adresses denoted in hex syntax with uppercase letters. Used by the EEPROM
656   subroutines.
657   First two letters:  EECR address.
658   Second two letters: EEDR address.
659   Last two letters:   EEAR address.  */
660
661#define __EEPROM_REG_LOCATIONS__ 1F2021
662
663/* EEPROM Control Register */
664#define EECR                            _SFR_IO8(0x1F)
665
666#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
667
668struct __reg_EECR {
669        unsigned int _eere : 1; /* EEPROM Read Enable */
670        unsigned int _eepe : 1; /* EEPROM Programming Enable */
671        unsigned int _eempe : 1;        /* EEPROM Master Write Enable */
672        unsigned int _eerie : 1;        /* EEPROM Ready Interrupt Enable */
673        unsigned int _eepm : 2; /* EEPROM Programming Mode */
674        unsigned int : 2;
675};
676
677#define EECR_struct _SFR_IO8_STRUCT(0x1f, struct __reg_EECR)
678
679#endif /* __ASSEMBLER__ */
680
681  /* EECR */
682
683#define EERE                            0
684#define EEPE                            1
685#define EEMPE                           2
686#define EERIE                           3
687#define EEPM0                           4
688#define EEPM1                           5
689
690/* EEPROM Data Register */
691#define EEDR                            _SFR_IO8(0x20)
692
693  /* EEDR */
694
695#define EEDR0                           0
696#define EEDR1                           1
697#define EEDR2                           2
698#define EEDR3                           3
699#define EEDR4                           4
700#define EEDR5                           5
701#define EEDR6                           6
702#define EEDR7                           7
703
704/* EEPROM Address Register  Bytes */
705#define EEAR                            _SFR_IO16(0x21)
706#define EEARL                           _SFR_IO8(0x21)
707#define EEARH                           _SFR_IO8(0x22)
708
709/* General Timer/Counter Control Register */
710#define GTCCR                           _SFR_IO8(0x23)
711
712#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
713
714struct __reg_GTCCR {
715        unsigned int _psrsync : 1;      /* Prescaler Reset for Synchronous Timer/Counters */
716        unsigned int _psrasy : 1;       /* Prescaler Reset Timer/Counter2 */
717        unsigned int : 5;
718        unsigned int _tsm : 1;  /* Timer/Counter Synchronization Mode */
719};
720
721#define GTCCR_struct _SFR_IO8_STRUCT(0x23, struct __reg_GTCCR)
722
723#endif /* __ASSEMBLER__ */
724
725  /* GTCCR */
726
727#define PSRSYNC                         0
728#define PSR10                           0
729#define PSRASY                          1
730#define PSR2                            1
731#define TSM                             7
732
733/* Timer/Counter0 Control Register A */
734#define TCCR0A                          _SFR_IO8(0x24)
735
736#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
737
738struct __reg_TCCR0A {
739        unsigned int _wgm0 : 2; /* Waveform Generation Mode */
740        unsigned int : 2;
741        unsigned int _com0b : 2;        /* Compare Match Output B Mode */
742        unsigned int _com0a : 2;        /* Compare Match Output A Mode */
743};
744
745#define TCCR0A_struct _SFR_IO8_STRUCT(0x24, struct __reg_TCCR0A)
746
747#endif /* __ASSEMBLER__ */
748
749  /* TCCR0A */
750
751#define WGM00                           0
752#define WGM01                           1
753#define COM0B0                          4
754#define COM0B1                          5
755#define COM0A0                          6
756#define COM0A1                          7
757
758/* Timer/Counter0 Control Register B */
759#define TCCR0B                          _SFR_IO8(0x25)
760
761#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
762
763struct __reg_TCCR0B {
764        unsigned int _cs0 : 3;  /* Clock Select */
765        unsigned int _wgm02 : 1;        /*  */
766        unsigned int : 2;
767        unsigned int _foc0b : 1;        /* Force Output Compare B */
768        unsigned int _foc0a : 1;        /* Force Output Compare A */
769};
770
771#define TCCR0B_struct _SFR_IO8_STRUCT(0x25, struct __reg_TCCR0B)
772
773#endif /* __ASSEMBLER__ */
774
775  /* TCCR0B */
776
777#define CS00                            0
778#define CS01                            1
779#define CS02                            2
780#define WGM02                           3
781#define FOC0B                           6
782#define FOC0A                           7
783
784/* Timer/Counter0 Register */
785#define TCNT0                           _SFR_IO8(0x26)
786
787  /* TCNT0 */
788
789#define TCNT0_0                         0
790#define TCNT0_1                         1
791#define TCNT0_2                         2
792#define TCNT0_3                         3
793#define TCNT0_4                         4
794#define TCNT0_5                         5
795#define TCNT0_6                         6
796#define TCNT0_7                         7
797
798/* Timer/Counter0 Output Compare Register */
799#define OCR0A                           _SFR_IO8(0x27)
800
801  /* OCR0A */
802
803#define OCR0A_0                         0
804#define OCR0A_1                         1
805#define OCR0A_2                         2
806#define OCR0A_3                         3
807#define OCR0A_4                         4
808#define OCR0A_5                         5
809#define OCR0A_6                         6
810#define OCR0A_7                         7
811
812/* Timer/Counter0 Output Compare Register B */
813#define OCR0B                           _SFR_IO8(0x28)
814
815  /* OCR0B */
816
817#define OCR0B_0                         0
818#define OCR0B_1                         1
819#define OCR0B_2                         2
820#define OCR0B_3                         3
821#define OCR0B_4                         4
822#define OCR0B_5                         5
823#define OCR0B_6                         6
824#define OCR0B_7                         7
825
826/* General Purpose IO Register 1 */
827#define GPIOR1                          _SFR_IO8(0x2A)
828
829#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
830
831struct __reg_GPIOR1 {
832        unsigned int _gpior1 : 8;       /* General Purpose I/O Register 1 Value */
833};
834
835#define GPIOR1_struct _SFR_IO8_STRUCT(0x2a, struct __reg_GPIOR1)
836
837#endif /* __ASSEMBLER__ */
838
839  /* GPIOR1 */
840
841#define GPIOR10                         0
842#define GPIOR11                         1
843#define GPIOR12                         2
844#define GPIOR13                         3
845#define GPIOR14                         4
846#define GPIOR15                         5
847#define GPIOR16                         6
848#define GPIOR17                         7
849
850/* General Purpose I/O Register 2 */
851#define GPIOR2                          _SFR_IO8(0x2B)
852
853#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
854
855struct __reg_GPIOR2 {
856        unsigned int _gpior2 : 8;       /* General Purpose I/O Register 2 Value */
857};
858
859#define GPIOR2_struct _SFR_IO8_STRUCT(0x2b, struct __reg_GPIOR2)
860
861#endif /* __ASSEMBLER__ */
862
863  /* GPIOR2 */
864
865#define GPIOR20                         0
866#define GPIOR21                         1
867#define GPIOR22                         2
868#define GPIOR23                         3
869#define GPIOR24                         4
870#define GPIOR25                         5
871#define GPIOR26                         6
872#define GPIOR27                         7
873
874/* SPI Control Register */
875#define SPCR                            _SFR_IO8(0x2C)
876
877#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
878
879struct __reg_SPCR {
880        unsigned int _spr : 2;  /* SPI Clock Rate Select 1 and 0 */
881        unsigned int _cpha : 1; /* Clock Phase */
882        unsigned int _cpol : 1; /* Clock polarity */
883        unsigned int _mstr : 1; /* Master/Slave Select */
884        unsigned int _dord : 1; /* Data Order */
885        unsigned int _spe : 1;  /* SPI Enable */
886        unsigned int _spie : 1; /* SPI Interrupt Enable */
887};
888
889#define SPCR_struct _SFR_IO8_STRUCT(0x2c, struct __reg_SPCR)
890
891#endif /* __ASSEMBLER__ */
892
893  /* SPCR */
894
895#define SPR0                            0
896#define SPR1                            1
897#define CPHA                            2
898#define CPOL                            3
899#define MSTR                            4
900#define DORD                            5
901#define SPE                             6
902#define SPIE                            7
903
904/* SPI Status Register */
905#define SPSR                            _SFR_IO8(0x2D)
906
907#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
908
909struct __reg_SPSR {
910        unsigned int _spi2x : 1;        /* Double SPI Speed Bit */
911        unsigned int : 5;
912        unsigned int _wcol : 1; /* Write Collision Flag */
913        unsigned int _spif : 1; /* SPI Interrupt Flag */
914};
915
916#define SPSR_struct _SFR_IO8_STRUCT(0x2d, struct __reg_SPSR)
917
918#endif /* __ASSEMBLER__ */
919
920  /* SPSR */
921
922#define SPI2X                           0
923#define WCOL                            6
924#define SPIF                            7
925
926/* SPI Data Register */
927#define SPDR                            _SFR_IO8(0x2E)
928
929  /* SPDR */
930
931#define SPDR0                           0
932#define SPDR1                           1
933#define SPDR2                           2
934#define SPDR3                           3
935#define SPDR4                           4
936#define SPDR5                           5
937#define SPDR6                           6
938#define SPDR7                           7
939
940/* Analog Comparator Control And Status Register */
941#define ACSR                            _SFR_IO8(0x30)
942
943#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
944
945struct __reg_ACSR {
946        unsigned int _acis : 2; /* Analog Comparator Interrupt Mode Select */
947        unsigned int _acic : 1; /* Analog Comparator Input Capture Enable */
948        unsigned int _acie : 1; /* Analog Comparator Interrupt Enable */
949        unsigned int _aci : 1;  /* Analog Comparator Interrupt Flag */
950        unsigned int _aco : 1;  /* Analog Compare Output */
951        unsigned int _acbg : 1; /* Analog Comparator Bandgap Select */
952        unsigned int _acd : 1;  /* Analog Comparator Disable */
953};
954
955#define ACSR_struct _SFR_IO8_STRUCT(0x30, struct __reg_ACSR)
956
957#endif /* __ASSEMBLER__ */
958
959  /* ACSR */
960
961#define ACIS0                           0
962#define ACIS1                           1
963#define ACIC                            2
964#define ACIE                            3
965#define ACI                             4
966#define ACO                             5
967#define ACBG                            6
968#define ACD                             7
969
970/* On-Chip Debug Register */
971#define OCDR                            _SFR_IO8(0x31)
972
973  /* OCDR */
974
975#define OCDR0                           0
976#define OCDR1                           1
977#define OCDR2                           2
978#define OCDR3                           3
979#define OCDR4                           4
980#define OCDR5                           5
981#define OCDR6                           6
982#define OCDR7                           7
983#define IDRD                            7
984
985/* Sleep Mode Control Register */
986#define SMCR                            _SFR_IO8(0x33)
987
988#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
989
990struct __reg_SMCR {
991        unsigned int _se : 1;   /* Sleep Enable */
992        unsigned int _sm : 3;   /* Sleep Mode Select bits */
993        unsigned int : 4;
994};
995
996#define SMCR_struct _SFR_IO8_STRUCT(0x33, struct __reg_SMCR)
997
998#endif /* __ASSEMBLER__ */
999
1000  /* SMCR */
1001
1002#define SE                              0
1003#define SM0                             1
1004#define SM1                             2
1005#define SM2                             3
1006
1007/* MCU Status Register */
1008#define MCUSR                           _SFR_IO8(0x34)
1009
1010#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
1011
1012struct __reg_MCUSR {
1013        unsigned int _porf : 1; /* Power-on Reset Flag */
1014        unsigned int _extrf : 1;        /* External Reset Flag */
1015        unsigned int _borf : 1; /* Brown-out Reset Flag */
1016        unsigned int _wdrf : 1; /* Watchdog Reset Flag */
1017        unsigned int _jtrf : 1; /* JTAG Reset Flag */
1018        unsigned int : 3;
1019};
1020
1021#define MCUSR_struct _SFR_IO8_STRUCT(0x34, struct __reg_MCUSR)
1022
1023#endif /* __ASSEMBLER__ */
1024
1025  /* MCUSR */
1026
1027#define PORF                            0
1028#define EXTRF                           1
1029#define BORF                            2
1030#define WDRF                            3
1031#define JTRF                            4
1032
1033/* MCU Control Register */
1034#define MCUCR                           _SFR_IO8(0x35)
1035
1036#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
1037
1038struct __reg_MCUCR {
1039        unsigned int _ivce : 1; /* Interrupt Vector Change Enable */
1040        unsigned int _ivsel : 1;        /* Interrupt Vector Select */
1041        unsigned int : 2;
1042        unsigned int _pud : 1;  /* Pull-up Disable */
1043        unsigned int : 2;
1044        unsigned int _jtd : 1;  /* JTAG Interface Disable */
1045};
1046
1047#define MCUCR_struct _SFR_IO8_STRUCT(0x35, struct __reg_MCUCR)
1048
1049#endif /* __ASSEMBLER__ */
1050
1051  /* MCUCR */
1052
1053#define IVCE                            0
1054#define IVSEL                           1
1055#define PUD                             4
1056#define JTD                             7
1057
1058/* Store Program Memory Control Register */
1059#define SPMCSR                          _SFR_IO8(0x37)
1060
1061#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
1062
1063struct __reg_SPMCSR {
1064        unsigned int _spmen : 1;        /* Store Program Memory Enable */
1065        unsigned int _pgers : 1;        /* Page Erase */
1066        unsigned int _pgwrt : 1;        /* Page Write */
1067        unsigned int _blbset : 1;       /* Boot Lock Bit Set */
1068        unsigned int _rwwsre : 1;       /* Read While Write Section Read Enable */
1069        unsigned int _sigrd : 1;        /* Signature Row Read */
1070        unsigned int _rwwsb : 1;        /* Read While Write Section Busy */
1071        unsigned int _spmie : 1;        /* SPM Interrupt Enable */
1072};
1073
1074#define SPMCSR_struct _SFR_IO8_STRUCT(0x37, struct __reg_SPMCSR)
1075
1076#endif /* __ASSEMBLER__ */
1077
1078  /* SPMCSR */
1079
1080#define SPMEN                           0
1081#define PGERS                           1
1082#define PGWRT                           2
1083#define BLBSET                          3
1084#define RWWSRE                          4
1085#define SIGRD                           5
1086#define RWWSB                           6
1087#define SPMIE                           7
1088
1089/* Extended Z-pointer Register for ELPM/SPM */
1090#define RAMPZ                           _SFR_IO8(0x3B)
1091
1092  /* RAMPZ */
1093
1094#define RAMPZ0                          0
1095#define RAMPZ1                          1
1096
1097/* Stack Pointer */
1098#define SP                              _SFR_IO16(0x3D)
1099#define SPL                             _SFR_IO8(0x3D)
1100#define SPH                             _SFR_IO8(0x3E)
1101
1102/* Status Register */
1103#define SREG                            _SFR_IO8(0x3F)
1104
1105#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
1106
1107struct __reg_SREG {
1108        unsigned int _c : 1;    /* Carry Flag */
1109        unsigned int _z : 1;    /* Zero Flag */
1110        unsigned int _n : 1;    /* Negative Flag */
1111        unsigned int _v : 1;    /* Two's Complement Overflow Flag */
1112        unsigned int _s : 1;    /* Sign Bit */
1113        unsigned int _h : 1;    /* Half Carry Flag */
1114        unsigned int _t : 1;    /* Bit Copy Storage */
1115        unsigned int _i : 1;    /* Global Interrupt Enable */
1116};
1117
1118#define SREG_struct _SFR_IO8_STRUCT(0x3f, struct __reg_SREG)
1119
1120#endif /* __ASSEMBLER__ */
1121
1122  /* SREG */
1123
1124#define SREG_C                          0
1125#define SREG_Z                          1
1126#define SREG_N                          2
1127#define SREG_V                          3
1128#define SREG_S                          4
1129#define SREG_H                          5
1130#define SREG_T                          6
1131#define SREG_I                          7
1132
1133/* Watchdog Timer Control Register */
1134#define WDTCSR                          _SFR_MEM8(0x60)
1135
1136#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
1137
1138struct __reg_WDTCSR {
1139        unsigned int _wdp : 3;  /* Watchdog Timer Prescaler bits */
1140        unsigned int _wde : 1;  /* Watch Dog Enable */
1141        unsigned int _wdce : 1; /* Watchdog Change Enable */
1142        unsigned int : 1;
1143        unsigned int _wdie : 1; /* Watchdog Timeout Interrupt Enable */
1144        unsigned int _wdif : 1; /* Watchdog Timeout Interrupt Flag */
1145};
1146
1147#define WDTCSR_struct _SFR_IO8_STRUCT(0x60, struct __reg_WDTCSR)
1148
1149#endif /* __ASSEMBLER__ */
1150
1151  /* WDTCSR */
1152
1153#define WDP0                            0
1154#define WDP1                            1
1155#define WDP2                            2
1156#define WDE                             3
1157#define WDCE                            4
1158#define WDP3                            5
1159#define WDIE                            6
1160#define WDIF                            7
1161
1162/* Clock Prescale Register */
1163#define CLKPR                           _SFR_MEM8(0x61)
1164
1165#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
1166
1167struct __reg_CLKPR {
1168        unsigned int _clkps : 4;        /* Clock Prescaler Select Bits */
1169        unsigned int : 3;
1170        unsigned int _clkpce : 1;       /* Clock Prescaler Change Enable */
1171};
1172
1173#define CLKPR_struct _SFR_IO8_STRUCT(0x61, struct __reg_CLKPR)
1174
1175#endif /* __ASSEMBLER__ */
1176
1177  /* CLKPR */
1178
1179#define CLKPS0                          0
1180#define CLKPS1                          1
1181#define CLKPS2                          2
1182#define CLKPS3                          3
1183#define CLKPCE                          7
1184
1185/* Power Reduction Register 2 */
1186#define PRR2                            _SFR_MEM8(0x63)
1187
1188#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
1189
1190struct __reg_PRR2 {
1191        unsigned int _prram : 4;        /* Power Reduction SRAM 3 */
1192        unsigned int : 4;
1193};
1194
1195#define PRR2_struct _SFR_IO8_STRUCT(0x63, struct __reg_PRR2)
1196
1197#endif /* __ASSEMBLER__ */
1198
1199  /* PRR2 */
1200
1201#define PRRAM0                          0
1202#define PRRAM1                          1
1203#define PRRAM2                          2
1204#define PRRAM3                          3
1205
1206/* Power Reduction Register0 */
1207#define PRR0                            _SFR_MEM8(0x64)
1208
1209#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
1210
1211struct __reg_PRR0 {
1212        unsigned int _pradc : 1;        /* Power Reduction ADC */
1213        unsigned int _prusart0 : 1;     /* Power Reduction USART */
1214        unsigned int _prspi : 1;        /* Power Reduction Serial Peripheral Interface */
1215        unsigned int _prtim1 : 1;       /* Power Reduction Timer/Counter1 */
1216        unsigned int _prpga : 1;        /* Power Reduction PGA */
1217        unsigned int _prtim0 : 1;       /* Power Reduction Timer/Counter0 */
1218        unsigned int _prtim2 : 1;       /* Power Reduction Timer/Counter2 */
1219        unsigned int _prtwi : 1;        /* Power Reduction TWI */
1220};
1221
1222#define PRR0_struct _SFR_IO8_STRUCT(0x64, struct __reg_PRR0)
1223
1224#endif /* __ASSEMBLER__ */
1225
1226  /* PRR0 */
1227
1228#define PRADC                           0
1229#define PRUSART0                        1
1230#define PRSPI                           2
1231#define PRTIM1                          3
1232#define PRPGA                           4
1233#define PRTIM0                          5
1234#define PRTIM2                          6
1235#define PRTWI                           7
1236
1237/* Power Reduction Register 1 */
1238#define PRR1                            _SFR_MEM8(0x65)
1239
1240#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
1241
1242struct __reg_PRR1 {
1243        unsigned int _prusart : 3;      /* Reserved */
1244        unsigned int _prtim3 : 1;       /* Power Reduction Timer/Counter3 */
1245        unsigned int _prtim4 : 1;       /* Power Reduction Timer/Counter4 */
1246        unsigned int _prtim5 : 1;       /* Power Reduction Timer/Counter5 */
1247        unsigned int _prtrx24 : 1;      /* Power Reduction Transceiver */
1248        unsigned int : 1;
1249};
1250
1251#define PRR1_struct _SFR_IO8_STRUCT(0x65, struct __reg_PRR1)
1252
1253#endif /* __ASSEMBLER__ */
1254
1255  /* PRR1 */
1256
1257#define PRUSART1                        0
1258#define PRUSART2                        1
1259#define PRUSART3                        2
1260#define PRTIM3                          3
1261#define PRTIM4                          4
1262#define PRTIM5                          5
1263#define PRTRX24                         6
1264
1265/* Oscillator Calibration Value */
1266#define OSCCAL                          _SFR_MEM8(0x66)
1267
1268  /* OSCCAL */
1269
1270#define CAL0                            0
1271#define CAL1                            1
1272#define CAL2                            2
1273#define CAL3                            3
1274#define CAL4                            4
1275#define CAL5                            5
1276#define CAL6                            6
1277#define CAL7                            7
1278
1279/* Reference Voltage Calibration Register */
1280#define BGCR                            _SFR_MEM8(0x67)
1281
1282  /* BGCR */
1283
1284#define BGCAL0                          0
1285#define BGCAL1                          1
1286#define BGCAL2                          2
1287#define BGCAL_FINE0                     3
1288#define BGCAL_FINE1                     4
1289#define BGCAL_FINE2                     5
1290#define BGCAL_FINE3                     6
1291
1292/* Pin Change Interrupt Control Register */
1293#define PCICR                           _SFR_MEM8(0x68)
1294
1295#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
1296
1297struct __reg_PCICR {
1298        unsigned int _pcie : 3; /* Pin Change Interrupt Enable 2 */
1299        unsigned int : 5;
1300};
1301
1302#define PCICR_struct _SFR_IO8_STRUCT(0x68, struct __reg_PCICR)
1303
1304#endif /* __ASSEMBLER__ */
1305
1306  /* PCICR */
1307
1308#define PCIE0                           0
1309#define PCIE1                           1
1310#define PCIE2                           2
1311
1312/* External Interrupt Control Register A */
1313#define EICRA                           _SFR_MEM8(0x69)
1314
1315#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
1316
1317struct __reg_EICRA {
1318        unsigned int _isc0 : 2; /* External Interrupt 0 Sense Control Bit */
1319        unsigned int _isc1 : 2; /* External Interrupt 1 Sense Control Bit */
1320        unsigned int _isc2 : 2; /* External Interrupt 2 Sense Control Bit */
1321        unsigned int _isc3 : 2; /* External Interrupt 3 Sense Control Bit */
1322};
1323
1324#define EICRA_struct _SFR_IO8_STRUCT(0x69, struct __reg_EICRA)
1325
1326#endif /* __ASSEMBLER__ */
1327
1328  /* EICRA */
1329
1330#define ISC00                           0
1331#define ISC01                           1
1332#define ISC10                           2
1333#define ISC11                           3
1334#define ISC20                           4
1335#define ISC21                           5
1336#define ISC30                           6
1337#define ISC31                           7
1338
1339/* External Interrupt Control Register B */
1340#define EICRB                           _SFR_MEM8(0x6A)
1341
1342#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
1343
1344struct __reg_EICRB {
1345        unsigned int _isc4 : 2; /* External Interrupt 4 Sense Control Bit */
1346        unsigned int _isc5 : 2; /* External Interrupt 5 Sense Control Bit */
1347        unsigned int _isc6 : 2; /* External Interrupt 6 Sense Control Bit */
1348        unsigned int _isc7 : 2; /* External Interrupt 7 Sense Control Bit */
1349};
1350
1351#define EICRB_struct _SFR_IO8_STRUCT(0x6a, struct __reg_EICRB)
1352
1353#endif /* __ASSEMBLER__ */
1354
1355  /* EICRB */
1356
1357#define ISC40                           0
1358#define ISC41                           1
1359#define ISC50                           2
1360#define ISC51                           3
1361#define ISC60                           4
1362#define ISC61                           5
1363#define ISC70                           6
1364#define ISC71                           7
1365
1366/* Pin Change Mask Register 0 */
1367#define PCMSK0                          _SFR_MEM8(0x6B)
1368
1369  /* PCMSK0 */
1370
1371#define PCINT0                          0
1372#define PCINT1                          1
1373#define PCINT2                          2
1374#define PCINT3                          3
1375#define PCINT4                          4
1376#define PCINT5                          5
1377#define PCINT6                          6
1378#define PCINT7                          7
1379
1380/* Pin Change Mask Register 1 */
1381#define PCMSK1                          _SFR_MEM8(0x6C)
1382
1383  /* PCMSK1 */
1384
1385#define PCINT8                          0
1386#define PCINT9                          1
1387#define PCINT10                         2
1388#define PCINT11                         3
1389#define PCINT12                         4
1390#define PCINT13                         5
1391#define PCINT14                         6
1392#define PCINT15                         7
1393
1394/* Pin Change Mask Register 2 */
1395#define PCMSK2                          _SFR_MEM8(0x6D)
1396
1397  /* PCMSK2 */
1398
1399#define PCINT16                         0
1400#define PCINT17                         1
1401#define PCINT18                         2
1402#define PCINT19                         3
1403#define PCINT20                         4
1404#define PCINT21                         5
1405#define PCINT22                         6
1406#define PCINT23                         7
1407
1408/* Timer/Counter0 Interrupt Mask Register */
1409#define TIMSK0                          _SFR_MEM8(0x6E)
1410
1411#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
1412
1413struct __reg_TIMSK0 {
1414        unsigned int _toie0 : 1;        /* Timer/Counter0 Overflow Interrupt Enable */
1415        unsigned int _ocie0a : 1;       /* Timer/Counter0 Output Compare Match A Interrupt Enable */
1416        unsigned int _ocie0b : 1;       /* Timer/Counter0 Output Compare Match B Interrupt Enable */
1417        unsigned int : 5;
1418};
1419
1420#define TIMSK0_struct _SFR_IO8_STRUCT(0x6e, struct __reg_TIMSK0)
1421
1422#endif /* __ASSEMBLER__ */
1423
1424  /* TIMSK0 */
1425
1426#define TOIE0                           0
1427#define OCIE0A                          1
1428#define OCIE0B                          2
1429
1430/* Timer/Counter1 Interrupt Mask Register */
1431#define TIMSK1                          _SFR_MEM8(0x6F)
1432
1433#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
1434
1435struct __reg_TIMSK1 {
1436        unsigned int _toie1 : 1;        /* Timer/Counter1 Overflow Interrupt Enable */
1437        unsigned int _ocie1a : 1;       /* Timer/Counter1 Output Compare A Match Interrupt Enable */
1438        unsigned int _ocie1b : 1;       /* Timer/Counter1 Output Compare B Match Interrupt Enable */
1439        unsigned int _ocie1c : 1;       /* Timer/Counter1 Output Compare C Match Interrupt Enable */
1440        unsigned int : 1;
1441        unsigned int _icie1 : 1;        /* Timer/Counter1 Input Capture Interrupt Enable */
1442        unsigned int : 2;
1443};
1444
1445#define TIMSK1_struct _SFR_IO8_STRUCT(0x6f, struct __reg_TIMSK1)
1446
1447#endif /* __ASSEMBLER__ */
1448
1449  /* TIMSK1 */
1450
1451#define TOIE1                           0
1452#define OCIE1A                          1
1453#define OCIE1B                          2
1454#define OCIE1C                          3
1455#define ICIE1                           5
1456
1457/* Timer/Counter Interrupt Mask register */
1458#define TIMSK2                          _SFR_MEM8(0x70)
1459
1460#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
1461
1462struct __reg_TIMSK2 {
1463        unsigned int _toie2 : 1;        /* Timer/Counter2 Overflow Interrupt Enable */
1464        unsigned int _ocie2a : 1;       /* Timer/Counter2 Output Compare Match A Interrupt Enable */
1465        unsigned int _ocie2b : 1;       /* Timer/Counter2 Output Compare Match B Interrupt Enable */
1466        unsigned int : 5;
1467};
1468
1469#define TIMSK2_struct _SFR_IO8_STRUCT(0x70, struct __reg_TIMSK2)
1470
1471#endif /* __ASSEMBLER__ */
1472
1473  /* TIMSK2 */
1474
1475#define TOIE2                           0
1476#define TOIE2A                          0
1477#define OCIE2A                          1
1478#define OCIE2B                          2
1479
1480/* Timer/Counter3 Interrupt Mask Register */
1481#define TIMSK3                          _SFR_MEM8(0x71)
1482
1483#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
1484
1485struct __reg_TIMSK3 {
1486        unsigned int _toie3 : 1;        /* Timer/Counter3 Overflow Interrupt Enable */
1487        unsigned int _ocie3a : 1;       /* Timer/Counter3 Output Compare A Match Interrupt Enable */
1488        unsigned int _ocie3b : 1;       /* Timer/Counter3 Output Compare B Match Interrupt Enable */
1489        unsigned int _ocie3c : 1;       /* Timer/Counter3 Output Compare C Match Interrupt Enable */
1490        unsigned int : 1;
1491        unsigned int _icie3 : 1;        /* Timer/Counter3 Input Capture Interrupt Enable */
1492        unsigned int : 2;
1493};
1494
1495#define TIMSK3_struct _SFR_IO8_STRUCT(0x71, struct __reg_TIMSK3)
1496
1497#endif /* __ASSEMBLER__ */
1498
1499  /* TIMSK3 */
1500
1501#define TOIE3                           0
1502#define OCIE3A                          1
1503#define OCIE3B                          2
1504#define OCIE3C                          3
1505#define ICIE3                           5
1506
1507/* Timer/Counter4 Interrupt Mask Register */
1508#define TIMSK4                          _SFR_MEM8(0x72)
1509
1510#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
1511
1512struct __reg_TIMSK4 {
1513        unsigned int _toie4 : 1;        /* Timer/Counter4 Overflow Interrupt Enable */
1514        unsigned int _ocie4a : 1;       /* Timer/Counter4 Output Compare A Match Interrupt Enable */
1515        unsigned int _ocie4b : 1;       /* Timer/Counter4 Output Compare B Match Interrupt Enable */
1516        unsigned int _ocie4c : 1;       /* Timer/Counter4 Output Compare C Match Interrupt Enable */
1517        unsigned int : 1;
1518        unsigned int _icie4 : 1;        /* Timer/Counter4 Input Capture Interrupt Enable */
1519        unsigned int : 2;
1520};
1521
1522#define TIMSK4_struct _SFR_IO8_STRUCT(0x72, struct __reg_TIMSK4)
1523
1524#endif /* __ASSEMBLER__ */
1525
1526  /* TIMSK4 */
1527
1528#define TOIE4                           0
1529#define OCIE4A                          1
1530#define OCIE4B                          2
1531#define OCIE4C                          3
1532#define ICIE4                           5
1533
1534/* Timer/Counter5 Interrupt Mask Register */
1535#define TIMSK5                          _SFR_MEM8(0x73)
1536
1537#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
1538
1539struct __reg_TIMSK5 {
1540        unsigned int _toie5 : 1;        /* Timer/Counter5 Overflow Interrupt Enable */
1541        unsigned int _ocie5a : 1;       /* Timer/Counter5 Output Compare A Match Interrupt Enable */
1542        unsigned int _ocie5b : 1;       /* Timer/Counter5 Output Compare B Match Interrupt Enable */
1543        unsigned int _ocie5c : 1;       /* Timer/Counter5 Output Compare C Match Interrupt Enable */
1544        unsigned int : 1;
1545        unsigned int _icie5 : 1;        /* Timer/Counter5 Input Capture Interrupt Enable */
1546        unsigned int : 2;
1547};
1548
1549#define TIMSK5_struct _SFR_IO8_STRUCT(0x73, struct __reg_TIMSK5)
1550
1551#endif /* __ASSEMBLER__ */
1552
1553  /* TIMSK5 */
1554
1555#define TOIE5                           0
1556#define OCIE5A                          1
1557#define OCIE5B                          2
1558#define OCIE5C                          3
1559#define ICIE5                           5
1560
1561/* The ADC Control and Status Register C */
1562#define ADCSRC                          _SFR_MEM8(0x77)
1563
1564#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
1565
1566struct __reg_ADCSRC {
1567        unsigned int _adsut : 6;        /* ADC Start-up Time */
1568        unsigned int _adtht : 2;        /* ADC Track-and-Hold Time */
1569};
1570
1571#define ADCSRC_struct _SFR_IO8_STRUCT(0x77, struct __reg_ADCSRC)
1572
1573#endif /* __ASSEMBLER__ */
1574
1575  /* ADCSRC */
1576
1577#define ADSUT0                          0
1578#define ADSUT1                          1
1579#define ADSUT2                          2
1580#define ADSUT3                          3
1581#define ADSUT4                          4
1582#define ADSUT5                          5
1583#define ADTHT0                          6
1584#define ADTHT1                          7
1585
1586/* ADC Data Register  Bytes */
1587#ifndef __ASSEMBLER__
1588#define ADC                             _SFR_MEM16(0x78)
1589#define ADCL                            _SFR_MEM8(0x78)
1590#define ADCH                            _SFR_MEM8(0x79)
1591#endif /* __ASSEMBLER__ */
1592#define ADCW                            _SFR_MEM16(0x78)
1593#define ADCWL                           _SFR_MEM8(0x78)
1594#define ADCWH                           _SFR_MEM8(0x79)
1595
1596/* The ADC Control and Status Register A */
1597#define ADCSRA                          _SFR_MEM8(0x7A)
1598
1599#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
1600
1601struct __reg_ADCSRA {
1602        unsigned int _adps : 3; /* ADC  Prescaler Select Bits */
1603        unsigned int _adie : 1; /* ADC Interrupt Enable */
1604        unsigned int _adif : 1; /* ADC Interrupt Flag */
1605        unsigned int _adate : 1;        /* ADC Auto Trigger Enable */
1606        unsigned int _adsc : 1; /* ADC Start Conversion */
1607        unsigned int _aden : 1; /* ADC Enable */
1608};
1609
1610#define ADCSRA_struct _SFR_IO8_STRUCT(0x7a, struct __reg_ADCSRA)
1611
1612#endif /* __ASSEMBLER__ */
1613
1614  /* ADCSRA */
1615
1616#define ADPS0                           0
1617#define ADPS1                           1
1618#define ADPS2                           2
1619#define ADIE                            3
1620#define ADIF                            4
1621#define ADATE                           5
1622#define ADSC                            6
1623#define ADEN                            7
1624
1625/* ADC Control and Status Register B */
1626#define ADCSRB                          _SFR_MEM8(0x7B)
1627
1628#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
1629
1630struct __reg_ADCSRB {
1631        unsigned int _adts : 3; /* ADC Auto Trigger Source */
1632        unsigned int _mux5 : 1; /* Analog Channel and Gain Selection Bits */
1633        unsigned int _acch : 1; /* Analog Channel Change */
1634        unsigned int _refok : 1;        /* Reference Voltage OK */
1635        unsigned int _acme : 1; /* Analog Comparator Multiplexer Enable */
1636        unsigned int _avddok : 1;       /* AVDD Supply Voltage OK */
1637};
1638
1639#define ADCSRB_struct _SFR_IO8_STRUCT(0x7b, struct __reg_ADCSRB)
1640
1641#endif /* __ASSEMBLER__ */
1642
1643  /* ADCSRB */
1644
1645#define ADTS0                           0
1646#define ADTS1                           1
1647#define ADTS2                           2
1648#define MUX5                            3
1649#define ACCH                            4
1650#define REFOK                           5
1651#define ACME                            6
1652#define AVDDOK                          7
1653
1654/* The ADC Multiplexer Selection Register */
1655#define ADMUX                           _SFR_MEM8(0x7C)
1656
1657#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
1658
1659struct __reg_ADMUX {
1660        unsigned int _mux : 5;  /* Analog Channel and Gain Selection Bits */
1661        unsigned int _adlar : 1;        /* ADC Left Adjust Result */
1662        unsigned int _refs : 2; /* Reference Selection Bits */
1663};
1664
1665#define ADMUX_struct _SFR_IO8_STRUCT(0x7c, struct __reg_ADMUX)
1666
1667#endif /* __ASSEMBLER__ */
1668
1669  /* ADMUX */
1670
1671#define MUX0                            0
1672#define MUX1                            1
1673#define MUX2                            2
1674#define MUX3                            3
1675#define MUX4                            4
1676#define ADLAR                           5
1677#define REFS0                           6
1678#define REFS1                           7
1679
1680/* Digital Input Disable Register 2 */
1681#define DIDR2                           _SFR_MEM8(0x7D)
1682
1683#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
1684
1685struct __reg_DIDR2 {
1686        unsigned int _adc8d : 1;        /* ADC15D:ADC8D: ADC15:8 Digital Input Disable */
1687        unsigned int _adc9d : 1;        /* ADC15D:ADC8D: ADC15:8 Digital Input Disable */
1688        unsigned int _adc10d : 1;       /* ADC15D:ADC8D: ADC15:8 Digital Input Disable */
1689        unsigned int _adc11d : 1;       /* ADC15D:ADC8D: ADC15:8 Digital Input Disable */
1690        unsigned int _adc12d : 1;       /* ADC15D:ADC8D: ADC15:8 Digital Input Disable */
1691        unsigned int _adc13d : 1;       /* ADC15D:ADC8D: ADC15:8 Digital Input Disable */
1692        unsigned int _adc14d : 1;       /* ADC15D:ADC8D: ADC15:8 Digital Input Disable */
1693        unsigned int _adc15d : 1;       /* ADC15D:ADC8D: ADC15:8 Digital Input Disable */
1694};
1695
1696#define DIDR2_struct _SFR_IO8_STRUCT(0x7d, struct __reg_DIDR2)
1697
1698#endif /* __ASSEMBLER__ */
1699
1700  /* DIDR2 */
1701
1702#define ADC8D                           0
1703#define ADC9D                           1
1704#define ADC10D                          2
1705#define ADC11D                          3
1706#define ADC12D                          4
1707#define ADC13D                          5
1708#define ADC14D                          6
1709#define ADC15D                          7
1710
1711/* Digital Input Disable Register 0 */
1712#define DIDR0                           _SFR_MEM8(0x7E)
1713
1714#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
1715
1716struct __reg_DIDR0 {
1717        unsigned int _adc0d : 1;        /* ADC7D:ADC0D: ADC7:0 Digital Input Disable */
1718        unsigned int _adc1d : 1;        /* ADC7D:ADC0D: ADC7:0 Digital Input Disable */
1719        unsigned int _adc2d : 1;        /* ADC7D:ADC0D: ADC7:0 Digital Input Disable */
1720        unsigned int _adc3d : 1;        /* ADC7D:ADC0D: ADC7:0 Digital Input Disable */
1721        unsigned int _adc4d : 1;        /* ADC7D:ADC0D: ADC7:0 Digital Input Disable */
1722        unsigned int _adc5d : 1;        /* ADC7D:ADC0D: ADC7:0 Digital Input Disable */
1723        unsigned int _adc6d : 1;        /* ADC7D:ADC0D: ADC7:0 Digital Input Disable */
1724        unsigned int _adc7d : 1;        /* ADC7D:ADC0D: ADC7:0 Digital Input Disable */
1725};
1726
1727#define DIDR0_struct _SFR_IO8_STRUCT(0x7e, struct __reg_DIDR0)
1728
1729#endif /* __ASSEMBLER__ */
1730
1731  /* DIDR0 */
1732
1733#define ADC0D                           0
1734#define ADC1D                           1
1735#define ADC2D                           2
1736#define ADC3D                           3
1737#define ADC4D                           4
1738#define ADC5D                           5
1739#define ADC6D                           6
1740#define ADC7D                           7
1741
1742/* Digital Input Disable Register 1 */
1743#define DIDR1                           _SFR_MEM8(0x7F)
1744
1745#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
1746
1747struct __reg_DIDR1 {
1748        unsigned int _ain0d : 1;        /* AIN0 Digital Input Disable */
1749        unsigned int _ain1d : 1;        /* AIN1 Digital Input Disable */
1750        unsigned int : 6;
1751};
1752
1753#define DIDR1_struct _SFR_IO8_STRUCT(0x7f, struct __reg_DIDR1)
1754
1755#endif /* __ASSEMBLER__ */
1756
1757  /* DIDR1 */
1758
1759#define AIN0D                           0
1760#define AIN1D                           1
1761
1762/* Timer/Counter1 Control Register A */
1763#define TCCR1A                          _SFR_MEM8(0x80)
1764
1765#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
1766
1767struct __reg_TCCR1A {
1768        unsigned int _wgm1 : 2; /* Waveform Generation Mode */
1769        unsigned int _com1c : 2;        /* Compare Output Mode for Channel C */
1770        unsigned int _com1b : 2;        /* Compare Output Mode for Channel B */
1771        unsigned int _com1a : 2;        /* Compare Output Mode for Channel A */
1772};
1773
1774#define TCCR1A_struct _SFR_IO8_STRUCT(0x80, struct __reg_TCCR1A)
1775
1776#endif /* __ASSEMBLER__ */
1777
1778  /* TCCR1A */
1779
1780#define WGM10                           0
1781#define WGM11                           1
1782#define COM1C0                          2
1783#define COM1C1                          3
1784#define COM1B0                          4
1785#define COM1B1                          5
1786#define COM1A0                          6
1787#define COM1A1                          7
1788
1789/* Timer/Counter1 Control Register B */
1790#define TCCR1B                          _SFR_MEM8(0x81)
1791
1792#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
1793
1794struct __reg_TCCR1B {
1795        unsigned int _cs1 : 3;  /* Clock Select */
1796        unsigned int _wgm1 : 2; /* Waveform Generation Mode */
1797        unsigned int : 1;
1798        unsigned int _ices1 : 1;        /* Input Capture 1 Edge Select */
1799        unsigned int _icnc1 : 1;        /* Input Capture 1 Noise Canceller */
1800};
1801
1802#define TCCR1B_struct _SFR_IO8_STRUCT(0x81, struct __reg_TCCR1B)
1803
1804#endif /* __ASSEMBLER__ */
1805
1806  /* TCCR1B */
1807
1808#define CS10                            0
1809#define CS11                            1
1810#define CS12                            2
1811#define WGM12                           3
1812#define WGM13                           4
1813#define ICES1                           6
1814#define ICNC1                           7
1815
1816/* Timer/Counter1 Control Register C */
1817#define TCCR1C                          _SFR_MEM8(0x82)
1818
1819#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
1820
1821struct __reg_TCCR1C {
1822        unsigned int : 5;
1823        unsigned int _foc1c : 1;        /* Force Output Compare for Channel C */
1824        unsigned int _foc1b : 1;        /* Force Output Compare for Channel B */
1825        unsigned int _foc1a : 1;        /* Force Output Compare for Channel A */
1826};
1827
1828#define TCCR1C_struct _SFR_IO8_STRUCT(0x82, struct __reg_TCCR1C)
1829
1830#endif /* __ASSEMBLER__ */
1831
1832  /* TCCR1C */
1833
1834#define FOC1C                           5
1835#define FOC1B                           6
1836#define FOC1A                           7
1837
1838/* Timer/Counter1  Bytes */
1839#define TCNT1                           _SFR_MEM16(0x84)
1840#define TCNT1L                          _SFR_MEM8(0x84)
1841#define TCNT1H                          _SFR_MEM8(0x85)
1842
1843/* Timer/Counter1 Input Capture Register  Bytes */
1844#define ICR1                            _SFR_MEM16(0x86)
1845#define ICR1L                           _SFR_MEM8(0x86)
1846#define ICR1H                           _SFR_MEM8(0x87)
1847
1848/* Timer/Counter1 Output Compare Register A  Bytes */
1849#define OCR1A                           _SFR_MEM16(0x88)
1850#define OCR1AL                          _SFR_MEM8(0x88)
1851#define OCR1AH                          _SFR_MEM8(0x89)
1852
1853/* Timer/Counter1 Output Compare Register B  Bytes */
1854#define OCR1B                           _SFR_MEM16(0x8A)
1855#define OCR1BL                          _SFR_MEM8(0x8A)
1856#define OCR1BH                          _SFR_MEM8(0x8B)
1857
1858/* Timer/Counter1 Output Compare Register C  Bytes */
1859#define OCR1C                           _SFR_MEM16(0x8C)
1860#define OCR1CL                          _SFR_MEM8(0x8C)
1861#define OCR1CH                          _SFR_MEM8(0x8D)
1862
1863/* Timer/Counter3 Control Register A */
1864#define TCCR3A                          _SFR_MEM8(0x90)
1865
1866#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
1867
1868struct __reg_TCCR3A {
1869        unsigned int _wgm3 : 2; /* Waveform Generation Mode */
1870        unsigned int _com3c : 2;        /* Compare Output Mode for Channel C */
1871        unsigned int _com3b : 2;        /* Compare Output Mode for Channel B */
1872        unsigned int _com3a : 2;        /* Compare Output Mode for Channel A */
1873};
1874
1875#define TCCR3A_struct _SFR_IO8_STRUCT(0x90, struct __reg_TCCR3A)
1876
1877#endif /* __ASSEMBLER__ */
1878
1879  /* TCCR3A */
1880
1881#define WGM30                           0
1882#define WGM31                           1
1883#define COM3C0                          2
1884#define COM3C1                          3
1885#define COM3B0                          4
1886#define COM3B1                          5
1887#define COM3A0                          6
1888#define COM3A1                          7
1889
1890/* Timer/Counter3 Control Register B */
1891#define TCCR3B                          _SFR_MEM8(0x91)
1892
1893#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
1894
1895struct __reg_TCCR3B {
1896        unsigned int _cs3 : 3;  /* Clock Select */
1897        unsigned int _wgm3 : 2; /* Waveform Generation Mode */
1898        unsigned int : 1;
1899        unsigned int _ices3 : 1;        /* Input Capture 3 Edge Select */
1900        unsigned int _icnc3 : 1;        /* Input Capture 3 Noise Canceller */
1901};
1902
1903#define TCCR3B_struct _SFR_IO8_STRUCT(0x91, struct __reg_TCCR3B)
1904
1905#endif /* __ASSEMBLER__ */
1906
1907  /* TCCR3B */
1908
1909#define CS30                            0
1910#define CS31                            1
1911#define CS32                            2
1912#define WGM32                           3
1913#define WGM33                           4
1914#define ICES3                           6
1915#define ICNC3                           7
1916
1917/* Timer/Counter3 Control Register C */
1918#define TCCR3C                          _SFR_MEM8(0x92)
1919
1920#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
1921
1922struct __reg_TCCR3C {
1923        unsigned int : 5;
1924        unsigned int _foc3c : 1;        /* Force Output Compare for Channel C */
1925        unsigned int _foc3b : 1;        /* Force Output Compare for Channel B */
1926        unsigned int _foc3a : 1;        /* Force Output Compare for Channel A */
1927};
1928
1929#define TCCR3C_struct _SFR_IO8_STRUCT(0x92, struct __reg_TCCR3C)
1930
1931#endif /* __ASSEMBLER__ */
1932
1933  /* TCCR3C */
1934
1935#define FOC3C                           5
1936#define FOC3B                           6
1937#define FOC3A                           7
1938
1939/* Timer/Counter3  Bytes */
1940#define TCNT3                           _SFR_MEM16(0x94)
1941#define TCNT3L                          _SFR_MEM8(0x94)
1942#define TCNT3H                          _SFR_MEM8(0x95)
1943
1944/* Timer/Counter3 Input Capture Register  Bytes */
1945#define ICR3                            _SFR_MEM16(0x96)
1946#define ICR3L                           _SFR_MEM8(0x96)
1947#define ICR3H                           _SFR_MEM8(0x97)
1948
1949/* Timer/Counter3 Output Compare Register A  Bytes */
1950#define OCR3A                           _SFR_MEM16(0x98)
1951#define OCR3AL                          _SFR_MEM8(0x98)
1952#define OCR3AH                          _SFR_MEM8(0x99)
1953
1954/* Timer/Counter3 Output Compare Register B  Bytes */
1955#define OCR3B                           _SFR_MEM16(0x9A)
1956#define OCR3BL                          _SFR_MEM8(0x9A)
1957#define OCR3BH                          _SFR_MEM8(0x9B)
1958
1959/* Timer/Counter3 Output Compare Register C  Bytes */
1960#define OCR3C                           _SFR_MEM16(0x9C)
1961#define OCR3CL                          _SFR_MEM8(0x9C)
1962#define OCR3CH                          _SFR_MEM8(0x9D)
1963
1964/* Timer/Counter4 Control Register A */
1965#define TCCR4A                          _SFR_MEM8(0xA0)
1966
1967#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
1968
1969struct __reg_TCCR4A {
1970        unsigned int _wgm4 : 2; /* Waveform Generation Mode */
1971        unsigned int _com4c : 2;        /* Compare Output Mode for Channel C */
1972        unsigned int _com4b : 2;        /* Compare Output Mode for Channel B */
1973        unsigned int _com4a : 2;        /* Compare Output Mode for Channel A */
1974};
1975
1976#define TCCR4A_struct _SFR_IO8_STRUCT(0xa0, struct __reg_TCCR4A)
1977
1978#endif /* __ASSEMBLER__ */
1979
1980  /* TCCR4A */
1981
1982#define WGM40                           0
1983#define WGM41                           1
1984#define COM4C0                          2
1985#define COM4C1                          3
1986#define COM4B0                          4
1987#define COM4B1                          5
1988#define COM4A0                          6
1989#define COM4A1                          7
1990
1991/* Timer/Counter4 Control Register B */
1992#define TCCR4B                          _SFR_MEM8(0xA1)
1993
1994#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
1995
1996struct __reg_TCCR4B {
1997        unsigned int _cs4 : 3;  /* Clock Select */
1998        unsigned int _wgm4 : 2; /* Waveform Generation Mode */
1999        unsigned int : 1;
2000        unsigned int _ices4 : 1;        /* Input Capture 4 Edge Select */
2001        unsigned int _icnc4 : 1;        /* Input Capture 4 Noise Canceller */
2002};
2003
2004#define TCCR4B_struct _SFR_IO8_STRUCT(0xa1, struct __reg_TCCR4B)
2005
2006#endif /* __ASSEMBLER__ */
2007
2008  /* TCCR4B */
2009
2010#define CS40                            0
2011#define CS41                            1
2012#define CS42                            2
2013#define WGM42                           3
2014#define WGM43                           4
2015#define ICES4                           6
2016#define ICNC4                           7
2017
2018/* Timer/Counter4 Control Register C */
2019#define TCCR4C                          _SFR_MEM8(0xA2)
2020
2021#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
2022
2023struct __reg_TCCR4C {
2024        unsigned int : 5;
2025        unsigned int _foc4c : 1;        /* Force Output Compare for Channel C */
2026        unsigned int _foc4b : 1;        /* Force Output Compare for Channel B */
2027        unsigned int _foc4a : 1;        /* Force Output Compare for Channel A */
2028};
2029
2030#define TCCR4C_struct _SFR_IO8_STRUCT(0xa2, struct __reg_TCCR4C)
2031
2032#endif /* __ASSEMBLER__ */
2033
2034  /* TCCR4C */
2035
2036#define FOC4C                           5
2037#define FOC4B                           6
2038#define FOC4A                           7
2039
2040/* Timer/Counter4  Bytes */
2041#define TCNT4                           _SFR_MEM16(0xA4)
2042#define TCNT4L                          _SFR_MEM8(0xA4)
2043#define TCNT4H                          _SFR_MEM8(0xA5)
2044
2045/* Timer/Counter4 Input Capture Register  Bytes */
2046#define ICR4                            _SFR_MEM16(0xA6)
2047#define ICR4L                           _SFR_MEM8(0xA6)
2048#define ICR4H                           _SFR_MEM8(0xA7)
2049
2050/* Timer/Counter4 Output Compare Register A  Bytes */
2051#define OCR4A                           _SFR_MEM16(0xA8)
2052#define OCR4AL                          _SFR_MEM8(0xA8)
2053#define OCR4AH                          _SFR_MEM8(0xA9)
2054
2055/* Timer/Counter4 Output Compare Register B  Bytes */
2056#define OCR4B                           _SFR_MEM16(0xAA)
2057#define OCR4BL                          _SFR_MEM8(0xAA)
2058#define OCR4BH                          _SFR_MEM8(0xAB)
2059
2060/* Timer/Counter4 Output Compare Register C  Bytes */
2061#define OCR4C                           _SFR_MEM16(0xAC)
2062#define OCR4CL                          _SFR_MEM8(0xAC)
2063#define OCR4CH                          _SFR_MEM8(0xAD)
2064
2065/* Timer/Counter2 Control Register A */
2066#define TCCR2A                          _SFR_MEM8(0xB0)
2067
2068#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
2069
2070struct __reg_TCCR2A {
2071        unsigned int _wgm2 : 2; /* Waveform Generation Mode */
2072        unsigned int : 2;
2073        unsigned int _com2b : 2;        /* Compare Match Output B Mode */
2074        unsigned int _com2a : 2;        /* Compare Match Output A Mode */
2075};
2076
2077#define TCCR2A_struct _SFR_IO8_STRUCT(0xb0, struct __reg_TCCR2A)
2078
2079#endif /* __ASSEMBLER__ */
2080
2081  /* TCCR2A */
2082
2083#define WGM20                           0
2084#define WGM21                           1
2085#define COM2B0                          4
2086#define COM2B1                          5
2087#define COM2A0                          6
2088#define COM2A1                          7
2089
2090/* Timer/Counter2 Control Register B */
2091#define TCCR2B                          _SFR_MEM8(0xB1)
2092
2093#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
2094
2095struct __reg_TCCR2B {
2096        unsigned int _cs2 : 3;  /* Clock Select */
2097        unsigned int _wgm22 : 1;        /* Waveform Generation Mode */
2098        unsigned int : 2;
2099        unsigned int _foc2b : 1;        /* Force Output Compare B */
2100        unsigned int _foc2a : 1;        /* Force Output Compare A */
2101};
2102
2103#define TCCR2B_struct _SFR_IO8_STRUCT(0xb1, struct __reg_TCCR2B)
2104
2105#endif /* __ASSEMBLER__ */
2106
2107  /* TCCR2B */
2108
2109#define CS20                            0
2110#define CS21                            1
2111#define CS22                            2
2112#define WGM22                           3
2113#define FOC2B                           6
2114#define FOC2A                           7
2115
2116/* Timer/Counter2 */
2117#define TCNT2                           _SFR_MEM8(0xB2)
2118
2119  /* TCNT2 */
2120
2121#define TCNT20                          0
2122#define TCNT21                          1
2123#define TCNT22                          2
2124#define TCNT23                          3
2125#define TCNT24                          4
2126#define TCNT25                          5
2127#define TCNT26                          6
2128#define TCNT27                          7
2129
2130/* Timer/Counter2 Output Compare Register A */
2131#define OCR2A                           _SFR_MEM8(0xB3)
2132
2133  /* OCR2A */
2134
2135#define OCR2A0                          0
2136#define OCR2A1                          1
2137#define OCR2A2                          2
2138#define OCR2A3                          3
2139#define OCR2A4                          4
2140#define OCR2A5                          5
2141#define OCR2A6                          6
2142#define OCR2A7                          7
2143
2144/* Timer/Counter2 Output Compare Register B */
2145#define OCR2B                           _SFR_MEM8(0xB4)
2146
2147  /* OCR2B */
2148
2149#define OCR2B0                          0
2150#define OCR2B1                          1
2151#define OCR2B2                          2
2152#define OCR2B3                          3
2153#define OCR2B4                          4
2154#define OCR2B5                          5
2155#define OCR2B6                          6
2156#define OCR2B7                          7
2157
2158/* Asynchronous Status Register */
2159#define ASSR                            _SFR_MEM8(0xB6)
2160
2161#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
2162
2163struct __reg_ASSR {
2164        unsigned int _tcr2bub : 1;      /* Timer/Counter2 Control Register B Update Busy */
2165        unsigned int _tcr2aub : 1;      /* Timer/Counter2 Control Register A Update Busy */
2166        unsigned int _ocr2bub : 1;      /* Timer/Counter2 Output Compare Register B Update Busy */
2167        unsigned int _ocr2aub : 1;      /* Timer/Counter2 Output Compare Register A Update Busy */
2168        unsigned int _tcn2ub : 1;       /* Timer/Counter2 Update Busy */
2169        unsigned int _as2 : 1;  /* Timer/Counter2 Asynchronous Mode */
2170        unsigned int _exclk : 1;        /* Enable External Clock Input */
2171        unsigned int _exclkamr : 1;     /* Enable External Clock Input for AMR */
2172};
2173
2174#define ASSR_struct _SFR_IO8_STRUCT(0xb6, struct __reg_ASSR)
2175
2176#endif /* __ASSEMBLER__ */
2177
2178  /* ASSR */
2179
2180#define TCR2BUB                         0
2181#define TCR2AUB                         1
2182#define OCR2BUB                         2
2183#define OCR2AUB                         3
2184#define TCN2UB                          4
2185#define AS2                             5
2186#define EXCLK                           6
2187#define EXCLKAMR                        7
2188
2189/* TWI Bit Rate Register */
2190#define TWBR                            _SFR_MEM8(0xB8)
2191
2192  /* TWBR */
2193
2194#define TWBR0                           0
2195#define TWBR1                           1
2196#define TWBR2                           2
2197#define TWBR3                           3
2198#define TWBR4                           4
2199#define TWBR5                           5
2200#define TWBR6                           6
2201#define TWBR7                           7
2202
2203/* TWI Status Register */
2204#define TWSR                            _SFR_MEM8(0xB9)
2205
2206#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
2207
2208struct __reg_TWSR {
2209        unsigned int _twps : 2; /* TWI Prescaler Bits */
2210        unsigned int : 1;
2211        unsigned int _tws : 5;  /* TWI Status */
2212};
2213
2214#define TWSR_struct _SFR_IO8_STRUCT(0xb9, struct __reg_TWSR)
2215
2216#endif /* __ASSEMBLER__ */
2217
2218  /* TWSR */
2219
2220#define TWPS0                           0
2221#define TWPS1                           1
2222#define TWS3                            3
2223#define TWS4                            4
2224#define TWS5                            5
2225#define TWS6                            6
2226#define TWS7                            7
2227
2228/* TWI (Slave) Address Register */
2229#define TWAR                            _SFR_MEM8(0xBA)
2230
2231#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
2232
2233struct __reg_TWAR {
2234        unsigned int _twgce : 1;        /* TWI General Call Recognition Enable Bit */
2235        unsigned int _twa : 7;  /* TWI (Slave) Address */
2236};
2237
2238#define TWAR_struct _SFR_IO8_STRUCT(0xba, struct __reg_TWAR)
2239
2240#endif /* __ASSEMBLER__ */
2241
2242  /* TWAR */
2243
2244#define TWGCE                           0
2245#define TWA0                            1
2246#define TWA1                            2
2247#define TWA2                            3
2248#define TWA3                            4
2249#define TWA4                            5
2250#define TWA5                            6
2251#define TWA6                            7
2252
2253/* TWI Data Register */
2254#define TWDR                            _SFR_MEM8(0xBB)
2255
2256  /* TWDR */
2257
2258#define TWD0                            0
2259#define TWD1                            1
2260#define TWD2                            2
2261#define TWD3                            3
2262#define TWD4                            4
2263#define TWD5                            5
2264#define TWD6                            6
2265#define TWD7                            7
2266
2267/* TWI Control Register */
2268#define TWCR                            _SFR_MEM8(0xBC)
2269
2270#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
2271
2272struct __reg_TWCR {
2273        unsigned int _twie : 1; /* TWI Interrupt Enable */
2274        unsigned int : 1;
2275        unsigned int _twen : 1; /* TWI Enable Bit */
2276        unsigned int _twwc : 1; /* TWI Write Collision Flag */
2277        unsigned int _twsto : 1;        /* TWI STOP Condition Bit */
2278        unsigned int _twsta : 1;        /* TWI START Condition Bit */
2279        unsigned int _twea : 1; /* TWI Enable Acknowledge Bit */
2280        unsigned int _twint : 1;        /* TWI Interrupt Flag */
2281};
2282
2283#define TWCR_struct _SFR_IO8_STRUCT(0xbc, struct __reg_TWCR)
2284
2285#endif /* __ASSEMBLER__ */
2286
2287  /* TWCR */
2288
2289#define TWIE                            0
2290#define TWEN                            2
2291#define TWWC                            3
2292#define TWSTO                           4
2293#define TWSTA                           5
2294#define TWEA                            6
2295#define TWINT                           7
2296
2297/* TWI (Slave) Address Mask Register */
2298#define TWAMR                           _SFR_MEM8(0xBD)
2299
2300#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
2301
2302struct __reg_TWAMR {
2303        unsigned int : 1;
2304        unsigned int _twam : 7; /* TWI Address Mask */
2305};
2306
2307#define TWAMR_struct _SFR_IO8_STRUCT(0xbd, struct __reg_TWAMR)
2308
2309#endif /* __ASSEMBLER__ */
2310
2311  /* TWAMR */
2312
2313#define TWAM0                           1
2314#define TWAMR0                          1
2315#define TWAM1                           2
2316#define TWAMR1                          2
2317#define TWAM2                           3
2318#define TWAMR2                          3
2319#define TWAM3                           4
2320#define TWAMR3                          4
2321#define TWAM4                           5
2322#define TWAMR4                          5
2323#define TWAM5                           6
2324#define TWAMR5                          6
2325#define TWAM6                           7
2326#define TWAMR6                          7
2327
2328/* USART0 Control and Status Register A */
2329#define UCSR0A                          _SFR_MEM8(0xC0)
2330
2331#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
2332
2333struct __reg_UCSR0A {
2334        unsigned int _mpcm0 : 1;        /* Multi-processor Communication Mode */
2335        unsigned int _u2x0 : 1; /* Double the USART Transmission Speed */
2336        unsigned int _upe0 : 1; /* USART Parity Error */
2337        unsigned int _dor0 : 1; /* Data OverRun */
2338        unsigned int _fe0 : 1;  /* Frame Error */
2339        unsigned int _udre0 : 1;        /* USART Data Register Empty */
2340        unsigned int _txc0 : 1; /* USART Transmit Complete */
2341        unsigned int _rxc0 : 1; /* USART Receive Complete */
2342};
2343
2344#define UCSR0A_struct _SFR_IO8_STRUCT(0xc0, struct __reg_UCSR0A)
2345
2346#endif /* __ASSEMBLER__ */
2347
2348  /* UCSR0A */
2349
2350#define MPCM0                           0
2351#define U2X0                            1
2352#define UPE0                            2
2353#define DOR0                            3
2354#define FE0                             4
2355#define UDRE0                           5
2356#define TXC0                            6
2357#define RXC0                            7
2358
2359/* USART0 Control and Status Register B */
2360#define UCSR0B                          _SFR_MEM8(0xC1)
2361
2362#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
2363
2364struct __reg_UCSR0B {
2365        unsigned int _txb80 : 1;        /* Transmit Data Bit 8 */
2366        unsigned int _rxb80 : 1;        /* Receive Data Bit 8 */
2367        unsigned int _ucsz02 : 1;       /* Character Size */
2368        unsigned int _txen0 : 1;        /* Transmitter Enable */
2369        unsigned int _rxen0 : 1;        /* Receiver Enable */
2370        unsigned int _udrie0 : 1;       /* USART Data Register Empty Interrupt Enable */
2371        unsigned int _txcie0 : 1;       /* TX Complete Interrupt Enable */
2372        unsigned int _rxcie0 : 1;       /* RX Complete Interrupt Enable */
2373};
2374
2375#define UCSR0B_struct _SFR_IO8_STRUCT(0xc1, struct __reg_UCSR0B)
2376
2377#endif /* __ASSEMBLER__ */
2378
2379  /* UCSR0B */
2380
2381#define TXB80                           0
2382#define RXB80                           1
2383#define UCSZ02                          2
2384#define TXEN0                           3
2385#define RXEN0                           4
2386#define UDRIE0                          5
2387#define TXCIE0                          6
2388#define RXCIE0                          7
2389
2390/* USART0 Control and Status Register C */
2391#define UCSR0C                          _SFR_MEM8(0xC2)
2392
2393#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
2394
2395struct __reg_UCSR0C {
2396        unsigned int _ucpol0 : 1;       /* Clock Polarity */
2397        unsigned int _ucsz0 : 2;        /* Character Size */
2398        unsigned int _ucpha0 : 1;       /* Clock Phase */
2399        unsigned int _udord0 : 1;       /* Data Order */
2400        unsigned int _usbs0 : 1;        /* Stop Bit Select */
2401        unsigned int _upm0 : 2; /* Parity Mode */
2402        unsigned int _umsel0 : 2;       /* USART Mode Select */
2403};
2404
2405#define UCSR0C_struct _SFR_IO8_STRUCT(0xc2, struct __reg_UCSR0C)
2406
2407#endif /* __ASSEMBLER__ */
2408
2409  /* UCSR0C */
2410
2411#define UCPOL0                          0
2412#define UCPHA0                          1
2413#define UCPHA0                          1
2414#define UCSZ00                          1
2415#define UDORD0                          2
2416#define UDORD0                          2
2417#define UCSZ01                          2
2418#define USBS0                           3
2419#define UPM00                           4
2420#define UPM01                           5
2421#define UMSEL00                         6
2422#define UMSEL0                          6
2423#define UMSEL01                         7
2424#define UMSEL1                          7
2425
2426/* USART0 Baud Rate Register  Bytes */
2427#define UBRR0                           _SFR_MEM16(0xC4)
2428#define UBRR0L                          _SFR_MEM8(0xC4)
2429#define UBRR0H                          _SFR_MEM8(0xC5)
2430
2431/* USART0 I/O Data Register */
2432#define UDR0                            _SFR_MEM8(0xC6)
2433
2434  /* UDR0 */
2435
2436#define UDR00                           0
2437#define UDR01                           1
2438#define UDR02                           2
2439#define UDR03                           3
2440#define UDR04                           4
2441#define UDR05                           5
2442#define UDR06                           6
2443#define UDR07                           7
2444
2445/* USART1 Control and Status Register A */
2446#define UCSR1A                          _SFR_MEM8(0xC8)
2447
2448#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
2449
2450struct __reg_UCSR1A {
2451        unsigned int _mpcm1 : 1;        /* Multi-processor Communication Mode */
2452        unsigned int _u2x1 : 1; /* Double the USART Transmission Speed */
2453        unsigned int _upe1 : 1; /* USART Parity Error */
2454        unsigned int _dor1 : 1; /* Data OverRun */
2455        unsigned int _fe1 : 1;  /* Frame Error */
2456        unsigned int _udre1 : 1;        /* USART Data Register Empty */
2457        unsigned int _txc1 : 1; /* USART Transmit Complete */
2458        unsigned int _rxc1 : 1; /* USART Receive Complete */
2459};
2460
2461#define UCSR1A_struct _SFR_IO8_STRUCT(0xc8, struct __reg_UCSR1A)
2462
2463#endif /* __ASSEMBLER__ */
2464
2465  /* UCSR1A */
2466
2467#define MPCM1                           0
2468#define U2X1                            1
2469#define UPE1                            2
2470#define DOR1                            3
2471#define FE1                             4
2472#define UDRE1                           5
2473#define TXC1                            6
2474#define RXC1                            7
2475
2476/* USART1 Control and Status Register B */
2477#define UCSR1B                          _SFR_MEM8(0xC9)
2478
2479#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
2480
2481struct __reg_UCSR1B {
2482        unsigned int _txb81 : 1;        /* Transmit Data Bit 8 */
2483        unsigned int _rxb81 : 1;        /* Receive Data Bit 8 */
2484        unsigned int _ucsz12 : 1;       /* Character Size */
2485        unsigned int _txen1 : 1;        /* Transmitter Enable */
2486        unsigned int _rxen1 : 1;        /* Receiver Enable */
2487        unsigned int _udrie1 : 1;       /* USART Data Register Empty Interrupt Enable */
2488        unsigned int _txcie1 : 1;       /* TX Complete Interrupt Enable */
2489        unsigned int _rxcie1 : 1;       /* RX Complete Interrupt Enable */
2490};
2491
2492#define UCSR1B_struct _SFR_IO8_STRUCT(0xc9, struct __reg_UCSR1B)
2493
2494#endif /* __ASSEMBLER__ */
2495
2496  /* UCSR1B */
2497
2498#define TXB81                           0
2499#define RXB81                           1
2500#define UCSZ12                          2
2501#define TXEN1                           3
2502#define RXEN1                           4
2503#define UDRIE1                          5
2504#define TXCIE1                          6
2505#define RXCIE1                          7
2506
2507/* USART1 Control and Status Register C */
2508#define UCSR1C                          _SFR_MEM8(0xCA)
2509
2510#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
2511
2512struct __reg_UCSR1C {
2513        unsigned int _ucpol1 : 1;       /* Clock Polarity */
2514        unsigned int _ucsz1 : 2;        /* Character Size */
2515        unsigned int _ucpha1 : 1;       /* Clock Phase */
2516        unsigned int _udord1 : 1;       /* Data Order */
2517        unsigned int _usbs1 : 1;        /* Stop Bit Select */
2518        unsigned int _upm1 : 2; /* Parity Mode */
2519        unsigned int _umsel1 : 2;       /* USART Mode Select */
2520};
2521
2522#define UCSR1C_struct _SFR_IO8_STRUCT(0xca, struct __reg_UCSR1C)
2523
2524#endif /* __ASSEMBLER__ */
2525
2526  /* UCSR1C */
2527
2528#define UCPOL1                          0
2529#define UCPHA1                          1
2530#define UCPHA1                          1
2531#define UCSZ10                          1
2532#define UDORD1                          2
2533#define UDORD1                          2
2534#define UCSZ11                          2
2535#define USBS1                           3
2536#define UPM10                           4
2537#define UPM11                           5
2538#define UMSEL10                         6
2539#define UMSEL11                         7
2540
2541/* USART1 Baud Rate Register  Bytes */
2542#define UBRR1                           _SFR_MEM16(0xCC)
2543#define UBRR1L                          _SFR_MEM8(0xCC)
2544#define UBRR1H                          _SFR_MEM8(0xCD)
2545
2546/* USART1 I/O Data Register */
2547#define UDR1                            _SFR_MEM8(0xCE)
2548
2549  /* UDR1 */
2550
2551#define UDR10                           0
2552#define UDR11                           1
2553#define UDR12                           2
2554#define UDR13                           3
2555#define UDR14                           4
2556#define UDR15                           5
2557#define UDR16                           6
2558#define UDR17                           7
2559
2560/* Symbol Counter Cotrol Register 0 */
2561#define SCCR0                           _SFR_MEM8(0xDC)
2562
2563#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
2564
2565struct __reg_SCCR0 {
2566        unsigned int _sccmp : 3;        /* Symbol Counter Compare Unit 3 Mode selct */
2567        unsigned int _sctse : 1;        /* Symbol Counter Automatic Time Stamping enable */
2568        unsigned int _sccksel : 1;      /* Symbol Counter Clock Source select */
2569        unsigned int _scen : 1; /* Symbol Counter enable */
2570        unsigned int _scmbts : 1;       /* Manuall Beacon Time Stamp */
2571        unsigned int _scres : 1;        /* Symbol Counter Synchronization */
2572};
2573
2574#define SCCR0_struct _SFR_IO8_STRUCT(0xdc, struct __reg_SCCR0)
2575
2576#endif /* __ASSEMBLER__ */
2577
2578  /* SCCR0 */
2579
2580#define SCCMP1                          0
2581#define SCCMP2                          1
2582#define SCCMP3                          2
2583#define SCTSE                           3
2584#define SCCKSEL                         4
2585#define SCEN                            5
2586#define SCMBTS                          6
2587#define SCRES                           7
2588
2589/* Symbol Counter Control Register 1 */
2590#define SCCR1                           _SFR_MEM8(0xDD)
2591
2592#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
2593
2594struct __reg_SCCR1 {
2595        unsigned int _scenbo : 1;       /* Backoff Slot Counter enable */
2596        unsigned int : 7;
2597};
2598
2599#define SCCR1_struct _SFR_IO8_STRUCT(0xdd, struct __reg_SCCR1)
2600
2601#endif /* __ASSEMBLER__ */
2602
2603  /* SCCR1 */
2604
2605#define SCENBO                          0
2606
2607/* Symbol Counter Status Register */
2608#define SCSR                            _SFR_MEM8(0xDE)
2609
2610#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
2611
2612struct __reg_SCSR {
2613        unsigned int _scbsy : 1;        /* Symbol Counter busy */
2614        unsigned int : 7;
2615};
2616
2617#define SCSR_struct _SFR_IO8_STRUCT(0xde, struct __reg_SCSR)
2618
2619#endif /* __ASSEMBLER__ */
2620
2621  /* SCSR */
2622
2623#define SCBSY                           0
2624
2625/* Symbol Counter Interrupt Mask Register */
2626#define SCIRQM                          _SFR_MEM8(0xDF)
2627
2628#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
2629
2630struct __reg_SCIRQM {
2631        unsigned int _irqmcp : 3;       /* Symbol Counter Compare Match 3 IRQ enable */
2632        unsigned int _irqmof : 1;       /* Symbol Counter Overflow IRQ enable */
2633        unsigned int _irqmbo : 1;       /* Backoff Slot Conter IRQ enable */
2634        unsigned int : 3;
2635};
2636
2637#define SCIRQM_struct _SFR_IO8_STRUCT(0xdf, struct __reg_SCIRQM)
2638
2639#endif /* __ASSEMBLER__ */
2640
2641  /* SCIRQM */
2642
2643#define IRQMCP1                         0
2644#define IRQMCP2                         1
2645#define IRQMCP3                         2
2646#define IRQMOF                          3
2647#define IRQMBO                          4
2648
2649/* Symbol Counter Interrupt Status Register */
2650#define SCIRQS                          _SFR_MEM8(0xE0)
2651
2652#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
2653
2654struct __reg_SCIRQS {
2655        unsigned int _irqscp : 3;       /* Compare Unit 3 Compare Match IRQ */
2656        unsigned int _irqsof : 1;       /* Symbol Counter Overflow IRQ */
2657        unsigned int _irqsbo : 1;       /* Backoff Slot Counter IRQ */
2658        unsigned int : 3;
2659};
2660
2661#define SCIRQS_struct _SFR_IO8_STRUCT(0xe0, struct __reg_SCIRQS)
2662
2663#endif /* __ASSEMBLER__ */
2664
2665  /* SCIRQS */
2666
2667#define IRQSCP1                         0
2668#define IRQSCP2                         1
2669#define IRQSCP3                         2
2670#define IRQSOF                          3
2671#define IRQSBO                          4
2672
2673/* Symbol Counter Register LL-Byte */
2674#define SCCNTLL                         _SFR_MEM8(0xE1)
2675
2676#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
2677
2678struct __reg_SCCNTLL {
2679        unsigned int _sccntll : 8;      /* Symbol Counter Register LL-Byte bits */
2680};
2681
2682#define SCCNTLL_struct _SFR_IO8_STRUCT(0xe1, struct __reg_SCCNTLL)
2683
2684#endif /* __ASSEMBLER__ */
2685
2686  /* SCCNTLL */
2687
2688#define SCCNTLL0                        0
2689#define SCCNTLL1                        1
2690#define SCCNTLL2                        2
2691#define SCCNTLL3                        3
2692#define SCCNTLL4                        4
2693#define SCCNTLL5                        5
2694#define SCCNTLL6                        6
2695#define SCCNTLL7                        7
2696
2697/* Symbol Counter Register LH-Byte */
2698#define SCCNTLH                         _SFR_MEM8(0xE2)
2699
2700#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
2701
2702struct __reg_SCCNTLH {
2703        unsigned int _sccntlh : 8;      /* Symbol Counter Register LH-Byte bits */
2704};
2705
2706#define SCCNTLH_struct _SFR_IO8_STRUCT(0xe2, struct __reg_SCCNTLH)
2707
2708#endif /* __ASSEMBLER__ */
2709
2710  /* SCCNTLH */
2711
2712#define SCCNTLH0                        0
2713#define SCCNTLH1                        1
2714#define SCCNTLH2                        2
2715#define SCCNTLH3                        3
2716#define SCCNTLH4                        4
2717#define SCCNTLH5                        5
2718#define SCCNTLH6                        6
2719#define SCCNTLH7                        7
2720
2721/* Symbol Counter Register HL-Byte */
2722#define SCCNTHL                         _SFR_MEM8(0xE3)
2723
2724#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
2725
2726struct __reg_SCCNTHL {
2727        unsigned int _sccnthl : 8;      /* Symbol Counter Register HL-Byte bits */
2728};
2729
2730#define SCCNTHL_struct _SFR_IO8_STRUCT(0xe3, struct __reg_SCCNTHL)
2731
2732#endif /* __ASSEMBLER__ */
2733
2734  /* SCCNTHL */
2735
2736#define SCCNTHL0                        0
2737#define SCCNTHL1                        1
2738#define SCCNTHL2                        2
2739#define SCCNTHL3                        3
2740#define SCCNTHL4                        4
2741#define SCCNTHL5                        5
2742#define SCCNTHL6                        6
2743#define SCCNTHL7                        7
2744
2745/* Symbol Counter Register HH-Byte */
2746#define SCCNTHH                         _SFR_MEM8(0xE4)
2747
2748#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
2749
2750struct __reg_SCCNTHH {
2751        unsigned int _sccnthh : 8;      /* Symbol Counter Register HH-Byte bits */
2752};
2753
2754#define SCCNTHH_struct _SFR_IO8_STRUCT(0xe4, struct __reg_SCCNTHH)
2755
2756#endif /* __ASSEMBLER__ */
2757
2758  /* SCCNTHH */
2759
2760#define SCCNTHH0                        0
2761#define SCCNTHH1                        1
2762#define SCCNTHH2                        2
2763#define SCCNTHH3                        3
2764#define SCCNTHH4                        4
2765#define SCCNTHH5                        5
2766#define SCCNTHH6                        6
2767#define SCCNTHH7                        7
2768
2769/* Symbol Counter Beacon Time Stamp Register LL-Byte */
2770#define SCBTSRLL                        _SFR_MEM8(0xE5)
2771
2772#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
2773
2774struct __reg_SCBTSRLL {
2775        unsigned int _scbtsrll : 8;     /* Symbol Counter Beacon Time Stamp Register LL-Byte bits */
2776};
2777
2778#define SCBTSRLL_struct _SFR_IO8_STRUCT(0xe5, struct __reg_SCBTSRLL)
2779
2780#endif /* __ASSEMBLER__ */
2781
2782  /* SCBTSRLL */
2783
2784#define SCBTSRLL0                       0
2785#define SCBTSRLL1                       1
2786#define SCBTSRLL2                       2
2787#define SCBTSRLL3                       3
2788#define SCBTSRLL4                       4
2789#define SCBTSRLL5                       5
2790#define SCBTSRLL6                       6
2791#define SCBTSRLL7                       7
2792
2793/* Symbol Counter Beacon Time Stamp Register LH-Byte */
2794#define SCBTSRLH                        _SFR_MEM8(0xE6)
2795
2796#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
2797
2798struct __reg_SCBTSRLH {
2799        unsigned int _scbtsrlh : 8;     /* Symbol Counter Beacon Time Stamp Register LH-Byte bits */
2800};
2801
2802#define SCBTSRLH_struct _SFR_IO8_STRUCT(0xe6, struct __reg_SCBTSRLH)
2803
2804#endif /* __ASSEMBLER__ */
2805
2806  /* SCBTSRLH */
2807
2808#define SCBTSRLH0                       0
2809#define SCBTSRLH1                       1
2810#define SCBTSRLH2                       2
2811#define SCBTSRLH3                       3
2812#define SCBTSRLH4                       4
2813#define SCBTSRLH5                       5
2814#define SCBTSRLH6                       6
2815#define SCBTSRLH7                       7
2816
2817/* Symbol Counter Beacon Time Stamp Register HL-Byte */
2818#define SCBTSRHL                        _SFR_MEM8(0xE7)
2819
2820#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
2821
2822struct __reg_SCBTSRHL {
2823        unsigned int _scbtsrhl : 8;     /* Symbol Counter Beacon Time Stamp Register HL-Byte bits */
2824};
2825
2826#define SCBTSRHL_struct _SFR_IO8_STRUCT(0xe7, struct __reg_SCBTSRHL)
2827
2828#endif /* __ASSEMBLER__ */
2829
2830  /* SCBTSRHL */
2831
2832#define SCBTSRHL0                       0
2833#define SCBTSRHL1                       1
2834#define SCBTSRHL2                       2
2835#define SCBTSRHL3                       3
2836#define SCBTSRHL4                       4
2837#define SCBTSRHL5                       5
2838#define SCBTSRHL6                       6
2839#define SCBTSRHL7                       7
2840
2841/* Symbol Counter Beacon Time Stamp Register HH-Byte */
2842#define SCBTSRHH                        _SFR_MEM8(0xE8)
2843
2844#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
2845
2846struct __reg_SCBTSRHH {
2847        unsigned int _scbtsrhh : 8;     /* Symbol Counter Beacon Time Stamp Register HH-Byte bits */
2848};
2849
2850#define SCBTSRHH_struct _SFR_IO8_STRUCT(0xe8, struct __reg_SCBTSRHH)
2851
2852#endif /* __ASSEMBLER__ */
2853
2854  /* SCBTSRHH */
2855
2856#define SCBTSRHH0                       0
2857#define SCBTSRHH1                       1
2858#define SCBTSRHH2                       2
2859#define SCBTSRHH3                       3
2860#define SCBTSRHH4                       4
2861#define SCBTSRHH5                       5
2862#define SCBTSRHH6                       6
2863#define SCBTSRHH7                       7
2864
2865/* Symbol Counter Frame Time Stamp Register LL-Byte */
2866#define SCTSRLL                         _SFR_MEM8(0xE9)
2867
2868#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
2869
2870struct __reg_SCTSRLL {
2871        unsigned int _sctsrll : 8;      /* Symbol Counter Frame Time Stamp Register LL-Byte bits */
2872};
2873
2874#define SCTSRLL_struct _SFR_IO8_STRUCT(0xe9, struct __reg_SCTSRLL)
2875
2876#endif /* __ASSEMBLER__ */
2877
2878  /* SCTSRLL */
2879
2880#define SCTSRLL0                        0
2881#define SCTSRLL1                        1
2882#define SCTSRLL2                        2
2883#define SCTSRLL3                        3
2884#define SCTSRLL4                        4
2885#define SCTSRLL5                        5
2886#define SCTSRLL6                        6
2887#define SCTSRLL7                        7
2888
2889/* Symbol Counter Frame Time Stamp Register LH-Byte */
2890#define SCTSRLH                         _SFR_MEM8(0xEA)
2891
2892#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
2893
2894struct __reg_SCTSRLH {
2895        unsigned int _sctsrlh : 8;      /* Symbol Counter Frame Time Stamp Register LH-Byte bits */
2896};
2897
2898#define SCTSRLH_struct _SFR_IO8_STRUCT(0xea, struct __reg_SCTSRLH)
2899
2900#endif /* __ASSEMBLER__ */
2901
2902  /* SCTSRLH */
2903
2904#define SCTSRLH0                        0
2905#define SCTSRLH1                        1
2906#define SCTSRLH2                        2
2907#define SCTSRLH3                        3
2908#define SCTSRLH4                        4
2909#define SCTSRLH5                        5
2910#define SCTSRLH6                        6
2911#define SCTSRLH7                        7
2912
2913/* Symbol Counter Frame Time Stamp Register HL-Byte */
2914#define SCTSRHL                         _SFR_MEM8(0xEB)
2915
2916#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
2917
2918struct __reg_SCTSRHL {
2919        unsigned int _sctsrhl : 8;      /* Symbol Counter Frame Time Stamp Register HL-Byte bits */
2920};
2921
2922#define SCTSRHL_struct _SFR_IO8_STRUCT(0xeb, struct __reg_SCTSRHL)
2923
2924#endif /* __ASSEMBLER__ */
2925
2926  /* SCTSRHL */
2927
2928#define SCTSRHL0                        0
2929#define SCTSRHL1                        1
2930#define SCTSRHL2                        2
2931#define SCTSRHL3                        3
2932#define SCTSRHL4                        4
2933#define SCTSRHL5                        5
2934#define SCTSRHL6                        6
2935#define SCTSRHL7                        7
2936
2937/* Symbol Counter Frame Time Stamp Register HH-Byte */
2938#define SCTSRHH                         _SFR_MEM8(0xEC)
2939
2940#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
2941
2942struct __reg_SCTSRHH {
2943        unsigned int _sctsrhh : 8;      /* Symbol Counter Frame Time Stamp Register HH-Byte bits */
2944};
2945
2946#define SCTSRHH_struct _SFR_IO8_STRUCT(0xec, struct __reg_SCTSRHH)
2947
2948#endif /* __ASSEMBLER__ */
2949
2950  /* SCTSRHH */
2951
2952#define SCTSRHH0                        0
2953#define SCTSRHH1                        1
2954#define SCTSRHH2                        2
2955#define SCTSRHH3                        3
2956#define SCTSRHH4                        4
2957#define SCTSRHH5                        5
2958#define SCTSRHH6                        6
2959#define SCTSRHH7                        7
2960
2961/* Symbol Counter Output Compare Register 3 LL-Byte */
2962#define SCOCR3LL                        _SFR_MEM8(0xED)
2963
2964#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
2965
2966struct __reg_SCOCR3LL {
2967        unsigned int _scocr3ll : 8;     /* Symbol Counter Output Compare Register 3 LL-Byte bits */
2968};
2969
2970#define SCOCR3LL_struct _SFR_IO8_STRUCT(0xed, struct __reg_SCOCR3LL)
2971
2972#endif /* __ASSEMBLER__ */
2973
2974  /* SCOCR3LL */
2975
2976#define SCOCR3LL0                       0
2977#define SCOCR3LL1                       1
2978#define SCOCR3LL2                       2
2979#define SCOCR3LL3                       3
2980#define SCOCR3LL4                       4
2981#define SCOCR3LL5                       5
2982#define SCOCR3LL6                       6
2983#define SCOCR3LL7                       7
2984
2985/* Symbol Counter Output Compare Register 3 LH-Byte */
2986#define SCOCR3LH                        _SFR_MEM8(0xEE)
2987
2988#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
2989
2990struct __reg_SCOCR3LH {
2991        unsigned int _scocr3lh : 8;     /* Symbol Counter Output Compare Register 3 LH-Byte bits */
2992};
2993
2994#define SCOCR3LH_struct _SFR_IO8_STRUCT(0xee, struct __reg_SCOCR3LH)
2995
2996#endif /* __ASSEMBLER__ */
2997
2998  /* SCOCR3LH */
2999
3000#define SCOCR3LH0                       0
3001#define SCOCR3LH1                       1
3002#define SCOCR3LH2                       2
3003#define SCOCR3LH3                       3
3004#define SCOCR3LH4                       4
3005#define SCOCR3LH5                       5
3006#define SCOCR3LH6                       6
3007#define SCOCR3LH7                       7
3008
3009/* Symbol Counter Output Compare Register 3 HL-Byte */
3010#define SCOCR3HL                        _SFR_MEM8(0xEF)
3011
3012#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
3013
3014struct __reg_SCOCR3HL {
3015        unsigned int _scocr3hl : 8;     /* Symbol Counter Output Compare Register 3 HL-Byte bits */
3016};
3017
3018#define SCOCR3HL_struct _SFR_IO8_STRUCT(0xef, struct __reg_SCOCR3HL)
3019
3020#endif /* __ASSEMBLER__ */
3021
3022  /* SCOCR3HL */
3023
3024#define SCOCR3HL0                       0
3025#define SCOCR3HL1                       1
3026#define SCOCR3HL2                       2
3027#define SCOCR3HL3                       3
3028#define SCOCR3HL4                       4
3029#define SCOCR3HL5                       5
3030#define SCOCR3HL6                       6
3031#define SCOCR3HL7                       7
3032
3033/* Symbol Counter Output Compare Register 3 HH-Byte */
3034#define SCOCR3HH                        _SFR_MEM8(0xF0)
3035
3036#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
3037
3038struct __reg_SCOCR3HH {
3039        unsigned int _scocr3hh : 8;     /* Symbol Counter Output Compare Register 3 HH-Byte bits */
3040};
3041
3042#define SCOCR3HH_struct _SFR_IO8_STRUCT(0xf0, struct __reg_SCOCR3HH)
3043
3044#endif /* __ASSEMBLER__ */
3045
3046  /* SCOCR3HH */
3047
3048#define SCOCR3HH0                       0
3049#define SCOCR3HH1                       1
3050#define SCOCR3HH2                       2
3051#define SCOCR3HH3                       3
3052#define SCOCR3HH4                       4
3053#define SCOCR3HH5                       5
3054#define SCOCR3HH6                       6
3055#define SCOCR3HH7                       7
3056
3057/* Symbol Counter Output Compare Register 2 LL-Byte */
3058#define SCOCR2LL                        _SFR_MEM8(0xF1)
3059
3060#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
3061
3062struct __reg_SCOCR2LL {
3063        unsigned int _scocr2ll : 8;     /* Symbol Counter Output Compare Register 2 LL-Byte bits */
3064};
3065
3066#define SCOCR2LL_struct _SFR_IO8_STRUCT(0xf1, struct __reg_SCOCR2LL)
3067
3068#endif /* __ASSEMBLER__ */
3069
3070  /* SCOCR2LL */
3071
3072#define SCOCR2LL0                       0
3073#define SCOCR2LL1                       1
3074#define SCOCR2LL2                       2
3075#define SCOCR2LL3                       3
3076#define SCOCR2LL4                       4
3077#define SCOCR2LL5                       5
3078#define SCOCR2LL6                       6
3079#define SCOCR2LL7                       7
3080
3081/* Symbol Counter Output Compare Register 2 LH-Byte */
3082#define SCOCR2LH                        _SFR_MEM8(0xF2)
3083
3084#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
3085
3086struct __reg_SCOCR2LH {
3087        unsigned int _scocr2lh : 8;     /* Symbol Counter Output Compare Register 2 LH-Byte bits */
3088};
3089
3090#define SCOCR2LH_struct _SFR_IO8_STRUCT(0xf2, struct __reg_SCOCR2LH)
3091
3092#endif /* __ASSEMBLER__ */
3093
3094  /* SCOCR2LH */
3095
3096#define SCOCR2LH0                       0
3097#define SCOCR2LH1                       1
3098#define SCOCR2LH2                       2
3099#define SCOCR2LH3                       3
3100#define SCOCR2LH4                       4
3101#define SCOCR2LH5                       5
3102#define SCOCR2LH6                       6
3103#define SCOCR2LH7                       7
3104
3105/* Symbol Counter Output Compare Register 2 HL-Byte */
3106#define SCOCR2HL                        _SFR_MEM8(0xF3)
3107
3108#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
3109
3110struct __reg_SCOCR2HL {
3111        unsigned int _scocr2hl : 8;     /* Symbol Counter Output Compare Register 2 HL-Byte bits */
3112};
3113
3114#define SCOCR2HL_struct _SFR_IO8_STRUCT(0xf3, struct __reg_SCOCR2HL)
3115
3116#endif /* __ASSEMBLER__ */
3117
3118  /* SCOCR2HL */
3119
3120#define SCOCR2HL0                       0
3121#define SCOCR2HL1                       1
3122#define SCOCR2HL2                       2
3123#define SCOCR2HL3                       3
3124#define SCOCR2HL4                       4
3125#define SCOCR2HL5                       5
3126#define SCOCR2HL6                       6
3127#define SCOCR2HL7                       7
3128
3129/* Symbol Counter Output Compare Register 2 HH-Byte */
3130#define SCOCR2HH                        _SFR_MEM8(0xF4)
3131
3132#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
3133
3134struct __reg_SCOCR2HH {
3135        unsigned int _scocr2hh : 8;     /* Symbol Counter Output Compare Register 2 HH-Byte bits */
3136};
3137
3138#define SCOCR2HH_struct _SFR_IO8_STRUCT(0xf4, struct __reg_SCOCR2HH)
3139
3140#endif /* __ASSEMBLER__ */
3141
3142  /* SCOCR2HH */
3143
3144#define SCOCR2HH0                       0
3145#define SCOCR2HH1                       1
3146#define SCOCR2HH2                       2
3147#define SCOCR2HH3                       3
3148#define SCOCR2HH4                       4
3149#define SCOCR2HH5                       5
3150#define SCOCR2HH6                       6
3151#define SCOCR2HH7                       7
3152
3153/* Symbol Counter Output Compare Register 1 LL-Byte */
3154#define SCOCR1LL                        _SFR_MEM8(0xF5)
3155
3156#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
3157
3158struct __reg_SCOCR1LL {
3159        unsigned int _scocr1ll : 8;     /* Symbol Counter Output Compare Register 1 LL-Byte bits */
3160};
3161
3162#define SCOCR1LL_struct _SFR_IO8_STRUCT(0xf5, struct __reg_SCOCR1LL)
3163
3164#endif /* __ASSEMBLER__ */
3165
3166  /* SCOCR1LL */
3167
3168#define SCOCR1LL0                       0
3169#define SCOCR1LL1                       1
3170#define SCOCR1LL2                       2
3171#define SCOCR1LL3                       3
3172#define SCOCR1LL4                       4
3173#define SCOCR1LL5                       5
3174#define SCOCR1LL6                       6
3175#define SCOCR1LL7                       7
3176
3177/* Symbol Counter Output Compare Register 1 LH-Byte */
3178#define SCOCR1LH                        _SFR_MEM8(0xF6)
3179
3180#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
3181
3182struct __reg_SCOCR1LH {
3183        unsigned int _scocr1lh : 8;     /* Symbol Counter Output Compare Register 1 LH-Byte bits */
3184};
3185
3186#define SCOCR1LH_struct _SFR_IO8_STRUCT(0xf6, struct __reg_SCOCR1LH)
3187
3188#endif /* __ASSEMBLER__ */
3189
3190  /* SCOCR1LH */
3191
3192#define SCOCR1LH0                       0
3193#define SCOCR1LH1                       1
3194#define SCOCR1LH2                       2
3195#define SCOCR1LH3                       3
3196#define SCOCR1LH4                       4
3197#define SCOCR1LH5                       5
3198#define SCOCR1LH6                       6
3199#define SCOCR1LH7                       7
3200
3201/* Symbol Counter Output Compare Register 1 HL-Byte */
3202#define SCOCR1HL                        _SFR_MEM8(0xF7)
3203
3204#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
3205
3206struct __reg_SCOCR1HL {
3207        unsigned int _scocr1hl : 8;     /* Symbol Counter Output Compare Register 1 HL-Byte bits */
3208};
3209
3210#define SCOCR1HL_struct _SFR_IO8_STRUCT(0xf7, struct __reg_SCOCR1HL)
3211
3212#endif /* __ASSEMBLER__ */
3213
3214  /* SCOCR1HL */
3215
3216#define SCOCR1HL0                       0
3217#define SCOCR1HL1                       1
3218#define SCOCR1HL2                       2
3219#define SCOCR1HL3                       3
3220#define SCOCR1HL4                       4
3221#define SCOCR1HL5                       5
3222#define SCOCR1HL6                       6
3223#define SCOCR1HL7                       7
3224
3225/* Symbol Counter Output Compare Register 1 HH-Byte */
3226#define SCOCR1HH                        _SFR_MEM8(0xF8)
3227
3228#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
3229
3230struct __reg_SCOCR1HH {
3231        unsigned int _scocr1hh : 8;     /* Symbol Counter Output Compare Register 1 HH-Byte bits */
3232};
3233
3234#define SCOCR1HH_struct _SFR_IO8_STRUCT(0xf8, struct __reg_SCOCR1HH)
3235
3236#endif /* __ASSEMBLER__ */
3237
3238  /* SCOCR1HH */
3239
3240#define SCOCR1HH0                       0
3241#define SCOCR1HH1                       1
3242#define SCOCR1HH2                       2
3243#define SCOCR1HH3                       3
3244#define SCOCR1HH4                       4
3245#define SCOCR1HH5                       5
3246#define SCOCR1HH6                       6
3247#define SCOCR1HH7                       7
3248
3249/* Timer/Counter5 Control Register A */
3250#define TCCR5A                          _SFR_MEM8(0x120)
3251
3252#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
3253
3254struct __reg_TCCR5A {
3255        unsigned int _wgm5 : 2; /* Waveform Generation Mode */
3256        unsigned int _com5c : 2;        /* Compare Output Mode for Channel C */
3257        unsigned int _com5b : 2;        /* Compare Output Mode for Channel B */
3258        unsigned int _com5a : 2;        /* Compare Output Mode for Channel A */
3259};
3260
3261#define TCCR5A_struct _SFR_IO8_STRUCT(0x120, struct __reg_TCCR5A)
3262
3263#endif /* __ASSEMBLER__ */
3264
3265  /* TCCR5A */
3266
3267#define WGM50                           0
3268#define WGM51                           1
3269#define COM5C0                          2
3270#define COM5C1                          3
3271#define COM5B0                          4
3272#define COM5B1                          5
3273#define COM5A0                          6
3274#define COM5A1                          7
3275
3276/* Timer/Counter5 Control Register B */
3277#define TCCR5B                          _SFR_MEM8(0x121)
3278
3279#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
3280
3281struct __reg_TCCR5B {
3282        unsigned int _cs5 : 3;  /* Clock Select */
3283        unsigned int _wgm5 : 2; /* Waveform Generation Mode */
3284        unsigned int : 1;
3285        unsigned int _ices5 : 1;        /* Input Capture 5 Edge Select */
3286        unsigned int _icnc5 : 1;        /* Input Capture 5 Noise Canceller */
3287};
3288
3289#define TCCR5B_struct _SFR_IO8_STRUCT(0x121, struct __reg_TCCR5B)
3290
3291#endif /* __ASSEMBLER__ */
3292
3293  /* TCCR5B */
3294
3295#define CS50                            0
3296#define CS51                            1
3297#define CS52                            2
3298#define WGM52                           3
3299#define WGM53                           4
3300#define ICES5                           6
3301#define ICNC5                           7
3302
3303/* Timer/Counter5 Control Register C */
3304#define TCCR5C                          _SFR_MEM8(0x122)
3305
3306#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
3307
3308struct __reg_TCCR5C {
3309        unsigned int : 5;
3310        unsigned int _foc5c : 1;        /* Force Output Compare for Channel C */
3311        unsigned int _foc5b : 1;        /* Force Output Compare for Channel B */
3312        unsigned int _foc5a : 1;        /* Force Output Compare for Channel A */
3313};
3314
3315#define TCCR5C_struct _SFR_IO8_STRUCT(0x122, struct __reg_TCCR5C)
3316
3317#endif /* __ASSEMBLER__ */
3318
3319  /* TCCR5C */
3320
3321#define FOC5C                           5
3322#define FOC5B                           6
3323#define FOC5A                           7
3324
3325/* Timer/Counter5  Bytes */
3326#define TCNT5                           _SFR_MEM16(0x124)
3327#define TCNT5L                          _SFR_MEM8(0x124)
3328#define TCNT5H                          _SFR_MEM8(0x125)
3329
3330/* Timer/Counter5 Input Capture Register  Bytes */
3331#define ICR5                            _SFR_MEM16(0x126)
3332#define ICR5L                           _SFR_MEM8(0x126)
3333#define ICR5H                           _SFR_MEM8(0x127)
3334
3335/* Timer/Counter5 Output Compare Register A  Bytes */
3336#define OCR5A                           _SFR_MEM16(0x128)
3337#define OCR5AL                          _SFR_MEM8(0x128)
3338#define OCR5AH                          _SFR_MEM8(0x129)
3339
3340/* Timer/Counter5 Output Compare Register B  Bytes */
3341#define OCR5B                           _SFR_MEM16(0x12A)
3342#define OCR5BL                          _SFR_MEM8(0x12A)
3343#define OCR5BH                          _SFR_MEM8(0x12B)
3344
3345/* Timer/Counter5 Output Compare Register C  Bytes */
3346#define OCR5C                           _SFR_MEM16(0x12C)
3347#define OCR5CL                          _SFR_MEM8(0x12C)
3348#define OCR5CH                          _SFR_MEM8(0x12D)
3349
3350/* Data Retention Configuration Register of SRAM 3 */
3351#define DRTRAM3                         _SFR_MEM8(0x132)
3352
3353#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
3354
3355struct __reg_DRTRAM3 {
3356        unsigned int : 4;
3357        unsigned int _endrt : 1;        /* Enable SRAM Data Retention */
3358        unsigned int : 3;
3359};
3360
3361#define DRTRAM3_struct _SFR_IO8_STRUCT(0x132, struct __reg_DRTRAM3)
3362
3363#endif /* __ASSEMBLER__ */
3364
3365  /* DRTRAM3 */
3366
3367#define ENDRT                           4
3368
3369/* Data Retention Configuration Register of SRAM 2 */
3370#define DRTRAM2                         _SFR_MEM8(0x133)
3371
3372#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
3373
3374struct __reg_DRTRAM2 {
3375        unsigned int : 4;
3376        unsigned int _endrt : 1;        /* Enable SRAM Data Retention */
3377        unsigned int : 3;
3378};
3379
3380#define DRTRAM2_struct _SFR_IO8_STRUCT(0x133, struct __reg_DRTRAM2)
3381
3382#endif /* __ASSEMBLER__ */
3383
3384  /* DRTRAM2 */
3385
3386#define ENDRT                           4
3387
3388/* Data Retention Configuration Register of SRAM 1 */
3389#define DRTRAM1                         _SFR_MEM8(0x134)
3390
3391#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
3392
3393struct __reg_DRTRAM1 {
3394        unsigned int : 4;
3395        unsigned int _endrt : 1;        /* Enable SRAM Data Retention */
3396        unsigned int : 3;
3397};
3398
3399#define DRTRAM1_struct _SFR_IO8_STRUCT(0x134, struct __reg_DRTRAM1)
3400
3401#endif /* __ASSEMBLER__ */
3402
3403  /* DRTRAM1 */
3404
3405#define ENDRT                           4
3406
3407/* Data Retention Configuration Register of SRAM 0 */
3408#define DRTRAM0                         _SFR_MEM8(0x135)
3409
3410#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
3411
3412struct __reg_DRTRAM0 {
3413        unsigned int : 4;
3414        unsigned int _endrt : 1;        /* Enable SRAM Data Retention */
3415        unsigned int : 3;
3416};
3417
3418#define DRTRAM0_struct _SFR_IO8_STRUCT(0x135, struct __reg_DRTRAM0)
3419
3420#endif /* __ASSEMBLER__ */
3421
3422  /* DRTRAM0 */
3423
3424#define ENDRT                           4
3425
3426/* Port Driver Strength Register 0 */
3427#define DPDS0                           _SFR_MEM8(0x136)
3428
3429#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
3430
3431struct __reg_DPDS0 {
3432        unsigned int _pbdrv : 2;        /* Driver Strength Port B */
3433        unsigned int _pddrv : 2;        /* Driver Strength Port D */
3434        unsigned int _pedrv : 2;        /* Driver Strength Port E */
3435        unsigned int _pfdrv : 2;        /* Driver Strength Port F */
3436};
3437
3438#define DPDS0_struct _SFR_IO8_STRUCT(0x136, struct __reg_DPDS0)
3439
3440#endif /* __ASSEMBLER__ */
3441
3442  /* DPDS0 */
3443
3444#define PBDRV0                          0
3445#define PBDRV1                          1
3446#define PDDRV0                          2
3447#define PDDRV1                          3
3448#define PEDRV0                          4
3449#define PEDRV1                          5
3450#define PFDRV0                          6
3451#define PFDRV1                          7
3452
3453/* Port Driver Strength Register 1 */
3454#define DPDS1                           _SFR_MEM8(0x137)
3455
3456#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
3457
3458struct __reg_DPDS1 {
3459        unsigned int _pgdrv : 2;        /* Driver Strength Port G */
3460        unsigned int : 6;
3461};
3462
3463#define DPDS1_struct _SFR_IO8_STRUCT(0x137, struct __reg_DPDS1)
3464
3465#endif /* __ASSEMBLER__ */
3466
3467  /* DPDS1 */
3468
3469#define PGDRV0                          0
3470#define PGDRV1                          1
3471
3472/* Transceiver Pin Register */
3473#define TRXPR                           _SFR_MEM8(0x139)
3474
3475#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
3476
3477struct __reg_TRXPR {
3478        unsigned int _trxrst : 1;       /* Force Transceiver Reset */
3479        unsigned int _slptr : 1;        /* Multi-purpose Transceiver Control Bit */
3480        unsigned int : 6;
3481};
3482
3483#define TRXPR_struct _SFR_IO8_STRUCT(0x139, struct __reg_TRXPR)
3484
3485#endif /* __ASSEMBLER__ */
3486
3487  /* TRXPR */
3488
3489#define TRXRST                          0
3490#define SLPTR                           1
3491
3492/* AES Test Control Register */
3493#define AES_TEST                        _SFR_MEM8(0x13B)
3494
3495#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
3496
3497struct __reg_AES_TEST {
3498        unsigned int _aes_ok : 1;       /* AES BIST OK */
3499        unsigned int _aes_done : 1;     /* AES BIST Done */
3500        unsigned int : 5;
3501        unsigned int _aes_tr : 1;       /* AES Test Run */
3502};
3503
3504#define AES_TEST_struct _SFR_IO8_STRUCT(0x13b, struct __reg_AES_TEST)
3505
3506#endif /* __ASSEMBLER__ */
3507
3508  /* AES_TEST */
3509
3510#define AES_OK                          0
3511#define AES_DONE                        1
3512#define AES_TR                          7
3513
3514/* AES Control Register */
3515#define AES_CON                         _SFR_MEM8(0x13C)
3516
3517#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
3518
3519struct __reg_AES_CON {
3520        unsigned int : 2;
3521        unsigned int _aes_im : 1;       /* AES Interrupt Enable */
3522        unsigned int _aes_dir : 1;      /* Set AES Operation Direction */
3523        unsigned int : 1;
3524        unsigned int _aes_mode : 1;     /* Set AES Operation Mode */
3525        unsigned int : 1;
3526        unsigned int _aes_request : 1;  /* Request AES Operation. */
3527};
3528
3529#define AES_CON_struct _SFR_IO8_STRUCT(0x13c, struct __reg_AES_CON)
3530
3531/* symbolic names */
3532
3533#define AES_DIR_DEC                     0
3534#define AES_DIR_ENC                     1
3535
3536#endif /* __ASSEMBLER__ */
3537
3538  /* AES_CON */
3539
3540#define AES_IM                          2
3541#define AES_DIR                         3
3542#define AES_MODE                        5
3543#define AES_REQUEST                     7
3544
3545/* AES Status Register */
3546#define AES_ST                          _SFR_MEM8(0x13D)
3547
3548#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
3549
3550struct __reg_AES_ST {
3551        unsigned int _aes_ry : 1;       /* AES Operation Finished with Success */
3552        unsigned int : 6;
3553        unsigned int _aes_er : 1;       /* AES Operation Finished with Error */
3554};
3555
3556#define AES_ST_struct _SFR_IO8_STRUCT(0x13d, struct __reg_AES_ST)
3557
3558#endif /* __ASSEMBLER__ */
3559
3560  /* AES_ST */
3561
3562#define AES_RY                          0
3563#define AES_ER                          7
3564
3565/* AES Plain and Cipher Text Buffer Register */
3566#define AES_STATE                       _SFR_MEM8(0x13E)
3567
3568#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
3569
3570struct __reg_AES_STATE {
3571        unsigned int _aes_state : 8;    /* AES Plain and Cipher Text Buffer */
3572};
3573
3574#define AES_STATE_struct _SFR_IO8_STRUCT(0x13e, struct __reg_AES_STATE)
3575
3576#endif /* __ASSEMBLER__ */
3577
3578  /* AES_STATE */
3579
3580#define AES_STATE0                      0
3581#define AES_STATE1                      1
3582#define AES_STATE2                      2
3583#define AES_STATE3                      3
3584#define AES_STATE4                      4
3585#define AES_STATE5                      5
3586#define AES_STATE6                      6
3587#define AES_STATE7                      7
3588
3589/* AES Encryption and Decryption Key Buffer Register */
3590#define AES_KEY                         _SFR_MEM8(0x13F)
3591
3592#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
3593
3594struct __reg_AES_KEY {
3595        unsigned int _aes_key : 8;      /* AES Encryption/Decryption Key Buffer */
3596};
3597
3598#define AES_KEY_struct _SFR_IO8_STRUCT(0x13f, struct __reg_AES_KEY)
3599
3600#endif /* __ASSEMBLER__ */
3601
3602  /* AES_KEY */
3603
3604#define AES_KEY0                        0
3605#define AES_KEY1                        1
3606#define AES_KEY2                        2
3607#define AES_KEY3                        3
3608#define AES_KEY4                        4
3609#define AES_KEY5                        5
3610#define AES_KEY6                        6
3611#define AES_KEY7                        7
3612
3613/* Transceiver Status Register */
3614#define TRX_STATUS                      _SFR_MEM8(0x141)
3615
3616#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
3617
3618struct __reg_TRX_STATUS {
3619        unsigned int _trx_status : 5;   /* Transceiver Main Status */
3620        unsigned int _tst_status : 1;   /* Test mode status */
3621        unsigned int _cca_status : 1;   /* CCA Status Result */
3622        unsigned int _cca_done : 1;     /* CCA Algorithm Status */
3623};
3624
3625#define TRX_STATUS_struct _SFR_IO8_STRUCT(0x141, struct __reg_TRX_STATUS)
3626
3627/* symbolic names */
3628
3629#define P_ON                            0
3630#define BUSY_RX                         1
3631#define BUSY_TX                         2
3632#define RX_ON                           6
3633#define TRX_OFF                         8
3634#define PLL_ON                          9
3635#define SLEEP                           15
3636#define BUSY_RX_AACK                    17
3637#define BUSY_TX_ARET                    18
3638#define RX_AACK_ON                      22
3639#define TX_ARET_ON                      25
3640#define RX_ON_NOCLK                     28
3641#define RX_AACK_ON_NOCLK                29
3642#define BUSY_RX_AACK_NOCLK              30
3643#define STATE_TRANSITION_IN_PROGRESS    31
3644#define TST_DISABLED                    0
3645#define TST_ENABLED                     1
3646#define CCA_BUSY                        0
3647#define CCA_IDLE                        1
3648#define CCA_NOT_FIN                     0
3649#define CCA_FIN                         1
3650
3651#endif /* __ASSEMBLER__ */
3652
3653  /* TRX_STATUS */
3654
3655#define TRX_STATUS0                     0
3656#define TRX_STATUS1                     1
3657#define TRX_STATUS2                     2
3658#define TRX_STATUS3                     3
3659#define TRX_STATUS4                     4
3660#define TST_STATUS                      5
3661#define CCA_STATUS                      6
3662#define CCA_DONE                        7
3663
3664/* Transceiver State Control Register */
3665#define TRX_STATE                       _SFR_MEM8(0x142)
3666
3667#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
3668
3669struct __reg_TRX_STATE {
3670        unsigned int _trx_cmd : 5;      /* State Control Command */
3671        unsigned int _trac_status : 3;  /* Transaction Status */
3672};
3673
3674#define TRX_STATE_struct _SFR_IO8_STRUCT(0x142, struct __reg_TRX_STATE)
3675
3676/* symbolic names */
3677
3678#define CMD_NOP                         0
3679#define CMD_TX_START                    2
3680#define CMD_FORCE_TRX_OFF               3
3681#define CMD_FORCE_PLL_ON                4
3682#define CMD_RX_ON                       6
3683#define CMD_TRX_OFF                     8
3684#define CMD_PLL_ON                      9
3685#define CMD_RX_AACK_ON                  22
3686#define CMD_TX_ARET_ON                  25
3687#define SUCCESS                         0
3688#define SUCCESS_DATA_PENDING            1
3689#define SUCCESS_WAIT_FOR_ACK            2
3690#define CHANNEL_ACCESS_FAILURE          3
3691#define NO_ACK                          5
3692#define INVALID                         7
3693
3694#endif /* __ASSEMBLER__ */
3695
3696  /* TRX_STATE */
3697
3698#define TRX_CMD0                        0
3699#define TRX_CMD1                        1
3700#define TRX_CMD2                        2
3701#define TRX_CMD3                        3
3702#define TRX_CMD4                        4
3703#define TRAC_STATUS0                    5
3704#define TRAC_STATUS1                    6
3705#define TRAC_STATUS2                    7
3706
3707/* Reserved */
3708#define TRX_CTRL_0                      _SFR_MEM8(0x143)
3709
3710/* Transceiver Control Register 1 */
3711#define TRX_CTRL_1                      _SFR_MEM8(0x144)
3712
3713#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
3714
3715struct __reg_TRX_CTRL_1 {
3716        unsigned int : 5;
3717        unsigned int _tx_auto_crc_on : 1;       /* Enable Automatic CRC Calculation */
3718        unsigned int _irq_2_ext_en : 1; /* Connect Frame Start IRQ to TC1 */
3719        unsigned int _pa_ext_en : 1;    /* External PA support enable */
3720};
3721
3722#define TRX_CTRL_1_struct _SFR_IO8_STRUCT(0x144, struct __reg_TRX_CTRL_1)
3723
3724#endif /* __ASSEMBLER__ */
3725
3726  /* TRX_CTRL_1 */
3727
3728#define TX_AUTO_CRC_ON                  5
3729#define IRQ_2_EXT_EN                    6
3730#define PA_EXT_EN                       7
3731
3732/* Transceiver Transmit Power Control Register */
3733#define PHY_TX_PWR                      _SFR_MEM8(0x145)
3734
3735#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
3736
3737struct __reg_PHY_TX_PWR {
3738        unsigned int _tx_pwr : 4;       /* Transmit Power Setting */
3739        unsigned int _pa_lt : 2;        /* Power Amplifier Lead Time */
3740        unsigned int _pa_buf_lt : 2;    /* Power Amplifier Buffer Lead Time */
3741};
3742
3743#define PHY_TX_PWR_struct _SFR_IO8_STRUCT(0x145, struct __reg_PHY_TX_PWR)
3744
3745/* symbolic names */
3746
3747#define PA_LT_2US                       0
3748#define PA_LT_4US                       1
3749#define PA_LT_6US                       2
3750#define PA_LT_8US                       3
3751#define PA_BUF_LT_0US                   0
3752#define PA_BUF_LT_2US                   1
3753#define PA_BUF_LT_4US                   2
3754#define PA_BUF_LT_6US                   3
3755
3756#endif /* __ASSEMBLER__ */
3757
3758  /* PHY_TX_PWR */
3759
3760#define TX_PWR0                         0
3761#define TX_PWR1                         1
3762#define TX_PWR2                         2
3763#define TX_PWR3                         3
3764#define PA_LT0                          4
3765#define PA_LT1                          5
3766#define PA_BUF_LT0                      6
3767#define PA_BUF_LT1                      7
3768
3769/* Receiver Signal Strength Indicator Register */
3770#define PHY_RSSI                        _SFR_MEM8(0x146)
3771
3772#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
3773
3774struct __reg_PHY_RSSI {
3775        unsigned int _rssi : 5; /* Receiver Signal Strength Indicator */
3776        unsigned int _rnd_value : 2;    /* Random Value */
3777        unsigned int _rx_crc_valid : 1; /* Received Frame CRC Status */
3778};
3779
3780#define PHY_RSSI_struct _SFR_IO8_STRUCT(0x146, struct __reg_PHY_RSSI)
3781
3782/* symbolic names */
3783
3784#define RSSI_MIN                        0
3785#define RSSI_MIN_PLUS_3dB               1
3786#define RSSI_MAX                        28
3787#define CRC_INVALID                     0
3788#define CRC_VALID                       1
3789
3790#endif /* __ASSEMBLER__ */
3791
3792  /* PHY_RSSI */
3793
3794#define RSSI0                           0
3795#define RSSI1                           1
3796#define RSSI2                           2
3797#define RSSI3                           3
3798#define RSSI4                           4
3799#define RND_VALUE0                      5
3800#define RND_VALUE1                      6
3801#define RX_CRC_VALID                    7
3802
3803/* Transceiver Energy Detection Level Register */
3804#define PHY_ED_LEVEL                    _SFR_MEM8(0x147)
3805
3806#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
3807
3808struct __reg_PHY_ED_LEVEL {
3809        unsigned int _ed_level : 8;     /* Energy Detection Level */
3810};
3811
3812#define PHY_ED_LEVEL_struct _SFR_IO8_STRUCT(0x147, struct __reg_PHY_ED_LEVEL)
3813
3814/* symbolic names */
3815
3816#define ED_MIN                          0
3817#define ED_MIN_PLUS_1dB                 1
3818#define ED_MAX                          84
3819#define ED_RESET                        255
3820
3821#endif /* __ASSEMBLER__ */
3822
3823  /* PHY_ED_LEVEL */
3824
3825#define ED_LEVEL0                       0
3826#define ED_LEVEL1                       1
3827#define ED_LEVEL2                       2
3828#define ED_LEVEL3                       3
3829#define ED_LEVEL4                       4
3830#define ED_LEVEL5                       5
3831#define ED_LEVEL6                       6
3832#define ED_LEVEL7                       7
3833
3834/* Transceiver Clear Channel Assessment (CCA) Control Register */
3835#define PHY_CC_CCA                      _SFR_MEM8(0x148)
3836
3837#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
3838
3839struct __reg_PHY_CC_CCA {
3840        unsigned int _channel : 5;      /* RX/TX Channel Selection */
3841        unsigned int _cca_mode : 2;     /* Select CCA Measurement Mode */
3842        unsigned int _cca_request : 1;  /* Manual CCA Measurement Request */
3843};
3844
3845#define PHY_CC_CCA_struct _SFR_IO8_STRUCT(0x148, struct __reg_PHY_CC_CCA)
3846
3847/* symbolic names */
3848
3849#define F_2405MHZ                       11
3850#define F_2410MHZ                       12
3851#define F_2415MHZ                       13
3852#define F_2420MHZ                       14
3853#define F_2425MHZ                       15
3854#define F_2430MHZ                       16
3855#define F_2435MHZ                       17
3856#define F_2440MHZ                       18
3857#define F_2445MHZ                       19
3858#define F_2450MHZ                       20
3859#define F_2455MHZ                       21
3860#define F_2460MHZ                       22
3861#define F_2465MHZ                       23
3862#define F_2470MHZ                       24
3863#define F_2475MHZ                       25
3864#define F_2480MHZ                       26
3865#define CCA_CS_OR_ED                    0
3866#define CCA_ED                          1
3867#define CCA_CS                          2
3868#define CCA_CS_AND_ED                   3
3869
3870#endif /* __ASSEMBLER__ */
3871
3872  /* PHY_CC_CCA */
3873
3874#define CHANNEL0                        0
3875#define CHANNEL1                        1
3876#define CHANNEL2                        2
3877#define CHANNEL3                        3
3878#define CHANNEL4                        4
3879#define CCA_MODE0                       5
3880#define CCA_MODE1                       6
3881#define CCA_REQUEST                     7
3882
3883/* Transceiver CCA Threshold Setting Register */
3884#define CCA_THRES                       _SFR_MEM8(0x149)
3885
3886#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
3887
3888struct __reg_CCA_THRES {
3889        unsigned int _cca_ed_thres : 4; /* ED Threshold Level for CCA Measurement */
3890        unsigned int _cca_cs_thres : 4; /* CS Threshold Level for CCA Measurement */
3891};
3892
3893#define CCA_THRES_struct _SFR_IO8_STRUCT(0x149, struct __reg_CCA_THRES)
3894
3895/* symbolic names */
3896
3897#define RSSI_BASE_VAL_PLUS_0DB          0
3898#define RSSI_BASE_VAL_PLUS_2DB          1
3899#define RSSI_BASE_VAL_PLUS_4DB          2
3900#define RSSI_BASE_VAL_PLUS_6DB          3
3901#define RSSI_BASE_VAL_PLUS_8DB          4
3902#define RSSI_BASE_VAL_PLUS_10DB         5
3903#define RSSI_BASE_VAL_PLUS_12DB         6
3904#define RSSI_BASE_VAL_PLUS_14DB         7
3905#define RSSI_BASE_VAL_PLUS_16DB         8
3906#define RSSI_BASE_VAL_PLUS_18DB         9
3907#define RSSI_BASE_VAL_PLUS_20DB         10
3908#define RSSI_BASE_VAL_PLUS_22DB         11
3909#define RSSI_BASE_VAL_PLUS_24DB         12
3910#define RSSI_BASE_VAL_PLUS_26DB         13
3911#define RSSI_BASE_VAL_PLUS_28DB         14
3912#define RSSI_BASE_VAL_PLUS_30DB         15
3913#define CCA_CS_THRES_MIN                9
3914#define CCA_CS_THRES_MAX                15
3915
3916#endif /* __ASSEMBLER__ */
3917
3918  /* CCA_THRES */
3919
3920#define CCA_ED_THRES0                   0
3921#define CCA_ED_THRES1                   1
3922#define CCA_ED_THRES2                   2
3923#define CCA_ED_THRES3                   3
3924#define CCA_CS_THRES0                   4
3925#define CCA_CS_THRES1                   5
3926#define CCA_CS_THRES2                   6
3927#define CCA_CS_THRES3                   7
3928
3929/* Transceiver Receive Control Register */
3930#define RX_CTRL                         _SFR_MEM8(0x14A)
3931
3932#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
3933
3934struct __reg_RX_CTRL {
3935        unsigned int _pdt_thres : 4;    /* Receiver Sensitivity Control */
3936        unsigned int : 4;
3937};
3938
3939#define RX_CTRL_struct _SFR_IO8_STRUCT(0x14a, struct __reg_RX_CTRL)
3940
3941/* symbolic names */
3942
3943#define PDT_THRES_ANT_DIV_OFF           7
3944#define PDT_THRES_ANT_DIV_ON            3
3945
3946#endif /* __ASSEMBLER__ */
3947
3948  /* RX_CTRL */
3949
3950#define PDT_THRES0                      0
3951#define PDT_THRES1                      1
3952#define PDT_THRES2                      2
3953#define PDT_THRES3                      3
3954
3955/* Start of Frame Delimiter Value Register */
3956#define SFD_VALUE                       _SFR_MEM8(0x14B)
3957
3958#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
3959
3960struct __reg_SFD_VALUE {
3961        unsigned int _sfd_value : 8;    /* Start of Frame Delimiter Value */
3962};
3963
3964#define SFD_VALUE_struct _SFR_IO8_STRUCT(0x14b, struct __reg_SFD_VALUE)
3965
3966/* symbolic names */
3967
3968#define IEEE_SFD                        167
3969
3970#endif /* __ASSEMBLER__ */
3971
3972  /* SFD_VALUE */
3973
3974#define SFD_VALUE0                      0
3975#define SFD_VALUE1                      1
3976#define SFD_VALUE2                      2
3977#define SFD_VALUE3                      3
3978#define SFD_VALUE4                      4
3979#define SFD_VALUE5                      5
3980#define SFD_VALUE6                      6
3981#define SFD_VALUE7                      7
3982
3983/* Transceiver Control Register 2 */
3984#define TRX_CTRL_2                      _SFR_MEM8(0x14C)
3985
3986#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
3987
3988struct __reg_TRX_CTRL_2 {
3989        unsigned int _oqpsk_data_rate : 2;      /* Data Rate Selection */
3990        unsigned int : 5;
3991        unsigned int _rx_safe_mode : 1; /* RX Safe Mode */
3992};
3993
3994#define TRX_CTRL_2_struct _SFR_IO8_STRUCT(0x14c, struct __reg_TRX_CTRL_2)
3995
3996/* symbolic names */
3997
3998#define RATE_250KB                      0
3999#define RATE_500KB                      1
4000#define RATE_1000KB                     2
4001#define RATE_2000KB                     3
4002
4003#endif /* __ASSEMBLER__ */
4004
4005  /* TRX_CTRL_2 */
4006
4007#define OQPSK_DATA_RATE0                0
4008#define OQPSK_DATA_RATE1                1
4009#define RX_SAFE_MODE                    7
4010
4011/* Antenna Diversity Control Register */
4012#define ANT_DIV                         _SFR_MEM8(0x14D)
4013
4014#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
4015
4016struct __reg_ANT_DIV {
4017        unsigned int _ant_ctrl : 2;     /* Static Antenna Diversity Switch Control */
4018        unsigned int _ant_ext_sw_en : 1;        /* Enable External Antenna Switch Control */
4019        unsigned int _ant_div_en : 1;   /* Enable Antenna Diversity */
4020        unsigned int : 3;
4021        unsigned int _ant_sel : 1;      /* Antenna Diversity Antenna Status */
4022};
4023
4024#define ANT_DIV_struct _SFR_IO8_STRUCT(0x14d, struct __reg_ANT_DIV)
4025
4026/* symbolic names */
4027
4028#define ANT_1                           1
4029#define ANT_0                           2
4030#define ANT_RESET                       3
4031#define ANT_DIV_EXT_SW_DIS              0
4032#define ANT_DIV_EXT_SW_EN               1
4033#define ANT_DIV_DIS                     0
4034#define ANT_DIV_EN                      1
4035#define ANTENNA_0                       1
4036#define ANTENNA_1                       2
4037#define ANTENNA_X                       3
4038
4039#endif /* __ASSEMBLER__ */
4040
4041  /* ANT_DIV */
4042
4043#define ANT_CTRL0                       0
4044#define ANT_CTRL1                       1
4045#define ANT_EXT_SW_EN                   2
4046#define ANT_DIV_EN                      3
4047#define ANT_SEL                         7
4048
4049/* Transceiver Interrupt Enable Register */
4050#define IRQ_MASK                        _SFR_MEM8(0x14E)
4051
4052#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
4053
4054struct __reg_IRQ_MASK {
4055        unsigned int _pll_lock_en : 1;  /* PLL Lock Interrupt Enable */
4056        unsigned int _pll_unlock_en : 1;        /* PLL Unlock Interrupt Enable */
4057        unsigned int _rx_start_en : 1;  /* RX_START Interrupt Enable */
4058        unsigned int _rx_end_en : 1;    /* RX_END Interrupt Enable */
4059        unsigned int _cca_ed_ready_en : 1;      /* End of ED Measurement Interrupt Enable */
4060        unsigned int _ami_en : 1;       /* Address Match Interrupt Enable */
4061        unsigned int _tx_end_en : 1;    /* TX_END Interrupt Enable */
4062        unsigned int _awake_en : 1;     /* Awake Interrupt Enable */
4063};
4064
4065#define IRQ_MASK_struct _SFR_IO8_STRUCT(0x14e, struct __reg_IRQ_MASK)
4066
4067#endif /* __ASSEMBLER__ */
4068
4069  /* IRQ_MASK */
4070
4071#define PLL_LOCK_EN                     0
4072#define PLL_UNLOCK_EN                   1
4073#define RX_START_EN                     2
4074#define RX_END_EN                       3
4075#define CCA_ED_READY_EN                 4
4076#define AMI_EN                          5
4077#define TX_END_EN                       6
4078#define AWAKE_EN                        7
4079
4080/* Transceiver Interrupt Status Register */
4081#define IRQ_STATUS                      _SFR_MEM8(0x14F)
4082
4083#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
4084
4085struct __reg_IRQ_STATUS {
4086        unsigned int _pll_lock : 1;     /* PLL Lock Interrupt Status */
4087        unsigned int _pll_unlock : 1;   /* PLL Unlock Interrupt Status */
4088        unsigned int _rx_start : 1;     /* RX_START Interrupt Status */
4089        unsigned int _rx_end : 1;       /* RX_END Interrupt Status */
4090        unsigned int _cca_ed_ready : 1; /* End of ED Measurement Interrupt Status */
4091        unsigned int _ami : 1;  /* Address Match Interrupt Status */
4092        unsigned int _tx_end : 1;       /* TX_END Interrupt Status */
4093        unsigned int _awake : 1;        /* Awake Interrupt Status */
4094};
4095
4096#define IRQ_STATUS_struct _SFR_IO8_STRUCT(0x14f, struct __reg_IRQ_STATUS)
4097
4098#endif /* __ASSEMBLER__ */
4099
4100  /* IRQ_STATUS */
4101
4102#define PLL_LOCK                        0
4103#define PLL_UNLOCK                      1
4104#define RX_START                        2
4105#define RX_END                          3
4106#define CCA_ED_READY                    4
4107#define AMI                             5
4108#define TX_END                          6
4109#define AWAKE                           7
4110
4111/* Voltage Regulator Control and Status Register */
4112#define VREG_CTRL                       _SFR_MEM8(0x150)
4113
4114#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
4115
4116struct __reg_VREG_CTRL {
4117        unsigned int _dvreg_trim : 2;   /* Adjust DVDD Supply Voltage */
4118        unsigned int _dvdd_ok : 1;      /* DVDD Supply Voltage Valid */
4119        unsigned int _dvreg_ext : 1;    /* Use External DVDD Regulator */
4120        unsigned int _avreg_trim : 2;   /* Adjust AVDD Supply Voltage */
4121        unsigned int _avdd_ok : 1;      /* AVDD Supply Voltage Valid */
4122        unsigned int _avreg_ext : 1;    /* Use External AVDD Regulator */
4123};
4124
4125#define VREG_CTRL_struct _SFR_IO8_STRUCT(0x150, struct __reg_VREG_CTRL)
4126
4127/* symbolic names */
4128
4129#define DVREG_1_80V                     0
4130#define DVREG_1_75V                     1
4131#define DVREG_1_84V                     2
4132#define DVREG_1_88V                     3
4133#define DVDD_NOT_OK                     0
4134#define DVDD_OK                         1
4135#define DVDD_INT                        0
4136#define DVDD_EXT                        1
4137#define AVREG_1_80V                     0
4138#define AVREG_1_75V                     1
4139#define AVREG_1_84V                     2
4140#define AVREG_1_88V                     3
4141#define AVDD_NOT_OK                     0
4142#define AVDD_OK                         1
4143#define AVDD_INT                        0
4144#define AVDD_EXT                        1
4145
4146#endif /* __ASSEMBLER__ */
4147
4148  /* VREG_CTRL */
4149
4150#define DVREG_TRIM0                     0
4151#define DVREG_TRIM1                     1
4152#define DVDD_OK                         2
4153#define DVREG_EXT                       3
4154#define AVREG_TRIM0                     4
4155#define AVREG_TRIM1                     5
4156#define AVDD_OK                         6
4157#define AVREG_EXT                       7
4158
4159/* Battery Monitor Control and Status Register */
4160#define BATMON                          _SFR_MEM8(0x151)
4161
4162#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
4163
4164struct __reg_BATMON {
4165        unsigned int _batmon_vth : 4;   /* Battery Monitor Threshold Voltage */
4166        unsigned int _batmon_hr : 1;    /* Battery Monitor Voltage Range */
4167        unsigned int _batmon_ok : 1;    /* Battery Monitor Status */
4168        unsigned int _bat_low_en : 1;   /* Battery Monitor Interrupt Enable */
4169        unsigned int _bat_low : 1;      /* Battery Monitor Interrupt Status */
4170};
4171
4172#define BATMON_struct _SFR_IO8_STRUCT(0x151, struct __reg_BATMON)
4173
4174/* symbolic names */
4175
4176#define BATMON_HR_DIS                   0
4177#define BATMON_HR_EN                    1
4178#define BATMON_LOW                      0
4179#define BATMON_OK                       1
4180
4181#endif /* __ASSEMBLER__ */
4182
4183  /* BATMON */
4184
4185#define BATMON_VTH0                     0
4186#define BATMON_VTH1                     1
4187#define BATMON_VTH2                     2
4188#define BATMON_VTH3                     3
4189#define BATMON_HR                       4
4190#define BATMON_OK                       5
4191#define BAT_LOW_EN                      6
4192#define BAT_LOW                         7
4193
4194/* Crystal Oscillator Control Register */
4195#define XOSC_CTRL                       _SFR_MEM8(0x152)
4196
4197#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
4198
4199struct __reg_XOSC_CTRL {
4200        unsigned int _xtal_trim : 4;    /* Crystal Oscillator Load Capacitance Trimming */
4201        unsigned int _xtal_mode : 4;    /* Crystal Oscillator Operating Mode */
4202};
4203
4204#define XOSC_CTRL_struct _SFR_IO8_STRUCT(0x152, struct __reg_XOSC_CTRL)
4205
4206/* symbolic names */
4207
4208#define XTAL_TRIM_MIN                   0
4209#define XTAL_TRIM_MAX                   15
4210
4211#endif /* __ASSEMBLER__ */
4212
4213  /* XOSC_CTRL */
4214
4215#define XTAL_TRIM0                      0
4216#define XTAL_TRIM1                      1
4217#define XTAL_TRIM2                      2
4218#define XTAL_TRIM3                      3
4219#define XTAL_MODE0                      4
4220#define XTAL_MODE1                      5
4221#define XTAL_MODE2                      6
4222#define XTAL_MODE3                      7
4223
4224/* Transceiver Receiver Sensitivity Control Register */
4225#define RX_SYN                          _SFR_MEM8(0x155)
4226
4227#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
4228
4229struct __reg_RX_SYN {
4230        unsigned int _rx_pdt_level : 4; /* Reduce Receiver Sensitivity */
4231        unsigned int : 3;
4232        unsigned int _rx_pdt_dis : 1;   /* Prevent Frame Reception */
4233};
4234
4235#define RX_SYN_struct _SFR_IO8_STRUCT(0x155, struct __reg_RX_SYN)
4236
4237/* symbolic names */
4238
4239#define RX_PDT_LEVEL_MIN                0
4240#define RX_PDT_LEVEL_MAX                15
4241
4242#endif /* __ASSEMBLER__ */
4243
4244  /* RX_SYN */
4245
4246#define RX_PDT_LEVEL0                   0
4247#define RX_PDT_LEVEL1                   1
4248#define RX_PDT_LEVEL2                   2
4249#define RX_PDT_LEVEL3                   3
4250#define RX_PDT_DIS                      7
4251
4252/* Transceiver Acknowledgment Frame Control Register 1 */
4253#define XAH_CTRL_1                      _SFR_MEM8(0x157)
4254
4255#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
4256
4257struct __reg_XAH_CTRL_1 {
4258        unsigned int : 1;
4259        unsigned int _aack_prom_mode : 1;       /* Enable Acknowledgment in Promiscuous Mode */
4260        unsigned int _aack_ack_time : 1;        /* Reduce Acknowledgment Time */
4261        unsigned int : 1;
4262        unsigned int _aack_upld_res_ft : 1;     /* Process Reserved Frames */
4263        unsigned int _aack_fltr_res_ft : 1;     /* Filter Reserved Frames */
4264        unsigned int : 2;
4265};
4266
4267#define XAH_CTRL_1_struct _SFR_IO8_STRUCT(0x157, struct __reg_XAH_CTRL_1)
4268
4269/* symbolic names */
4270
4271#define AACK_ACK_TIME_12_SYM            0
4272#define AACK_ACK_TIME_2_SYM             1
4273
4274#endif /* __ASSEMBLER__ */
4275
4276  /* XAH_CTRL_1 */
4277
4278#define AACK_PROM_MODE                  1
4279#define AACK_ACK_TIME                   2
4280#define AACK_UPLD_RES_FT                4
4281#define AACK_FLTR_RES_FT                5
4282
4283/* Transceiver Filter Tuning Control Register */
4284#define FTN_CTRL                        _SFR_MEM8(0x158)
4285
4286#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
4287
4288struct __reg_FTN_CTRL {
4289        unsigned int : 7;
4290        unsigned int _ftn_start : 1;    /* Start Calibration Loop of Filter Tuning Network */
4291};
4292
4293#define FTN_CTRL_struct _SFR_IO8_STRUCT(0x158, struct __reg_FTN_CTRL)
4294
4295#endif /* __ASSEMBLER__ */
4296
4297  /* FTN_CTRL */
4298
4299#define FTN_START                       7
4300
4301/* Transceiver Center Frequency Calibration Control Register */
4302#define PLL_CF                          _SFR_MEM8(0x15A)
4303
4304#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
4305
4306struct __reg_PLL_CF {
4307        unsigned int : 7;
4308        unsigned int _pll_cf_start : 1; /* Start Center Frequency Calibration */
4309};
4310
4311#define PLL_CF_struct _SFR_IO8_STRUCT(0x15a, struct __reg_PLL_CF)
4312
4313#endif /* __ASSEMBLER__ */
4314
4315  /* PLL_CF */
4316
4317#define PLL_CF_START                    7
4318
4319/* Transceiver Delay Cell Calibration Control Register */
4320#define PLL_DCU                         _SFR_MEM8(0x15B)
4321
4322#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
4323
4324struct __reg_PLL_DCU {
4325        unsigned int : 7;
4326        unsigned int _pll_dcu_start : 1;        /* Start Delay Cell Calibration */
4327};
4328
4329#define PLL_DCU_struct _SFR_IO8_STRUCT(0x15b, struct __reg_PLL_DCU)
4330
4331#endif /* __ASSEMBLER__ */
4332
4333  /* PLL_DCU */
4334
4335#define PLL_DCU_START                   7
4336
4337/* Device Identification Register (Part Number) */
4338#define PART_NUM                        _SFR_MEM8(0x15C)
4339
4340#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
4341
4342struct __reg_PART_NUM {
4343        unsigned int _part_num : 8;     /* Part Number */
4344};
4345
4346#define PART_NUM_struct _SFR_IO8_STRUCT(0x15c, struct __reg_PART_NUM)
4347
4348/* symbolic names */
4349
4350#define RF210                           0
4351#define RF220                           1
4352#define RF230                           2
4353#define RF231                           3
4354#define ATmega128RFA1                   131
4355
4356#endif /* __ASSEMBLER__ */
4357
4358  /* PART_NUM */
4359
4360#define PART_NUM0                       0
4361#define PART_NUM1                       1
4362#define PART_NUM2                       2
4363#define PART_NUM3                       3
4364#define PART_NUM4                       4
4365#define PART_NUM5                       5
4366#define PART_NUM6                       6
4367#define PART_NUM7                       7
4368
4369/* Device Identification Register (Version Number) */
4370#define VERSION_NUM                     _SFR_MEM8(0x15D)
4371
4372#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
4373
4374struct __reg_VERSION_NUM {
4375        unsigned int _version_num : 8;  /* Version Number */
4376};
4377
4378#define VERSION_NUM_struct _SFR_IO8_STRUCT(0x15d, struct __reg_VERSION_NUM)
4379
4380/* symbolic names */
4381
4382#define REV_A                           2
4383#define REV_B                           3
4384
4385#endif /* __ASSEMBLER__ */
4386
4387  /* VERSION_NUM */
4388
4389#define VERSION_NUM0                    0
4390#define VERSION_NUM1                    1
4391#define VERSION_NUM2                    2
4392#define VERSION_NUM3                    3
4393#define VERSION_NUM4                    4
4394#define VERSION_NUM5                    5
4395#define VERSION_NUM6                    6
4396#define VERSION_NUM7                    7
4397
4398/* Device Identification Register (Manufacture ID Low Byte) */
4399#define MAN_ID_0                        _SFR_MEM8(0x15E)
4400
4401#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
4402
4403struct __reg_MAN_ID_0 {
4404        unsigned int _man_id_0 : 8;     /* Manufacturer ID (Low Byte) */
4405};
4406
4407#define MAN_ID_0_struct _SFR_IO8_STRUCT(0x15e, struct __reg_MAN_ID_0)
4408
4409/* symbolic names */
4410
4411#define ATMEL_BYTE_0                    31
4412
4413#endif /* __ASSEMBLER__ */
4414
4415  /* MAN_ID_0 */
4416
4417#define MAN_ID_00                       0
4418#define MAN_ID_01                       1
4419#define MAN_ID_02                       2
4420#define MAN_ID_03                       3
4421#define MAN_ID_04                       4
4422#define MAN_ID_05                       5
4423#define MAN_ID_06                       6
4424#define MAN_ID_07                       7
4425
4426/* Device Identification Register (Manufacture ID High Byte) */
4427#define MAN_ID_1                        _SFR_MEM8(0x15F)
4428
4429#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
4430
4431struct __reg_MAN_ID_1 {
4432        unsigned int _man_id_1 : 8;     /* Manufacturer ID (High Byte) */
4433};
4434
4435#define MAN_ID_1_struct _SFR_IO8_STRUCT(0x15f, struct __reg_MAN_ID_1)
4436
4437/* symbolic names */
4438
4439#define ATMEL_BYTE_1                    0
4440
4441#endif /* __ASSEMBLER__ */
4442
4443  /* MAN_ID_1 */
4444
4445#define MAN_ID_10                       0
4446#define MAN_ID_11                       1
4447#define MAN_ID_12                       2
4448#define MAN_ID_13                       3
4449#define MAN_ID_14                       4
4450#define MAN_ID_15                       5
4451#define MAN_ID_16                       6
4452#define MAN_ID_17                       7
4453
4454/* Transceiver MAC Short Address Register (Low Byte) */
4455#define SHORT_ADDR_0                    _SFR_MEM8(0x160)
4456
4457#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
4458
4459struct __reg_SHORT_ADDR_0 {
4460        unsigned int _short_addr_0 : 8; /* MAC Short Address */
4461};
4462
4463#define SHORT_ADDR_0_struct _SFR_IO8_STRUCT(0x160, struct __reg_SHORT_ADDR_0)
4464
4465#endif /* __ASSEMBLER__ */
4466
4467  /* SHORT_ADDR_0 */
4468
4469#define SHORT_ADDR_00                   0
4470#define SHORT_ADDR_01                   1
4471#define SHORT_ADDR_02                   2
4472#define SHORT_ADDR_03                   3
4473#define SHORT_ADDR_04                   4
4474#define SHORT_ADDR_05                   5
4475#define SHORT_ADDR_06                   6
4476#define SHORT_ADDR_07                   7
4477
4478/* Transceiver MAC Short Address Register (High Byte) */
4479#define SHORT_ADDR_1                    _SFR_MEM8(0x161)
4480
4481#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
4482
4483struct __reg_SHORT_ADDR_1 {
4484        unsigned int _short_addr_1 : 8; /* MAC Short Address */
4485};
4486
4487#define SHORT_ADDR_1_struct _SFR_IO8_STRUCT(0x161, struct __reg_SHORT_ADDR_1)
4488
4489#endif /* __ASSEMBLER__ */
4490
4491  /* SHORT_ADDR_1 */
4492
4493#define SHORT_ADDR_10                   0
4494#define SHORT_ADDR_11                   1
4495#define SHORT_ADDR_12                   2
4496#define SHORT_ADDR_13                   3
4497#define SHORT_ADDR_14                   4
4498#define SHORT_ADDR_15                   5
4499#define SHORT_ADDR_16                   6
4500#define SHORT_ADDR_17                   7
4501
4502/* Transceiver Personal Area Network ID Register (Low Byte) */
4503#define PAN_ID_0                        _SFR_MEM8(0x162)
4504
4505#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
4506
4507struct __reg_PAN_ID_0 {
4508        unsigned int _pan_id_0 : 8;     /* MAC Personal Area Network ID */
4509};
4510
4511#define PAN_ID_0_struct _SFR_IO8_STRUCT(0x162, struct __reg_PAN_ID_0)
4512
4513#endif /* __ASSEMBLER__ */
4514
4515  /* PAN_ID_0 */
4516
4517#define PAN_ID_00                       0
4518#define PAN_ID_01                       1
4519#define PAN_ID_02                       2
4520#define PAN_ID_03                       3
4521#define PAN_ID_04                       4
4522#define PAN_ID_05                       5
4523#define PAN_ID_06                       6
4524#define PAN_ID_07                       7
4525
4526/* Transceiver Personal Area Network ID Register (High Byte) */
4527#define PAN_ID_1                        _SFR_MEM8(0x163)
4528
4529#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
4530
4531struct __reg_PAN_ID_1 {
4532        unsigned int _pan_id_1 : 8;     /* MAC Personal Area Network ID */
4533};
4534
4535#define PAN_ID_1_struct _SFR_IO8_STRUCT(0x163, struct __reg_PAN_ID_1)
4536
4537#endif /* __ASSEMBLER__ */
4538
4539  /* PAN_ID_1 */
4540
4541#define PAN_ID_10                       0
4542#define PAN_ID_11                       1
4543#define PAN_ID_12                       2
4544#define PAN_ID_13                       3
4545#define PAN_ID_14                       4
4546#define PAN_ID_15                       5
4547#define PAN_ID_16                       6
4548#define PAN_ID_17                       7
4549
4550/* Transceiver MAC IEEE Address Register 0 */
4551#define IEEE_ADDR_0                     _SFR_MEM8(0x164)
4552
4553#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
4554
4555struct __reg_IEEE_ADDR_0 {
4556        unsigned int _ieee_addr_0 : 8;  /* MAC IEEE Address */
4557};
4558
4559#define IEEE_ADDR_0_struct _SFR_IO8_STRUCT(0x164, struct __reg_IEEE_ADDR_0)
4560
4561#endif /* __ASSEMBLER__ */
4562
4563  /* IEEE_ADDR_0 */
4564
4565#define IEEE_ADDR_00                    0
4566#define IEEE_ADDR_01                    1
4567#define IEEE_ADDR_02                    2
4568#define IEEE_ADDR_03                    3
4569#define IEEE_ADDR_04                    4
4570#define IEEE_ADDR_05                    5
4571#define IEEE_ADDR_06                    6
4572#define IEEE_ADDR_07                    7
4573
4574/* Transceiver MAC IEEE Address Register 1 */
4575#define IEEE_ADDR_1                     _SFR_MEM8(0x165)
4576
4577#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
4578
4579struct __reg_IEEE_ADDR_1 {
4580        unsigned int _ieee_addr_1 : 8;  /* MAC IEEE Address */
4581};
4582
4583#define IEEE_ADDR_1_struct _SFR_IO8_STRUCT(0x165, struct __reg_IEEE_ADDR_1)
4584
4585#endif /* __ASSEMBLER__ */
4586
4587  /* IEEE_ADDR_1 */
4588
4589#define IEEE_ADDR_10                    0
4590#define IEEE_ADDR_11                    1
4591#define IEEE_ADDR_12                    2
4592#define IEEE_ADDR_13                    3
4593#define IEEE_ADDR_14                    4
4594#define IEEE_ADDR_15                    5
4595#define IEEE_ADDR_16                    6
4596#define IEEE_ADDR_17                    7
4597
4598/* Transceiver MAC IEEE Address Register 2 */
4599#define IEEE_ADDR_2                     _SFR_MEM8(0x166)
4600
4601#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
4602
4603struct __reg_IEEE_ADDR_2 {
4604        unsigned int _ieee_addr_2 : 8;  /* MAC IEEE Address */
4605};
4606
4607#define IEEE_ADDR_2_struct _SFR_IO8_STRUCT(0x166, struct __reg_IEEE_ADDR_2)
4608
4609#endif /* __ASSEMBLER__ */
4610
4611  /* IEEE_ADDR_2 */
4612
4613#define IEEE_ADDR_20                    0
4614#define IEEE_ADDR_21                    1
4615#define IEEE_ADDR_22                    2
4616#define IEEE_ADDR_23                    3
4617#define IEEE_ADDR_24                    4
4618#define IEEE_ADDR_25                    5
4619#define IEEE_ADDR_26                    6
4620#define IEEE_ADDR_27                    7
4621
4622/* Transceiver MAC IEEE Address Register 3 */
4623#define IEEE_ADDR_3                     _SFR_MEM8(0x167)
4624
4625#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
4626
4627struct __reg_IEEE_ADDR_3 {
4628        unsigned int _ieee_addr_3 : 8;  /* MAC IEEE Address */
4629};
4630
4631#define IEEE_ADDR_3_struct _SFR_IO8_STRUCT(0x167, struct __reg_IEEE_ADDR_3)
4632
4633#endif /* __ASSEMBLER__ */
4634
4635  /* IEEE_ADDR_3 */
4636
4637#define IEEE_ADDR_30                    0
4638#define IEEE_ADDR_31                    1
4639#define IEEE_ADDR_32                    2
4640#define IEEE_ADDR_33                    3
4641#define IEEE_ADDR_34                    4
4642#define IEEE_ADDR_35                    5
4643#define IEEE_ADDR_36                    6
4644#define IEEE_ADDR_37                    7
4645
4646/* Transceiver MAC IEEE Address Register 4 */
4647#define IEEE_ADDR_4                     _SFR_MEM8(0x168)
4648
4649#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
4650
4651struct __reg_IEEE_ADDR_4 {
4652        unsigned int _ieee_addr_4 : 8;  /* MAC IEEE Address */
4653};
4654
4655#define IEEE_ADDR_4_struct _SFR_IO8_STRUCT(0x168, struct __reg_IEEE_ADDR_4)
4656
4657#endif /* __ASSEMBLER__ */
4658
4659  /* IEEE_ADDR_4 */
4660
4661#define IEEE_ADDR_40                    0
4662#define IEEE_ADDR_41                    1
4663#define IEEE_ADDR_42                    2
4664#define IEEE_ADDR_43                    3
4665#define IEEE_ADDR_44                    4
4666#define IEEE_ADDR_45                    5
4667#define IEEE_ADDR_46                    6
4668#define IEEE_ADDR_47                    7
4669
4670/* Transceiver MAC IEEE Address Register 5 */
4671#define IEEE_ADDR_5                     _SFR_MEM8(0x169)
4672
4673#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
4674
4675struct __reg_IEEE_ADDR_5 {
4676        unsigned int _ieee_addr_5 : 8;  /* MAC IEEE Address */
4677};
4678
4679#define IEEE_ADDR_5_struct _SFR_IO8_STRUCT(0x169, struct __reg_IEEE_ADDR_5)
4680
4681#endif /* __ASSEMBLER__ */
4682
4683  /* IEEE_ADDR_5 */
4684
4685#define IEEE_ADDR_50                    0
4686#define IEEE_ADDR_51                    1
4687#define IEEE_ADDR_52                    2
4688#define IEEE_ADDR_53                    3
4689#define IEEE_ADDR_54                    4
4690#define IEEE_ADDR_55                    5
4691#define IEEE_ADDR_56                    6
4692#define IEEE_ADDR_57                    7
4693
4694/* Transceiver MAC IEEE Address Register 6 */
4695#define IEEE_ADDR_6                     _SFR_MEM8(0x16A)
4696
4697#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
4698
4699struct __reg_IEEE_ADDR_6 {
4700        unsigned int _ieee_addr_6 : 8;  /* MAC IEEE Address */
4701};
4702
4703#define IEEE_ADDR_6_struct _SFR_IO8_STRUCT(0x16a, struct __reg_IEEE_ADDR_6)
4704
4705#endif /* __ASSEMBLER__ */
4706
4707  /* IEEE_ADDR_6 */
4708
4709#define IEEE_ADDR_60                    0
4710#define IEEE_ADDR_61                    1
4711#define IEEE_ADDR_62                    2
4712#define IEEE_ADDR_63                    3
4713#define IEEE_ADDR_64                    4
4714#define IEEE_ADDR_65                    5
4715#define IEEE_ADDR_66                    6
4716#define IEEE_ADDR_67                    7
4717
4718/* Transceiver MAC IEEE Address Register 7 */
4719#define IEEE_ADDR_7                     _SFR_MEM8(0x16B)
4720
4721#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
4722
4723struct __reg_IEEE_ADDR_7 {
4724        unsigned int _ieee_addr_7 : 8;  /* MAC IEEE Address */
4725};
4726
4727#define IEEE_ADDR_7_struct _SFR_IO8_STRUCT(0x16b, struct __reg_IEEE_ADDR_7)
4728
4729#endif /* __ASSEMBLER__ */
4730
4731  /* IEEE_ADDR_7 */
4732
4733#define IEEE_ADDR_70                    0
4734#define IEEE_ADDR_71                    1
4735#define IEEE_ADDR_72                    2
4736#define IEEE_ADDR_73                    3
4737#define IEEE_ADDR_74                    4
4738#define IEEE_ADDR_75                    5
4739#define IEEE_ADDR_76                    6
4740#define IEEE_ADDR_77                    7
4741
4742/* Transceiver Extended Operating Mode Control Register */
4743#define XAH_CTRL_0                      _SFR_MEM8(0x16C)
4744
4745#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
4746
4747struct __reg_XAH_CTRL_0 {
4748        unsigned int _slotted_operation : 1;    /* Set Slotted Acknowledgment */
4749        unsigned int _max_csma_retries : 3;     /* Maximum Number of CSMA-CA Procedure Repetition Attempts */
4750        unsigned int _max_frame_retries : 4;    /* Maximum Number of Frame Re-transmission Attempts */
4751};
4752
4753#define XAH_CTRL_0_struct _SFR_IO8_STRUCT(0x16c, struct __reg_XAH_CTRL_0)
4754
4755/* symbolic names */
4756
4757#define SLOTTED_OP_DIS                  0
4758#define SLOTTED_OP_EN                   1
4759
4760#endif /* __ASSEMBLER__ */
4761
4762  /* XAH_CTRL_0 */
4763
4764#define SLOTTED_OPERATION               0
4765#define MAX_CSMA_RETRIES0               1
4766#define MAX_CSMA_RETRIES1               2
4767#define MAX_CSMA_RETRIES2               3
4768#define MAX_FRAME_RETRIES0              4
4769#define MAX_FRAME_RETRIES1              5
4770#define MAX_FRAME_RETRIES2              6
4771#define MAX_FRAME_RETRIES3              7
4772
4773/* Transceiver CSMA-CA Random Number Generator Seed Register */
4774#define CSMA_SEED_0                     _SFR_MEM8(0x16D)
4775
4776#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
4777
4778struct __reg_CSMA_SEED_0 {
4779        unsigned int _csma_seed_0 : 8;  /* Seed Value for CSMA Random Number Generator */
4780};
4781
4782#define CSMA_SEED_0_struct _SFR_IO8_STRUCT(0x16d, struct __reg_CSMA_SEED_0)
4783
4784#endif /* __ASSEMBLER__ */
4785
4786  /* CSMA_SEED_0 */
4787
4788#define CSMA_SEED_00                    0
4789#define CSMA_SEED_01                    1
4790#define CSMA_SEED_02                    2
4791#define CSMA_SEED_03                    3
4792#define CSMA_SEED_04                    4
4793#define CSMA_SEED_05                    5
4794#define CSMA_SEED_06                    6
4795#define CSMA_SEED_07                    7
4796
4797/* Transceiver Acknowledgment Frame Control Register 2 */
4798#define CSMA_SEED_1                     _SFR_MEM8(0x16E)
4799
4800#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
4801
4802struct __reg_CSMA_SEED_1 {
4803        unsigned int _csma_seed_1 : 3;  /* Seed Value for CSMA Random Number Generator */
4804        unsigned int _aack_i_am_coord : 1;      /* Set Personal Area Network Coordinator */
4805        unsigned int _aack_dis_ack : 1; /* Disable Acknowledgment Frame Transmission */
4806        unsigned int _aack_set_pd : 1;  /* Set Frame Pending Sub-field */
4807        unsigned int _aack_fvn_mode : 2;        /* Acknowledgment Frame Filter Mode */
4808};
4809
4810#define CSMA_SEED_1_struct _SFR_IO8_STRUCT(0x16e, struct __reg_CSMA_SEED_1)
4811
4812#endif /* __ASSEMBLER__ */
4813
4814  /* CSMA_SEED_1 */
4815
4816#define CSMA_SEED_10                    0
4817#define CSMA_SEED_11                    1
4818#define CSMA_SEED_12                    2
4819#define AACK_I_AM_COORD                 3
4820#define AACK_DIS_ACK                    4
4821#define AACK_SET_PD                     5
4822#define AACK_FVN_MODE0                  6
4823#define AACK_FVN_MODE1                  7
4824
4825/* Transceiver CSMA-CA Back-off Exponent Control Register */
4826#define CSMA_BE                         _SFR_MEM8(0x16F)
4827
4828#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
4829
4830struct __reg_CSMA_BE {
4831        unsigned int _min_be : 4;       /* Minimum Back-off Exponent */
4832        unsigned int _max_be : 4;       /* Maximum Back-off Exponent */
4833};
4834
4835#define CSMA_BE_struct _SFR_IO8_STRUCT(0x16f, struct __reg_CSMA_BE)
4836
4837#endif /* __ASSEMBLER__ */
4838
4839  /* CSMA_BE */
4840
4841#define MIN_BE0                         0
4842#define MIN_BE1                         1
4843#define MIN_BE2                         2
4844#define MIN_BE3                         3
4845#define MAX_BE0                         4
4846#define MAX_BE1                         5
4847#define MAX_BE2                         6
4848#define MAX_BE3                         7
4849
4850/* Transceiver Received Frame Length Register */
4851#define TST_RX_LENGTH                   _SFR_MEM8(0x17B)
4852
4853#if !(defined(__ASSEMBLER__) || defined(__NOSTRUCT__))
4854
4855struct __reg_TST_RX_LENGTH {
4856        unsigned int rx_length : 8;     /* Received Frame Length */
4857};
4858
4859#define TST_RX_LENGTH_struct _SFR_IO8_STRUCT(0x17b, struct __reg_TST_RX_LENGTH)
4860
4861#endif /* __ASSEMBLER__ */
4862
4863  /* TST_RX_LENGTH */
4864
4865#define RX_LENGTH0                      0
4866#define RX_LENGTH1                      1
4867#define RX_LENGTH2                      2
4868#define RX_LENGTH3                      3
4869#define RX_LENGTH4                      4
4870#define RX_LENGTH5                      5
4871#define RX_LENGTH6                      6
4872#define RX_LENGTH7                      7
4873
4874/* Start of frame buffer */
4875#define TRXFBST                         _SFR_MEM8(0x180)
4876
4877/* End of frame buffer */
4878#define TRXFBEND                        _SFR_MEM8(0x1FF)
4879
4880
4881/* Interrupt vectors */
4882/* Vector 0 is the reset vector */
4883
4884#define _VECTORS_SIZE                  288
4885
4886/* External Interrupt Request 0 */
4887#define INT0_vect                       _VECTOR(1)
4888#define INT0_vect_num                   1
4889
4890/* External Interrupt Request 1 */
4891#define INT1_vect                       _VECTOR(2)
4892#define INT1_vect_num                   2
4893
4894/* External Interrupt Request 2 */
4895#define INT2_vect                       _VECTOR(3)
4896#define INT2_vect_num                   3
4897
4898/* External Interrupt Request 3 */
4899#define INT3_vect                       _VECTOR(4)
4900#define INT3_vect_num                   4
4901
4902/* External Interrupt Request 4 */
4903#define INT4_vect                       _VECTOR(5)
4904#define INT4_vect_num                   5
4905
4906/* External Interrupt Request 5 */
4907#define INT5_vect                       _VECTOR(6)
4908#define INT5_vect_num                   6
4909
4910/* External Interrupt Request 6 */
4911#define INT6_vect                       _VECTOR(7)
4912#define INT6_vect_num                   7
4913
4914/* External Interrupt Request 7 */
4915#define INT7_vect                       _VECTOR(8)
4916#define INT7_vect_num                   8
4917
4918/* Pin Change Interrupt Request 0 */
4919#define PCINT0_vect                     _VECTOR(9)
4920#define PCINT0_vect_num                 9
4921
4922/* Pin Change Interrupt Request 1 */
4923#define PCINT1_vect                     _VECTOR(10)
4924#define PCINT1_vect_num                 10
4925
4926/* Pin Change Interrupt Request 2 */
4927#define PCINT2_vect                     _VECTOR(11)
4928#define PCINT2_vect_num                 11
4929
4930/* Watchdog Time-out Interrupt */
4931#define WDT_vect                        _VECTOR(12)
4932#define WDT_vect_num                    12
4933
4934/* Timer/Counter2 Compare Match A */
4935#define TIMER2_COMPA_vect               _VECTOR(13)
4936#define TIMER2_COMPA_vect_num           13
4937
4938/* Timer/Counter2 Compare Match B */
4939#define TIMER2_COMPB_vect               _VECTOR(14)
4940#define TIMER2_COMPB_vect_num           14
4941
4942/* Timer/Counter2 Overflow */
4943#define TIMER2_OVF_vect                 _VECTOR(15)
4944#define TIMER2_OVF_vect_num             15
4945
4946/* Timer/Counter1 Capture Event */
4947#define TIMER1_CAPT_vect                _VECTOR(16)
4948#define TIMER1_CAPT_vect_num            16
4949
4950/* Timer/Counter1 Compare Match A */
4951#define TIMER1_COMPA_vect               _VECTOR(17)
4952#define TIMER1_COMPA_vect_num           17
4953
4954/* Timer/Counter1 Compare Match B */
4955#define TIMER1_COMPB_vect               _VECTOR(18)
4956#define TIMER1_COMPB_vect_num           18
4957
4958/* Timer/Counter1 Compare Match C */
4959#define TIMER1_COMPC_vect               _VECTOR(19)
4960#define TIMER1_COMPC_vect_num           19
4961
4962/* Timer/Counter1 Overflow */
4963#define TIMER1_OVF_vect                 _VECTOR(20)
4964#define TIMER1_OVF_vect_num             20
4965
4966/* Timer/Counter0 Compare Match A */
4967#define TIMER0_COMPA_vect               _VECTOR(21)
4968#define TIMER0_COMPA_vect_num           21
4969
4970/* Timer/Counter0 Compare Match B */
4971#define TIMER0_COMPB_vect               _VECTOR(22)
4972#define TIMER0_COMPB_vect_num           22
4973
4974/* Timer/Counter0 Overflow */
4975#define TIMER0_OVF_vect                 _VECTOR(23)
4976#define TIMER0_OVF_vect_num             23
4977
4978/* SPI Serial Transfer Complete */
4979#define SPI_STC_vect                    _VECTOR(24)
4980#define SPI_STC_vect_num                24
4981
4982/* USART0, Rx Complete */
4983#define USART0_RX_vect                  _VECTOR(25)
4984#define USART0_RX_vect_num              25
4985
4986/* USART0 Data register Empty */
4987#define USART0_UDRE_vect                _VECTOR(26)
4988#define USART0_UDRE_vect_num            26
4989
4990/* USART0, Tx Complete */
4991#define USART0_TX_vect                  _VECTOR(27)
4992#define USART0_TX_vect_num              27
4993
4994/* Analog Comparator */
4995#define ANALOG_COMP_vect                _VECTOR(28)
4996#define ANALOG_COMP_vect_num            28
4997
4998/* ADC Conversion Complete */
4999#define ADC_vect                        _VECTOR(29)
5000#define ADC_vect_num                    29
5001
5002/* EEPROM Ready */
5003#define EE_READY_vect                   _VECTOR(30)
5004#define EE_READY_vect_num               30
5005
5006/* Timer/Counter3 Capture Event */
5007#define TIMER3_CAPT_vect                _VECTOR(31)
5008#define TIMER3_CAPT_vect_num            31
5009
5010/* Timer/Counter3 Compare Match A */
5011#define TIMER3_COMPA_vect               _VECTOR(32)
5012#define TIMER3_COMPA_vect_num           32
5013
5014/* Timer/Counter3 Compare Match B */
5015#define TIMER3_COMPB_vect               _VECTOR(33)
5016#define TIMER3_COMPB_vect_num           33
5017
5018/* Timer/Counter3 Compare Match C */
5019#define TIMER3_COMPC_vect               _VECTOR(34)
5020#define TIMER3_COMPC_vect_num           34
5021
5022/* Timer/Counter3 Overflow */
5023#define TIMER3_OVF_vect                 _VECTOR(35)
5024#define TIMER3_OVF_vect_num             35
5025
5026/* USART1, Rx Complete */
5027#define USART1_RX_vect                  _VECTOR(36)
5028#define USART1_RX_vect_num              36
5029
5030/* USART1 Data register Empty */
5031#define USART1_UDRE_vect                _VECTOR(37)
5032#define USART1_UDRE_vect_num            37
5033
5034/* USART1, Tx Complete */
5035#define USART1_TX_vect                  _VECTOR(38)
5036#define USART1_TX_vect_num              38
5037
5038/* 2-wire Serial Interface */
5039#define TWI_vect                        _VECTOR(39)
5040#define TWI_vect_num                    39
5041
5042/* Store Program Memory Read */
5043#define SPM_READY_vect                  _VECTOR(40)
5044#define SPM_READY_vect_num              40
5045
5046/* Timer/Counter4 Capture Event */
5047#define TIMER4_CAPT_vect                _VECTOR(41)
5048#define TIMER4_CAPT_vect_num            41
5049
5050/* Timer/Counter4 Compare Match A */
5051#define TIMER4_COMPA_vect               _VECTOR(42)
5052#define TIMER4_COMPA_vect_num           42
5053
5054/* Timer/Counter4 Compare Match B */
5055#define TIMER4_COMPB_vect               _VECTOR(43)
5056#define TIMER4_COMPB_vect_num           43
5057
5058/* Timer/Counter4 Compare Match C */
5059#define TIMER4_COMPC_vect               _VECTOR(44)
5060#define TIMER4_COMPC_vect_num           44
5061
5062/* Timer/Counter4 Overflow */
5063#define TIMER4_OVF_vect                 _VECTOR(45)
5064#define TIMER4_OVF_vect_num             45
5065
5066/* Timer/Counter5 Capture Event */
5067#define TIMER5_CAPT_vect                _VECTOR(46)
5068#define TIMER5_CAPT_vect_num            46
5069
5070/* Timer/Counter5 Compare Match A */
5071#define TIMER5_COMPA_vect               _VECTOR(47)
5072#define TIMER5_COMPA_vect_num           47
5073
5074/* Timer/Counter5 Compare Match B */
5075#define TIMER5_COMPB_vect               _VECTOR(48)
5076#define TIMER5_COMPB_vect_num           48
5077
5078/* Timer/Counter5 Compare Match C */
5079#define TIMER5_COMPC_vect               _VECTOR(49)
5080#define TIMER5_COMPC_vect_num           49
5081
5082/* Timer/Counter5 Overflow */
5083#define TIMER5_OVF_vect                 _VECTOR(50)
5084#define TIMER5_OVF_vect_num             50
5085
5086/* USART2, Rx Complete */
5087#define USART2_RX_vect                  _VECTOR(51)
5088#define USART2_RX_vect_num              51
5089
5090/* USART2 Data register Empty */
5091#define USART2_UDRE_vect                _VECTOR(52)
5092#define USART2_UDRE_vect_num            52
5093
5094/* USART2, Tx Complete */
5095#define USART2_TX_vect                  _VECTOR(53)
5096#define USART2_TX_vect_num              53
5097
5098/* USART3, Rx Complete */
5099#define USART3_RX_vect                  _VECTOR(54)
5100#define USART3_RX_vect_num              54
5101
5102/* USART3 Data register Empty */
5103#define USART3_UDRE_vect                _VECTOR(55)
5104#define USART3_UDRE_vect_num            55
5105
5106/* USART3, Tx Complete */
5107#define USART3_TX_vect                  _VECTOR(56)
5108#define USART3_TX_vect_num              56
5109
5110/* TRX24 - PLL lock interrupt */
5111#define TRX24_PLL_LOCK_vect             _VECTOR(57)
5112#define TRX24_PLL_LOCK_vect_num         57
5113
5114/* TRX24 - PLL unlock interrupt */
5115#define TRX24_PLL_UNLOCK_vect           _VECTOR(58)
5116#define TRX24_PLL_UNLOCK_vect_num       58
5117
5118/* TRX24 - Receive start interrupt */
5119#define TRX24_RX_START_vect             _VECTOR(59)
5120#define TRX24_RX_START_vect_num         59
5121
5122/* TRX24 - RX_END interrupt */
5123#define TRX24_RX_END_vect               _VECTOR(60)
5124#define TRX24_RX_END_vect_num           60
5125
5126/* TRX24 - CCA/ED ready interrupt */
5127#define TRX24_CCA_ED_READY_vect         _VECTOR(61)
5128#define TRX24_CCA_ED_READY_vect_num     61
5129
5130/* TRX24 - XAH - AMI */
5131#define TRX24_XAH_AMI_vect              _VECTOR(62)
5132#define TRX24_XAH_AMI_vect_num          62
5133
5134/* TRX24 - TX_END interrupt */
5135#define TRX24_TX_END_vect               _VECTOR(63)
5136#define TRX24_TX_END_vect_num           63
5137
5138/* TRX24 AWAKE - tranceiver is reaching state TRX_OFF */
5139#define TRX24_AWAKE_vect                _VECTOR(64)
5140#define TRX24_AWAKE_vect_num            64
5141
5142/* Symbol counter - compare match 1 interrupt */
5143#define SCNT_CMP1_vect                  _VECTOR(65)
5144#define SCNT_CMP1_vect_num              65
5145
5146/* Symbol counter - compare match 2 interrupt */
5147#define SCNT_CMP2_vect                  _VECTOR(66)
5148#define SCNT_CMP2_vect_num              66
5149
5150/* Symbol counter - compare match 3 interrupt */
5151#define SCNT_CMP3_vect                  _VECTOR(67)
5152#define SCNT_CMP3_vect_num              67
5153
5154/* Symbol counter - overflow interrupt */
5155#define SCNT_OVFL_vect                  _VECTOR(68)
5156#define SCNT_OVFL_vect_num              68
5157
5158/* Symbol counter - backoff interrupt */
5159#define SCNT_BACKOFF_vect               _VECTOR(69)
5160#define SCNT_BACKOFF_vect_num           69
5161
5162/* TRX AES engine ready interrupt */
5163#define TRX24_AES_RDY_vect              _VECTOR(70)
5164#define TRX24_AES_RDY_vect_num          70
5165
5166/* Battery monitor indicates supply voltage below threshold */
5167#define BAT_LOW_vect                    _VECTOR(71)
5168#define BAT_LOW_vect_num                71
5169
5170
5171/* memory parameters */
5172
5173#define SPM_PAGESIZE                    (256)
5174#define RAMSTART                        (0x200)
5175#define RAMSIZE                         (0x4000)
5176#define RAMEND                          (0x41FF)
5177#define XRAMSTART                       (0x0000)
5178#define XRAMSIZE                        (0x0000)
5179#define XRAMEND                         RAMEND
5180#define E2END                           (0xFFF)
5181#define E2PAGESIZE                      (0x08)
5182#define FLASHEND                        (0x1ffff)
5183
5184
5185/* Fuses */
5186
5187#define FUSE_MEMORY_SIZE 3
5188
5189/* LFUSE Byte */
5190#define FUSE_CKSEL0     ~_BV(0) /* Select Clock Source */
5191#define FUSE_CKSEL1     ~_BV(1) /* Select Clock Source */
5192#define FUSE_CKSEL2     ~_BV(2) /* Select Clock Source */
5193#define FUSE_CKSEL3     ~_BV(3) /* Select Clock Source */
5194#define FUSE_SUT0       ~_BV(4) /* Select start-up time */
5195#define FUSE_SUT1       ~_BV(5) /* Select start-up time */
5196#define FUSE_CKOUT      ~_BV(6) /* Clock output */
5197#define FUSE_CKDIV8     ~_BV(7) /* Divide clock by 8 */
5198#define LFUSE_DEFAULT (FUSE_CKSEL0 & FUSE_CKSEL2 & FUSE_CKSEL3 & FUSE_SUT0 & FUSE_SUT1 & FUSE_CKDIV8)
5199
5200/* HFUSE Byte */
5201#define FUSE_BOOTRST    ~_BV(0) /* Select Reset Vector */
5202#define FUSE_BOOTSZ0    ~_BV(1) /* Select Boot Size */
5203#define FUSE_BOOTSZ1    ~_BV(2) /* Select Boot Size */
5204#define FUSE_EESAVE     ~_BV(3) /* EEPROM memory is preserved through chip erase */
5205#define FUSE_WDTON      ~_BV(4) /* Watchdog timer always on */
5206#define FUSE_SPIEN      ~_BV(5) /* Enable Serial programming and Data Downloading */
5207#define FUSE_JTAGEN     ~_BV(6) /* Enable JTAG */
5208#define FUSE_OCDEN      ~_BV(7) /* Enable OCD */
5209#define HFUSE_DEFAULT (FUSE_BOOTSZ0 & FUSE_BOOTSZ1 & FUSE_SPIEN & FUSE_JTAGEN)
5210
5211/* EFUSE Byte */
5212#define FUSE_BODLEVEL0  ~_BV(0) /* Brown-out Detector trigger level */
5213#define FUSE_BODLEVEL1  ~_BV(1) /* Brown-out Detector trigger level */
5214#define FUSE_BODLEVEL2  ~_BV(2) /* Brown-out Detector trigger level */
5215#define EFUSE_DEFAULT (0xFF)
5216
5217
5218
5219/* Lock Bits */
5220
5221#define __BOOT_LOCK_BITS_0_EXIST
5222#define __BOOT_LOCK_BITS_1_EXIST
5223#define __LOCK_BITS_EXIST
5224
5225
5226/* Signature */
5227
5228#define SIGNATURE_0 0x1E
5229#define SIGNATURE_1 0xA7
5230#define SIGNATURE_2 0x01
5231
5232#endif /* _AVR_IOM128RFA1_H_ */
Note: See TracBrowser for help on using the repository browser.