avrd/gen/atmega1284.rs
1//! The AVR ATmega1284 microcontroller
2//!
3//! # Variants
4//! | | Pinout | Mcu age | Operating temperature | Operating voltage | Max speed |
5//! |--------|--------|---------|-----------------------|-------------------|-----------|
6//! | ATmega1284-AU | TQFP-QFN-44 | TQFP44 | -40°C - 85°C | 1.8V - 5.5V | 20 MHz |
7//! | ATmega1284-PU | PDIP40 | PDIP40 | -40°C - 85°C | 1.8V - 5.5V | 20 MHz |
8//! | ATmega1284-MU | TQFP-QFN-44 | QFN44 | -40°C - 85°C | 1.8V - 5.5V | 20 MHz |
9//!
10
11#![allow(non_upper_case_globals)]
12
13/// `LOCKBIT` register
14///
15/// Bitfields:
16///
17/// | Name | Mask (binary) |
18/// | ---- | ------------- |
19/// | BLB0 | 1100 |
20/// | BLB1 | 110000 |
21/// | LB | 11 |
22pub const LOCKBIT: *mut u8 = 0x0 as *mut u8;
23
24/// `LOW` register
25///
26/// Bitfields:
27///
28/// | Name | Mask (binary) |
29/// | ---- | ------------- |
30/// | CKOUT | 1000000 |
31/// | CKDIV8 | 10000000 |
32/// | SUT_CKSEL | 111111 |
33pub const LOW: *mut u8 = 0x0 as *mut u8;
34
35/// `HIGH` register
36///
37/// Bitfields:
38///
39/// | Name | Mask (binary) |
40/// | ---- | ------------- |
41/// | JTAGEN | 1000000 |
42/// | OCDEN | 10000000 |
43/// | EESAVE | 1000 |
44/// | SPIEN | 100000 |
45/// | BOOTRST | 1 |
46/// | BOOTSZ | 110 |
47/// | WDTON | 10000 |
48pub const HIGH: *mut u8 = 0x1 as *mut u8;
49
50/// `EXTENDED` register
51///
52/// Bitfields:
53///
54/// | Name | Mask (binary) |
55/// | ---- | ------------- |
56/// | BODLEVEL | 111 |
57pub const EXTENDED: *mut u8 = 0x2 as *mut u8;
58
59/// Port A Input Pins.
60pub const PINA: *mut u8 = 0x20 as *mut u8;
61
62/// Port A Data Direction Register.
63pub const DDRA: *mut u8 = 0x21 as *mut u8;
64
65/// Port A Data Register.
66pub const PORTA: *mut u8 = 0x22 as *mut u8;
67
68/// Port B Input Pins.
69pub const PINB: *mut u8 = 0x23 as *mut u8;
70
71/// Port B Data Direction Register.
72pub const DDRB: *mut u8 = 0x24 as *mut u8;
73
74/// Port B Data Register.
75pub const PORTB: *mut u8 = 0x25 as *mut u8;
76
77/// Port C Input Pins.
78pub const PINC: *mut u8 = 0x26 as *mut u8;
79
80/// Port C Data Direction Register.
81pub const DDRC: *mut u8 = 0x27 as *mut u8;
82
83/// Port C Data Register.
84pub const PORTC: *mut u8 = 0x28 as *mut u8;
85
86/// Port D Input Pins.
87pub const PIND: *mut u8 = 0x29 as *mut u8;
88
89/// Port D Data Direction Register.
90pub const DDRD: *mut u8 = 0x2A as *mut u8;
91
92/// Port D Data Register.
93pub const PORTD: *mut u8 = 0x2B as *mut u8;
94
95/// Timer/Counter0 Interrupt Flag register.
96///
97/// Bitfields:
98///
99/// | Name | Mask (binary) |
100/// | ---- | ------------- |
101/// | OCF0B | 100 |
102/// | TOV0 | 1 |
103/// | OCF0A | 10 |
104pub const TIFR0: *mut u8 = 0x35 as *mut u8;
105
106/// Timer/Counter Interrupt Flag register.
107///
108/// Bitfields:
109///
110/// | Name | Mask (binary) |
111/// | ---- | ------------- |
112/// | ICF1 | 100000 |
113/// | TOV1 | 1 |
114/// | OCF1B | 100 |
115/// | OCF1A | 10 |
116pub const TIFR1: *mut u8 = 0x36 as *mut u8;
117
118/// Timer/Counter Interrupt Flag Register.
119///
120/// Bitfields:
121///
122/// | Name | Mask (binary) |
123/// | ---- | ------------- |
124/// | TOV2 | 1 |
125/// | OCF2A | 10 |
126/// | OCF2B | 100 |
127pub const TIFR2: *mut u8 = 0x37 as *mut u8;
128
129/// Timer/Counter Interrupt Flag register.
130///
131/// Bitfields:
132///
133/// | Name | Mask (binary) |
134/// | ---- | ------------- |
135/// | OCF3B | 100 |
136/// | OCF3A | 10 |
137/// | ICF3 | 100000 |
138/// | TOV3 | 1 |
139pub const TIFR3: *mut u8 = 0x38 as *mut u8;
140
141/// Pin Change Interrupt Flag Register.
142///
143/// Bitfields:
144///
145/// | Name | Mask (binary) |
146/// | ---- | ------------- |
147/// | PCIF | 1111 |
148pub const PCIFR: *mut u8 = 0x3B as *mut u8;
149
150/// External Interrupt Flag Register.
151///
152/// Bitfields:
153///
154/// | Name | Mask (binary) |
155/// | ---- | ------------- |
156/// | INTF | 111 |
157pub const EIFR: *mut u8 = 0x3C as *mut u8;
158
159/// External Interrupt Mask Register.
160///
161/// Bitfields:
162///
163/// | Name | Mask (binary) |
164/// | ---- | ------------- |
165/// | INT | 111 |
166pub const EIMSK: *mut u8 = 0x3D as *mut u8;
167
168/// General Purpose IO Register 0.
169///
170/// Bitfields:
171///
172/// | Name | Mask (binary) |
173/// | ---- | ------------- |
174/// | GPIOR01 | 10 |
175/// | GPIOR06 | 1000000 |
176/// | GPIOR02 | 100 |
177/// | GPIOR05 | 100000 |
178/// | GPIOR03 | 1000 |
179/// | GPIOR07 | 10000000 |
180/// | GPIOR04 | 10000 |
181/// | GPIOR00 | 1 |
182pub const GPIOR0: *mut u8 = 0x3E as *mut u8;
183
184/// EEPROM Control Register.
185///
186/// Bitfields:
187///
188/// | Name | Mask (binary) |
189/// | ---- | ------------- |
190/// | EERE | 1 |
191/// | EEMPE | 100 |
192/// | EERIE | 1000 |
193/// | EEPM | 110000 |
194/// | EEPE | 10 |
195pub const EECR: *mut u8 = 0x3F as *mut u8;
196
197/// EEPROM Data Register.
198pub const EEDR: *mut u8 = 0x40 as *mut u8;
199
200/// EEPROM Address Register Low Bytes low byte.
201pub const EEARL: *mut u8 = 0x41 as *mut u8;
202
203/// EEPROM Address Register Low Bytes.
204pub const EEAR: *mut u16 = 0x41 as *mut u16;
205
206/// EEPROM Address Register Low Bytes high byte.
207pub const EEARH: *mut u8 = 0x42 as *mut u8;
208
209/// General Timer Counter Control register.
210///
211/// Bitfields:
212///
213/// | Name | Mask (binary) |
214/// | ---- | ------------- |
215/// | TSM | 10000000 |
216/// | PSRASY | 10 |
217pub const GTCCR: *mut u8 = 0x43 as *mut u8;
218
219/// Timer/Counter Control Register A.
220///
221/// Bitfields:
222///
223/// | Name | Mask (binary) |
224/// | ---- | ------------- |
225/// | WGM0 | 11 |
226/// | COM0A | 11000000 |
227/// | COM0B | 110000 |
228pub const TCCR0A: *mut u8 = 0x44 as *mut u8;
229
230/// Timer/Counter Control Register B.
231///
232/// Bitfields:
233///
234/// | Name | Mask (binary) |
235/// | ---- | ------------- |
236/// | FOC0B | 1000000 |
237/// | CS0 | 111 |
238/// | FOC0A | 10000000 |
239/// | WGM02 | 1000 |
240pub const TCCR0B: *mut u8 = 0x45 as *mut u8;
241
242/// Timer/Counter0.
243pub const TCNT0: *mut u8 = 0x46 as *mut u8;
244
245/// Timer/Counter0 Output Compare Register.
246pub const OCR0A: *mut u8 = 0x47 as *mut u8;
247
248/// Timer/Counter0 Output Compare Register.
249pub const OCR0B: *mut u8 = 0x48 as *mut u8;
250
251/// General Purpose IO Register 1.
252pub const GPIOR1: *mut u8 = 0x4A as *mut u8;
253
254/// General Purpose IO Register 2.
255pub const GPIOR2: *mut u8 = 0x4B as *mut u8;
256
257/// SPI Control Register.
258///
259/// Bitfields:
260///
261/// | Name | Mask (binary) |
262/// | ---- | ------------- |
263/// | SPE | 1000000 |
264/// | SPR | 11 |
265/// | CPOL | 1000 |
266/// | DORD | 100000 |
267/// | SPIE | 10000000 |
268/// | CPHA | 100 |
269/// | MSTR | 10000 |
270pub const SPCR: *mut u8 = 0x4C as *mut u8;
271
272/// SPI Status Register.
273///
274/// Bitfields:
275///
276/// | Name | Mask (binary) |
277/// | ---- | ------------- |
278/// | SPI2X | 1 |
279/// | SPIF | 10000000 |
280/// | WCOL | 1000000 |
281pub const SPSR: *mut u8 = 0x4D as *mut u8;
282
283/// SPI Data Register.
284pub const SPDR: *mut u8 = 0x4E as *mut u8;
285
286/// Analog Comparator Control And Status Register.
287///
288/// Bitfields:
289///
290/// | Name | Mask (binary) |
291/// | ---- | ------------- |
292/// | ACBG | 1000000 |
293/// | ACIE | 1000 |
294/// | ACI | 10000 |
295/// | ACIS | 11 |
296/// | ACD | 10000000 |
297/// | ACIC | 100 |
298/// | ACO | 100000 |
299pub const ACSR: *mut u8 = 0x50 as *mut u8;
300
301/// On-Chip Debug Related Register in I/O Memory.
302pub const OCDR: *mut u8 = 0x51 as *mut u8;
303
304/// Sleep Mode Control Register.
305///
306/// Bitfields:
307///
308/// | Name | Mask (binary) |
309/// | ---- | ------------- |
310/// | SE | 1 |
311/// | SM | 1110 |
312pub const SMCR: *mut u8 = 0x53 as *mut u8;
313
314/// MCU Status Register.
315///
316/// Bitfields:
317///
318/// | Name | Mask (binary) |
319/// | ---- | ------------- |
320/// | EXTRF | 10 |
321/// | BORF | 100 |
322/// | PORF | 1 |
323/// | JTRF | 10000 |
324/// | WDRF | 1000 |
325pub const MCUSR: *mut u8 = 0x54 as *mut u8;
326
327/// MCU Control Register.
328///
329/// Bitfields:
330///
331/// | Name | Mask (binary) |
332/// | ---- | ------------- |
333/// | IVSEL | 10 |
334/// | JTD | 10000000 |
335/// | PUD | 10000 |
336/// | IVCE | 1 |
337pub const MCUCR: *mut u8 = 0x55 as *mut u8;
338
339/// Store Program Memory Control Register.
340///
341/// Bitfields:
342///
343/// | Name | Mask (binary) |
344/// | ---- | ------------- |
345/// | BLBSET | 1000 |
346/// | PGWRT | 100 |
347/// | PGERS | 10 |
348/// | SIGRD | 100000 |
349/// | RWWSRE | 10000 |
350/// | SPMEN | 1 |
351/// | RWWSB | 1000000 |
352/// | SPMIE | 10000000 |
353pub const SPMCSR: *mut u8 = 0x57 as *mut u8;
354
355/// RAM Page Z Select Register.
356pub const RAMPZ: *mut u8 = 0x5B as *mut u8;
357
358/// Stack Pointer.
359pub const SP: *mut u16 = 0x5D as *mut u16;
360
361/// Stack Pointer low byte.
362pub const SPL: *mut u8 = 0x5D as *mut u8;
363
364/// Stack Pointer high byte.
365pub const SPH: *mut u8 = 0x5E as *mut u8;
366
367/// Status Register.
368///
369/// Bitfields:
370///
371/// | Name | Mask (binary) |
372/// | ---- | ------------- |
373/// | V | 1000 |
374/// | Z | 10 |
375/// | S | 10000 |
376/// | N | 100 |
377/// | I | 10000000 |
378/// | C | 1 |
379/// | H | 100000 |
380/// | T | 1000000 |
381pub const SREG: *mut u8 = 0x5F as *mut u8;
382
383/// Watchdog Timer Control Register.
384///
385/// Bitfields:
386///
387/// | Name | Mask (binary) |
388/// | ---- | ------------- |
389/// | WDE | 1000 |
390/// | WDIE | 1000000 |
391/// | WDCE | 10000 |
392/// | WDP | 100111 |
393/// | WDIF | 10000000 |
394pub const WDTCSR: *mut u8 = 0x60 as *mut u8;
395
396/// `CLKPR` register
397///
398/// Bitfields:
399///
400/// | Name | Mask (binary) |
401/// | ---- | ------------- |
402/// | CLKPCE | 10000000 |
403/// | CLKPS | 1111 |
404pub const CLKPR: *mut u8 = 0x61 as *mut u8;
405
406/// Power Reduction Register0.
407///
408/// Bitfields:
409///
410/// | Name | Mask (binary) |
411/// | ---- | ------------- |
412/// | PRADC | 1 |
413/// | PRTIM0 | 100000 |
414/// | PRTIM2 | 1000000 |
415/// | PRTWI | 10000000 |
416/// | PRUSART0 | 10 |
417/// | PRUSART1 | 10000 |
418/// | PRSPI | 100 |
419/// | PRTIM1 | 1000 |
420pub const PRR0: *mut u8 = 0x64 as *mut u8;
421
422/// Power Reduction Register1.
423///
424/// Bitfields:
425///
426/// | Name | Mask (binary) |
427/// | ---- | ------------- |
428/// | PRTIM3 | 1 |
429pub const PRR1: *mut u8 = 0x65 as *mut u8;
430
431/// Oscillator Calibration Value.
432pub const OSCCAL: *mut u8 = 0x66 as *mut u8;
433
434/// Pin Change Interrupt Control Register.
435///
436/// Bitfields:
437///
438/// | Name | Mask (binary) |
439/// | ---- | ------------- |
440/// | PCIE | 1111 |
441pub const PCICR: *mut u8 = 0x68 as *mut u8;
442
443/// External Interrupt Control Register A.
444///
445/// Bitfields:
446///
447/// | Name | Mask (binary) |
448/// | ---- | ------------- |
449/// | ISC2 | 110000 |
450/// | ISC1 | 1100 |
451/// | ISC0 | 11 |
452pub const EICRA: *mut u8 = 0x69 as *mut u8;
453
454/// Pin Change Mask Register 0.
455pub const PCMSK0: *mut u8 = 0x6B as *mut u8;
456
457/// Pin Change Mask Register 1.
458pub const PCMSK1: *mut u8 = 0x6C as *mut u8;
459
460/// Pin Change Mask Register 2.
461pub const PCMSK2: *mut u8 = 0x6D as *mut u8;
462
463/// Timer/Counter0 Interrupt Mask Register.
464///
465/// Bitfields:
466///
467/// | Name | Mask (binary) |
468/// | ---- | ------------- |
469/// | TOIE0 | 1 |
470/// | OCIE0B | 100 |
471/// | OCIE0A | 10 |
472pub const TIMSK0: *mut u8 = 0x6E as *mut u8;
473
474/// Timer/Counter1 Interrupt Mask Register.
475///
476/// Bitfields:
477///
478/// | Name | Mask (binary) |
479/// | ---- | ------------- |
480/// | OCIE1A | 10 |
481/// | OCIE1B | 100 |
482/// | TOIE1 | 1 |
483/// | ICIE1 | 100000 |
484pub const TIMSK1: *mut u8 = 0x6F as *mut u8;
485
486/// Timer/Counter Interrupt Mask register.
487///
488/// Bitfields:
489///
490/// | Name | Mask (binary) |
491/// | ---- | ------------- |
492/// | TOIE2 | 1 |
493/// | OCIE2B | 100 |
494/// | OCIE2A | 10 |
495pub const TIMSK2: *mut u8 = 0x70 as *mut u8;
496
497/// Timer/Counter3 Interrupt Mask Register.
498///
499/// Bitfields:
500///
501/// | Name | Mask (binary) |
502/// | ---- | ------------- |
503/// | ICIE3 | 100000 |
504/// | OCIE3B | 100 |
505/// | TOIE3 | 1 |
506/// | OCIE3A | 10 |
507pub const TIMSK3: *mut u8 = 0x71 as *mut u8;
508
509/// Pin Change Mask Register 3.
510pub const PCMSK3: *mut u8 = 0x73 as *mut u8;
511
512/// ADC Data Register Bytes.
513pub const ADC: *mut u16 = 0x78 as *mut u16;
514
515/// ADC Data Register Bytes low byte.
516pub const ADCL: *mut u8 = 0x78 as *mut u8;
517
518/// ADC Data Register Bytes high byte.
519pub const ADCH: *mut u8 = 0x79 as *mut u8;
520
521/// The ADC Control and Status register A.
522///
523/// Bitfields:
524///
525/// | Name | Mask (binary) |
526/// | ---- | ------------- |
527/// | ADEN | 10000000 |
528/// | ADPS | 111 |
529/// | ADATE | 100000 |
530/// | ADIF | 10000 |
531/// | ADSC | 1000000 |
532/// | ADIE | 1000 |
533pub const ADCSRA: *mut u8 = 0x7A as *mut u8;
534
535/// The ADC Control and Status register B.
536///
537/// Bitfields:
538///
539/// | Name | Mask (binary) |
540/// | ---- | ------------- |
541/// | ADTS | 111 |
542/// | ACME | 1000000 |
543pub const ADCSRB: *mut u8 = 0x7B as *mut u8;
544
545/// The ADC multiplexer Selection Register.
546///
547/// Bitfields:
548///
549/// | Name | Mask (binary) |
550/// | ---- | ------------- |
551/// | MUX | 11111 |
552/// | REFS | 11000000 |
553/// | ADLAR | 100000 |
554pub const ADMUX: *mut u8 = 0x7C as *mut u8;
555
556/// Digital Input Disable Register.
557///
558/// Bitfields:
559///
560/// | Name | Mask (binary) |
561/// | ---- | ------------- |
562/// | ADC4D | 10000 |
563/// | ADC1D | 10 |
564/// | ADC0D | 1 |
565/// | ADC2D | 100 |
566/// | ADC7D | 10000000 |
567/// | ADC5D | 100000 |
568/// | ADC6D | 1000000 |
569/// | ADC3D | 1000 |
570pub const DIDR0: *mut u8 = 0x7E as *mut u8;
571
572/// Digital Input Disable Register 1.
573///
574/// Bitfields:
575///
576/// | Name | Mask (binary) |
577/// | ---- | ------------- |
578/// | AIN1D | 10 |
579/// | AIN0D | 1 |
580pub const DIDR1: *mut u8 = 0x7F as *mut u8;
581
582/// Timer/Counter1 Control Register A.
583///
584/// Bitfields:
585///
586/// | Name | Mask (binary) |
587/// | ---- | ------------- |
588/// | COM1B | 110000 |
589/// | COM1A | 11000000 |
590pub const TCCR1A: *mut u8 = 0x80 as *mut u8;
591
592/// Timer/Counter1 Control Register B.
593///
594/// Bitfields:
595///
596/// | Name | Mask (binary) |
597/// | ---- | ------------- |
598/// | CS1 | 111 |
599/// | ICES1 | 1000000 |
600/// | ICNC1 | 10000000 |
601pub const TCCR1B: *mut u8 = 0x81 as *mut u8;
602
603/// Timer/Counter1 Control Register C.
604///
605/// Bitfields:
606///
607/// | Name | Mask (binary) |
608/// | ---- | ------------- |
609/// | FOC1B | 1000000 |
610/// | FOC1A | 10000000 |
611pub const TCCR1C: *mut u8 = 0x82 as *mut u8;
612
613/// Timer/Counter1 Bytes low byte.
614pub const TCNT1L: *mut u8 = 0x84 as *mut u8;
615
616/// Timer/Counter1 Bytes.
617pub const TCNT1: *mut u16 = 0x84 as *mut u16;
618
619/// Timer/Counter1 Bytes high byte.
620pub const TCNT1H: *mut u8 = 0x85 as *mut u8;
621
622/// Timer/Counter1 Input Capture Register Bytes.
623pub const ICR1: *mut u16 = 0x86 as *mut u16;
624
625/// Timer/Counter1 Input Capture Register Bytes low byte.
626pub const ICR1L: *mut u8 = 0x86 as *mut u8;
627
628/// Timer/Counter1 Input Capture Register Bytes high byte.
629pub const ICR1H: *mut u8 = 0x87 as *mut u8;
630
631/// Timer/Counter1 Output Compare Register A Bytes.
632pub const OCR1A: *mut u16 = 0x88 as *mut u16;
633
634/// Timer/Counter1 Output Compare Register A Bytes low byte.
635pub const OCR1AL: *mut u8 = 0x88 as *mut u8;
636
637/// Timer/Counter1 Output Compare Register A Bytes high byte.
638pub const OCR1AH: *mut u8 = 0x89 as *mut u8;
639
640/// Timer/Counter1 Output Compare Register B Bytes low byte.
641pub const OCR1BL: *mut u8 = 0x8A as *mut u8;
642
643/// Timer/Counter1 Output Compare Register B Bytes.
644pub const OCR1B: *mut u16 = 0x8A as *mut u16;
645
646/// Timer/Counter1 Output Compare Register B Bytes high byte.
647pub const OCR1BH: *mut u8 = 0x8B as *mut u8;
648
649/// Timer/Counter3 Control Register A.
650///
651/// Bitfields:
652///
653/// | Name | Mask (binary) |
654/// | ---- | ------------- |
655/// | COM3B | 110000 |
656/// | COM3A | 11000000 |
657pub const TCCR3A: *mut u8 = 0x90 as *mut u8;
658
659/// Timer/Counter3 Control Register B.
660///
661/// Bitfields:
662///
663/// | Name | Mask (binary) |
664/// | ---- | ------------- |
665/// | CS3 | 111 |
666/// | ICES3 | 1000000 |
667/// | ICNC3 | 10000000 |
668pub const TCCR3B: *mut u8 = 0x91 as *mut u8;
669
670/// Timer/Counter3 Control Register C.
671///
672/// Bitfields:
673///
674/// | Name | Mask (binary) |
675/// | ---- | ------------- |
676/// | FOC3B | 1000000 |
677/// | FOC3A | 10000000 |
678pub const TCCR3C: *mut u8 = 0x92 as *mut u8;
679
680/// Timer/Counter3 Bytes.
681pub const TCNT3: *mut u16 = 0x94 as *mut u16;
682
683/// Timer/Counter3 Bytes low byte.
684pub const TCNT3L: *mut u8 = 0x94 as *mut u8;
685
686/// Timer/Counter3 Bytes high byte.
687pub const TCNT3H: *mut u8 = 0x95 as *mut u8;
688
689/// Timer/Counter3 Input Capture Register Bytes.
690pub const ICR3: *mut u16 = 0x96 as *mut u16;
691
692/// Timer/Counter3 Input Capture Register Bytes low byte.
693pub const ICR3L: *mut u8 = 0x96 as *mut u8;
694
695/// Timer/Counter3 Input Capture Register Bytes high byte.
696pub const ICR3H: *mut u8 = 0x97 as *mut u8;
697
698/// Timer/Counter3 Output Compare Register A Bytes.
699pub const OCR3A: *mut u16 = 0x98 as *mut u16;
700
701/// Timer/Counter3 Output Compare Register A Bytes low byte.
702pub const OCR3AL: *mut u8 = 0x98 as *mut u8;
703
704/// Timer/Counter3 Output Compare Register A Bytes high byte.
705pub const OCR3AH: *mut u8 = 0x99 as *mut u8;
706
707/// Timer/Counter3 Output Compare Register B Bytes.
708pub const OCR3B: *mut u16 = 0x9A as *mut u16;
709
710/// Timer/Counter3 Output Compare Register B Bytes low byte.
711pub const OCR3BL: *mut u8 = 0x9A as *mut u8;
712
713/// Timer/Counter3 Output Compare Register B Bytes high byte.
714pub const OCR3BH: *mut u8 = 0x9B as *mut u8;
715
716/// Timer/Counter2 Control Register A.
717///
718/// Bitfields:
719///
720/// | Name | Mask (binary) |
721/// | ---- | ------------- |
722/// | COM2A | 11000000 |
723/// | WGM2 | 11 |
724/// | COM2B | 110000 |
725pub const TCCR2A: *mut u8 = 0xB0 as *mut u8;
726
727/// Timer/Counter2 Control Register B.
728///
729/// Bitfields:
730///
731/// | Name | Mask (binary) |
732/// | ---- | ------------- |
733/// | FOC2B | 1000000 |
734/// | WGM22 | 1000 |
735/// | CS2 | 111 |
736/// | FOC2A | 10000000 |
737pub const TCCR2B: *mut u8 = 0xB1 as *mut u8;
738
739/// Timer/Counter2.
740pub const TCNT2: *mut u8 = 0xB2 as *mut u8;
741
742/// Timer/Counter2 Output Compare Register A.
743pub const OCR2A: *mut u8 = 0xB3 as *mut u8;
744
745/// Timer/Counter2 Output Compare Register B.
746pub const OCR2B: *mut u8 = 0xB4 as *mut u8;
747
748/// Asynchronous Status Register.
749///
750/// Bitfields:
751///
752/// | Name | Mask (binary) |
753/// | ---- | ------------- |
754/// | TCR2BUB | 1 |
755/// | OCR2BUB | 100 |
756/// | OCR2AUB | 1000 |
757/// | AS2 | 100000 |
758/// | EXCLK | 1000000 |
759/// | TCN2UB | 10000 |
760/// | TCR2AUB | 10 |
761pub const ASSR: *mut u8 = 0xB6 as *mut u8;
762
763/// TWI Bit Rate register.
764pub const TWBR: *mut u8 = 0xB8 as *mut u8;
765
766/// TWI Status Register.
767///
768/// Bitfields:
769///
770/// | Name | Mask (binary) |
771/// | ---- | ------------- |
772/// | TWPS | 11 |
773/// | TWS | 11111000 |
774pub const TWSR: *mut u8 = 0xB9 as *mut u8;
775
776/// TWI (Slave) Address register.
777///
778/// Bitfields:
779///
780/// | Name | Mask (binary) |
781/// | ---- | ------------- |
782/// | TWGCE | 1 |
783/// | TWA | 11111110 |
784pub const TWAR: *mut u8 = 0xBA as *mut u8;
785
786/// TWI Data register.
787pub const TWDR: *mut u8 = 0xBB as *mut u8;
788
789/// TWI Control Register.
790///
791/// Bitfields:
792///
793/// | Name | Mask (binary) |
794/// | ---- | ------------- |
795/// | TWWC | 1000 |
796/// | TWSTA | 100000 |
797/// | TWEA | 1000000 |
798/// | TWINT | 10000000 |
799/// | TWIE | 1 |
800/// | TWEN | 100 |
801/// | TWSTO | 10000 |
802pub const TWCR: *mut u8 = 0xBC as *mut u8;
803
804/// TWI (Slave) Address Mask Register.
805///
806/// Bitfields:
807///
808/// | Name | Mask (binary) |
809/// | ---- | ------------- |
810/// | TWAM | 11111110 |
811pub const TWAMR: *mut u8 = 0xBD as *mut u8;
812
813/// USART Control and Status Register A.
814///
815/// Bitfields:
816///
817/// | Name | Mask (binary) |
818/// | ---- | ------------- |
819/// | RXC0 | 10000000 |
820/// | FE0 | 10000 |
821/// | UPE0 | 100 |
822/// | UDRE0 | 100000 |
823/// | MPCM0 | 1 |
824/// | TXC0 | 1000000 |
825/// | DOR0 | 1000 |
826/// | U2X0 | 10 |
827pub const UCSR0A: *mut u8 = 0xC0 as *mut u8;
828
829/// USART Control and Status Register B.
830///
831/// Bitfields:
832///
833/// | Name | Mask (binary) |
834/// | ---- | ------------- |
835/// | TXCIE0 | 1000000 |
836/// | RXCIE0 | 10000000 |
837/// | RXEN0 | 10000 |
838/// | UDRIE0 | 100000 |
839/// | TXEN0 | 1000 |
840/// | TXB80 | 1 |
841/// | RXB80 | 10 |
842/// | UCSZ02 | 100 |
843pub const UCSR0B: *mut u8 = 0xC1 as *mut u8;
844
845/// USART Control and Status Register C.
846///
847/// Bitfields:
848///
849/// | Name | Mask (binary) |
850/// | ---- | ------------- |
851/// | UCSZ0 | 110 |
852/// | UPM0 | 110000 |
853/// | UCPOL0 | 1 |
854/// | USBS0 | 1000 |
855/// | UMSEL0 | 11000000 |
856pub const UCSR0C: *mut u8 = 0xC2 as *mut u8;
857
858/// USART Baud Rate Register Bytes.
859pub const UBRR0: *mut u16 = 0xC4 as *mut u16;
860
861/// USART Baud Rate Register Bytes low byte.
862pub const UBRR0L: *mut u8 = 0xC4 as *mut u8;
863
864/// USART Baud Rate Register Bytes high byte.
865pub const UBRR0H: *mut u8 = 0xC5 as *mut u8;
866
867/// USART I/O Data Register.
868pub const UDR0: *mut u8 = 0xC6 as *mut u8;
869
870/// USART Control and Status Register A.
871///
872/// Bitfields:
873///
874/// | Name | Mask (binary) |
875/// | ---- | ------------- |
876/// | FE1 | 10000 |
877/// | DOR1 | 1000 |
878/// | RXC1 | 10000000 |
879/// | U2X1 | 10 |
880/// | MPCM1 | 1 |
881/// | UDRE1 | 100000 |
882/// | TXC1 | 1000000 |
883/// | UPE1 | 100 |
884pub const UCSR1A: *mut u8 = 0xC8 as *mut u8;
885
886/// USART Control and Status Register B.
887///
888/// Bitfields:
889///
890/// | Name | Mask (binary) |
891/// | ---- | ------------- |
892/// | UDRIE1 | 100000 |
893/// | TXCIE1 | 1000000 |
894/// | TXB81 | 1 |
895/// | TXEN1 | 1000 |
896/// | RXB81 | 10 |
897/// | RXCIE1 | 10000000 |
898/// | UCSZ12 | 100 |
899/// | RXEN1 | 10000 |
900pub const UCSR1B: *mut u8 = 0xC9 as *mut u8;
901
902/// USART Control and Status Register C.
903///
904/// Bitfields:
905///
906/// | Name | Mask (binary) |
907/// | ---- | ------------- |
908/// | USBS1 | 1000 |
909/// | UPM1 | 110000 |
910/// | UCPOL1 | 1 |
911/// | UCSZ1 | 110 |
912/// | UMSEL1 | 11000000 |
913pub const UCSR1C: *mut u8 = 0xCA as *mut u8;
914
915/// USART Baud Rate Register Bytes low byte.
916pub const UBRR1L: *mut u8 = 0xCC as *mut u8;
917
918/// USART Baud Rate Register Bytes.
919pub const UBRR1: *mut u16 = 0xCC as *mut u16;
920
921/// USART Baud Rate Register Bytes high byte.
922pub const UBRR1H: *mut u8 = 0xCD as *mut u8;
923
924/// USART I/O Data Register.
925pub const UDR1: *mut u8 = 0xCE as *mut u8;
926
927/// Bitfield on register `ACSR`
928pub const ACBG: *mut u8 = 0x40 as *mut u8;
929
930/// Bitfield on register `ACSR`
931pub const ACIE: *mut u8 = 0x8 as *mut u8;
932
933/// Bitfield on register `ACSR`
934pub const ACI: *mut u8 = 0x10 as *mut u8;
935
936/// Bitfield on register `ACSR`
937pub const ACIS: *mut u8 = 0x3 as *mut u8;
938
939/// Bitfield on register `ACSR`
940pub const ACD: *mut u8 = 0x80 as *mut u8;
941
942/// Bitfield on register `ACSR`
943pub const ACIC: *mut u8 = 0x4 as *mut u8;
944
945/// Bitfield on register `ACSR`
946pub const ACO: *mut u8 = 0x20 as *mut u8;
947
948/// Bitfield on register `ADCSRA`
949pub const ADEN: *mut u8 = 0x80 as *mut u8;
950
951/// Bitfield on register `ADCSRA`
952pub const ADPS: *mut u8 = 0x7 as *mut u8;
953
954/// Bitfield on register `ADCSRA`
955pub const ADATE: *mut u8 = 0x20 as *mut u8;
956
957/// Bitfield on register `ADCSRA`
958pub const ADIF: *mut u8 = 0x10 as *mut u8;
959
960/// Bitfield on register `ADCSRA`
961pub const ADSC: *mut u8 = 0x40 as *mut u8;
962
963/// Bitfield on register `ADCSRA`
964pub const ADIE: *mut u8 = 0x8 as *mut u8;
965
966/// Bitfield on register `ADCSRB`
967pub const ADTS: *mut u8 = 0x7 as *mut u8;
968
969/// Bitfield on register `ADCSRB`
970pub const ACME: *mut u8 = 0x40 as *mut u8;
971
972/// Bitfield on register `ADMUX`
973pub const MUX: *mut u8 = 0x1F as *mut u8;
974
975/// Bitfield on register `ADMUX`
976pub const REFS: *mut u8 = 0xC0 as *mut u8;
977
978/// Bitfield on register `ADMUX`
979pub const ADLAR: *mut u8 = 0x20 as *mut u8;
980
981/// Bitfield on register `ASSR`
982pub const TCR2BUB: *mut u8 = 0x1 as *mut u8;
983
984/// Bitfield on register `ASSR`
985pub const OCR2BUB: *mut u8 = 0x4 as *mut u8;
986
987/// Bitfield on register `ASSR`
988pub const OCR2AUB: *mut u8 = 0x8 as *mut u8;
989
990/// Bitfield on register `ASSR`
991pub const AS2: *mut u8 = 0x20 as *mut u8;
992
993/// Bitfield on register `ASSR`
994pub const EXCLK: *mut u8 = 0x40 as *mut u8;
995
996/// Bitfield on register `ASSR`
997pub const TCN2UB: *mut u8 = 0x10 as *mut u8;
998
999/// Bitfield on register `ASSR`
1000pub const TCR2AUB: *mut u8 = 0x2 as *mut u8;
1001
1002/// Bitfield on register `CLKPR`
1003pub const CLKPCE: *mut u8 = 0x80 as *mut u8;
1004
1005/// Bitfield on register `CLKPR`
1006pub const CLKPS: *mut u8 = 0xF as *mut u8;
1007
1008/// Bitfield on register `DIDR0`
1009pub const ADC4D: *mut u8 = 0x10 as *mut u8;
1010
1011/// Bitfield on register `DIDR0`
1012pub const ADC1D: *mut u8 = 0x2 as *mut u8;
1013
1014/// Bitfield on register `DIDR0`
1015pub const ADC0D: *mut u8 = 0x1 as *mut u8;
1016
1017/// Bitfield on register `DIDR0`
1018pub const ADC2D: *mut u8 = 0x4 as *mut u8;
1019
1020/// Bitfield on register `DIDR0`
1021pub const ADC7D: *mut u8 = 0x80 as *mut u8;
1022
1023/// Bitfield on register `DIDR0`
1024pub const ADC5D: *mut u8 = 0x20 as *mut u8;
1025
1026/// Bitfield on register `DIDR0`
1027pub const ADC6D: *mut u8 = 0x40 as *mut u8;
1028
1029/// Bitfield on register `DIDR0`
1030pub const ADC3D: *mut u8 = 0x8 as *mut u8;
1031
1032/// Bitfield on register `DIDR1`
1033pub const AIN1D: *mut u8 = 0x2 as *mut u8;
1034
1035/// Bitfield on register `DIDR1`
1036pub const AIN0D: *mut u8 = 0x1 as *mut u8;
1037
1038/// Bitfield on register `EECR`
1039pub const EERE: *mut u8 = 0x1 as *mut u8;
1040
1041/// Bitfield on register `EECR`
1042pub const EEMPE: *mut u8 = 0x4 as *mut u8;
1043
1044/// Bitfield on register `EECR`
1045pub const EERIE: *mut u8 = 0x8 as *mut u8;
1046
1047/// Bitfield on register `EECR`
1048pub const EEPM: *mut u8 = 0x30 as *mut u8;
1049
1050/// Bitfield on register `EECR`
1051pub const EEPE: *mut u8 = 0x2 as *mut u8;
1052
1053/// Bitfield on register `EICRA`
1054pub const ISC2: *mut u8 = 0x30 as *mut u8;
1055
1056/// Bitfield on register `EICRA`
1057pub const ISC1: *mut u8 = 0xC as *mut u8;
1058
1059/// Bitfield on register `EICRA`
1060pub const ISC0: *mut u8 = 0x3 as *mut u8;
1061
1062/// Bitfield on register `EIFR`
1063pub const INTF: *mut u8 = 0x7 as *mut u8;
1064
1065/// Bitfield on register `EIMSK`
1066pub const INT: *mut u8 = 0x7 as *mut u8;
1067
1068/// Bitfield on register `EXTENDED`
1069pub const BODLEVEL: *mut u8 = 0x7 as *mut u8;
1070
1071/// Bitfield on register `GPIOR0`
1072pub const GPIOR01: *mut u8 = 0x2 as *mut u8;
1073
1074/// Bitfield on register `GPIOR0`
1075pub const GPIOR06: *mut u8 = 0x40 as *mut u8;
1076
1077/// Bitfield on register `GPIOR0`
1078pub const GPIOR02: *mut u8 = 0x4 as *mut u8;
1079
1080/// Bitfield on register `GPIOR0`
1081pub const GPIOR05: *mut u8 = 0x20 as *mut u8;
1082
1083/// Bitfield on register `GPIOR0`
1084pub const GPIOR03: *mut u8 = 0x8 as *mut u8;
1085
1086/// Bitfield on register `GPIOR0`
1087pub const GPIOR07: *mut u8 = 0x80 as *mut u8;
1088
1089/// Bitfield on register `GPIOR0`
1090pub const GPIOR04: *mut u8 = 0x10 as *mut u8;
1091
1092/// Bitfield on register `GPIOR0`
1093pub const GPIOR00: *mut u8 = 0x1 as *mut u8;
1094
1095/// Bitfield on register `GTCCR`
1096pub const TSM: *mut u8 = 0x80 as *mut u8;
1097
1098/// Bitfield on register `GTCCR`
1099pub const PSRASY: *mut u8 = 0x2 as *mut u8;
1100
1101/// Bitfield on register `HIGH`
1102pub const JTAGEN: *mut u8 = 0x40 as *mut u8;
1103
1104/// Bitfield on register `HIGH`
1105pub const OCDEN: *mut u8 = 0x80 as *mut u8;
1106
1107/// Bitfield on register `HIGH`
1108pub const EESAVE: *mut u8 = 0x8 as *mut u8;
1109
1110/// Bitfield on register `HIGH`
1111pub const SPIEN: *mut u8 = 0x20 as *mut u8;
1112
1113/// Bitfield on register `HIGH`
1114pub const BOOTRST: *mut u8 = 0x1 as *mut u8;
1115
1116/// Bitfield on register `HIGH`
1117pub const BOOTSZ: *mut u8 = 0x6 as *mut u8;
1118
1119/// Bitfield on register `HIGH`
1120pub const WDTON: *mut u8 = 0x10 as *mut u8;
1121
1122/// Bitfield on register `LOCKBIT`
1123pub const BLB0: *mut u8 = 0xC as *mut u8;
1124
1125/// Bitfield on register `LOCKBIT`
1126pub const BLB1: *mut u8 = 0x30 as *mut u8;
1127
1128/// Bitfield on register `LOCKBIT`
1129pub const LB: *mut u8 = 0x3 as *mut u8;
1130
1131/// Bitfield on register `LOW`
1132pub const CKOUT: *mut u8 = 0x40 as *mut u8;
1133
1134/// Bitfield on register `LOW`
1135pub const CKDIV8: *mut u8 = 0x80 as *mut u8;
1136
1137/// Bitfield on register `LOW`
1138pub const SUT_CKSEL: *mut u8 = 0x3F as *mut u8;
1139
1140/// Bitfield on register `MCUCR`
1141pub const IVSEL: *mut u8 = 0x2 as *mut u8;
1142
1143/// Bitfield on register `MCUCR`
1144pub const JTD: *mut u8 = 0x80 as *mut u8;
1145
1146/// Bitfield on register `MCUCR`
1147pub const PUD: *mut u8 = 0x10 as *mut u8;
1148
1149/// Bitfield on register `MCUCR`
1150pub const IVCE: *mut u8 = 0x1 as *mut u8;
1151
1152/// Bitfield on register `MCUSR`
1153pub const EXTRF: *mut u8 = 0x2 as *mut u8;
1154
1155/// Bitfield on register `MCUSR`
1156pub const BORF: *mut u8 = 0x4 as *mut u8;
1157
1158/// Bitfield on register `MCUSR`
1159pub const PORF: *mut u8 = 0x1 as *mut u8;
1160
1161/// Bitfield on register `MCUSR`
1162pub const JTRF: *mut u8 = 0x10 as *mut u8;
1163
1164/// Bitfield on register `MCUSR`
1165pub const WDRF: *mut u8 = 0x8 as *mut u8;
1166
1167/// Bitfield on register `PCICR`
1168pub const PCIE: *mut u8 = 0xF as *mut u8;
1169
1170/// Bitfield on register `PCIFR`
1171pub const PCIF: *mut u8 = 0xF as *mut u8;
1172
1173/// Bitfield on register `PRR0`
1174pub const PRADC: *mut u8 = 0x1 as *mut u8;
1175
1176/// Bitfield on register `PRR0`
1177pub const PRTIM0: *mut u8 = 0x20 as *mut u8;
1178
1179/// Bitfield on register `PRR0`
1180pub const PRTIM2: *mut u8 = 0x40 as *mut u8;
1181
1182/// Bitfield on register `PRR0`
1183pub const PRTWI: *mut u8 = 0x80 as *mut u8;
1184
1185/// Bitfield on register `PRR0`
1186pub const PRUSART0: *mut u8 = 0x2 as *mut u8;
1187
1188/// Bitfield on register `PRR0`
1189pub const PRUSART1: *mut u8 = 0x10 as *mut u8;
1190
1191/// Bitfield on register `PRR0`
1192pub const PRSPI: *mut u8 = 0x4 as *mut u8;
1193
1194/// Bitfield on register `PRR0`
1195pub const PRTIM1: *mut u8 = 0x8 as *mut u8;
1196
1197/// Bitfield on register `PRR1`
1198pub const PRTIM3: *mut u8 = 0x1 as *mut u8;
1199
1200/// Bitfield on register `SMCR`
1201pub const SE: *mut u8 = 0x1 as *mut u8;
1202
1203/// Bitfield on register `SMCR`
1204pub const SM: *mut u8 = 0xE as *mut u8;
1205
1206/// Bitfield on register `SPCR`
1207pub const SPE: *mut u8 = 0x40 as *mut u8;
1208
1209/// Bitfield on register `SPCR`
1210pub const SPR: *mut u8 = 0x3 as *mut u8;
1211
1212/// Bitfield on register `SPCR`
1213pub const CPOL: *mut u8 = 0x8 as *mut u8;
1214
1215/// Bitfield on register `SPCR`
1216pub const DORD: *mut u8 = 0x20 as *mut u8;
1217
1218/// Bitfield on register `SPCR`
1219pub const SPIE: *mut u8 = 0x80 as *mut u8;
1220
1221/// Bitfield on register `SPCR`
1222pub const CPHA: *mut u8 = 0x4 as *mut u8;
1223
1224/// Bitfield on register `SPCR`
1225pub const MSTR: *mut u8 = 0x10 as *mut u8;
1226
1227/// Bitfield on register `SPMCSR`
1228pub const BLBSET: *mut u8 = 0x8 as *mut u8;
1229
1230/// Bitfield on register `SPMCSR`
1231pub const PGWRT: *mut u8 = 0x4 as *mut u8;
1232
1233/// Bitfield on register `SPMCSR`
1234pub const PGERS: *mut u8 = 0x2 as *mut u8;
1235
1236/// Bitfield on register `SPMCSR`
1237pub const SIGRD: *mut u8 = 0x20 as *mut u8;
1238
1239/// Bitfield on register `SPMCSR`
1240pub const RWWSRE: *mut u8 = 0x10 as *mut u8;
1241
1242/// Bitfield on register `SPMCSR`
1243pub const SPMEN: *mut u8 = 0x1 as *mut u8;
1244
1245/// Bitfield on register `SPMCSR`
1246pub const RWWSB: *mut u8 = 0x40 as *mut u8;
1247
1248/// Bitfield on register `SPMCSR`
1249pub const SPMIE: *mut u8 = 0x80 as *mut u8;
1250
1251/// Bitfield on register `SPSR`
1252pub const SPI2X: *mut u8 = 0x1 as *mut u8;
1253
1254/// Bitfield on register `SPSR`
1255pub const SPIF: *mut u8 = 0x80 as *mut u8;
1256
1257/// Bitfield on register `SPSR`
1258pub const WCOL: *mut u8 = 0x40 as *mut u8;
1259
1260/// Bitfield on register `SREG`
1261pub const V: *mut u8 = 0x8 as *mut u8;
1262
1263/// Bitfield on register `SREG`
1264pub const Z: *mut u8 = 0x2 as *mut u8;
1265
1266/// Bitfield on register `SREG`
1267pub const S: *mut u8 = 0x10 as *mut u8;
1268
1269/// Bitfield on register `SREG`
1270pub const N: *mut u8 = 0x4 as *mut u8;
1271
1272/// Bitfield on register `SREG`
1273pub const I: *mut u8 = 0x80 as *mut u8;
1274
1275/// Bitfield on register `SREG`
1276pub const C: *mut u8 = 0x1 as *mut u8;
1277
1278/// Bitfield on register `SREG`
1279pub const H: *mut u8 = 0x20 as *mut u8;
1280
1281/// Bitfield on register `SREG`
1282pub const T: *mut u8 = 0x40 as *mut u8;
1283
1284/// Bitfield on register `TCCR0A`
1285pub const WGM0: *mut u8 = 0x3 as *mut u8;
1286
1287/// Bitfield on register `TCCR0A`
1288pub const COM0A: *mut u8 = 0xC0 as *mut u8;
1289
1290/// Bitfield on register `TCCR0A`
1291pub const COM0B: *mut u8 = 0x30 as *mut u8;
1292
1293/// Bitfield on register `TCCR0B`
1294pub const FOC0B: *mut u8 = 0x40 as *mut u8;
1295
1296/// Bitfield on register `TCCR0B`
1297pub const CS0: *mut u8 = 0x7 as *mut u8;
1298
1299/// Bitfield on register `TCCR0B`
1300pub const FOC0A: *mut u8 = 0x80 as *mut u8;
1301
1302/// Bitfield on register `TCCR0B`
1303pub const WGM02: *mut u8 = 0x8 as *mut u8;
1304
1305/// Bitfield on register `TCCR1A`
1306pub const COM1B: *mut u8 = 0x30 as *mut u8;
1307
1308/// Bitfield on register `TCCR1A`
1309pub const COM1A: *mut u8 = 0xC0 as *mut u8;
1310
1311/// Bitfield on register `TCCR1B`
1312pub const CS1: *mut u8 = 0x7 as *mut u8;
1313
1314/// Bitfield on register `TCCR1B`
1315pub const ICES1: *mut u8 = 0x40 as *mut u8;
1316
1317/// Bitfield on register `TCCR1B`
1318pub const ICNC1: *mut u8 = 0x80 as *mut u8;
1319
1320/// Bitfield on register `TCCR1C`
1321pub const FOC1B: *mut u8 = 0x40 as *mut u8;
1322
1323/// Bitfield on register `TCCR1C`
1324pub const FOC1A: *mut u8 = 0x80 as *mut u8;
1325
1326/// Bitfield on register `TCCR2A`
1327pub const COM2A: *mut u8 = 0xC0 as *mut u8;
1328
1329/// Bitfield on register `TCCR2A`
1330pub const WGM2: *mut u8 = 0x3 as *mut u8;
1331
1332/// Bitfield on register `TCCR2A`
1333pub const COM2B: *mut u8 = 0x30 as *mut u8;
1334
1335/// Bitfield on register `TCCR2B`
1336pub const FOC2B: *mut u8 = 0x40 as *mut u8;
1337
1338/// Bitfield on register `TCCR2B`
1339pub const WGM22: *mut u8 = 0x8 as *mut u8;
1340
1341/// Bitfield on register `TCCR2B`
1342pub const CS2: *mut u8 = 0x7 as *mut u8;
1343
1344/// Bitfield on register `TCCR2B`
1345pub const FOC2A: *mut u8 = 0x80 as *mut u8;
1346
1347/// Bitfield on register `TCCR3A`
1348pub const COM3B: *mut u8 = 0x30 as *mut u8;
1349
1350/// Bitfield on register `TCCR3A`
1351pub const COM3A: *mut u8 = 0xC0 as *mut u8;
1352
1353/// Bitfield on register `TCCR3B`
1354pub const CS3: *mut u8 = 0x7 as *mut u8;
1355
1356/// Bitfield on register `TCCR3B`
1357pub const ICES3: *mut u8 = 0x40 as *mut u8;
1358
1359/// Bitfield on register `TCCR3B`
1360pub const ICNC3: *mut u8 = 0x80 as *mut u8;
1361
1362/// Bitfield on register `TCCR3C`
1363pub const FOC3B: *mut u8 = 0x40 as *mut u8;
1364
1365/// Bitfield on register `TCCR3C`
1366pub const FOC3A: *mut u8 = 0x80 as *mut u8;
1367
1368/// Bitfield on register `TIFR0`
1369pub const OCF0B: *mut u8 = 0x4 as *mut u8;
1370
1371/// Bitfield on register `TIFR0`
1372pub const TOV0: *mut u8 = 0x1 as *mut u8;
1373
1374/// Bitfield on register `TIFR0`
1375pub const OCF0A: *mut u8 = 0x2 as *mut u8;
1376
1377/// Bitfield on register `TIFR1`
1378pub const ICF1: *mut u8 = 0x20 as *mut u8;
1379
1380/// Bitfield on register `TIFR1`
1381pub const TOV1: *mut u8 = 0x1 as *mut u8;
1382
1383/// Bitfield on register `TIFR1`
1384pub const OCF1B: *mut u8 = 0x4 as *mut u8;
1385
1386/// Bitfield on register `TIFR1`
1387pub const OCF1A: *mut u8 = 0x2 as *mut u8;
1388
1389/// Bitfield on register `TIFR2`
1390pub const TOV2: *mut u8 = 0x1 as *mut u8;
1391
1392/// Bitfield on register `TIFR2`
1393pub const OCF2A: *mut u8 = 0x2 as *mut u8;
1394
1395/// Bitfield on register `TIFR2`
1396pub const OCF2B: *mut u8 = 0x4 as *mut u8;
1397
1398/// Bitfield on register `TIFR3`
1399pub const OCF3B: *mut u8 = 0x4 as *mut u8;
1400
1401/// Bitfield on register `TIFR3`
1402pub const OCF3A: *mut u8 = 0x2 as *mut u8;
1403
1404/// Bitfield on register `TIFR3`
1405pub const ICF3: *mut u8 = 0x20 as *mut u8;
1406
1407/// Bitfield on register `TIFR3`
1408pub const TOV3: *mut u8 = 0x1 as *mut u8;
1409
1410/// Bitfield on register `TIMSK0`
1411pub const TOIE0: *mut u8 = 0x1 as *mut u8;
1412
1413/// Bitfield on register `TIMSK0`
1414pub const OCIE0B: *mut u8 = 0x4 as *mut u8;
1415
1416/// Bitfield on register `TIMSK0`
1417pub const OCIE0A: *mut u8 = 0x2 as *mut u8;
1418
1419/// Bitfield on register `TIMSK1`
1420pub const OCIE1A: *mut u8 = 0x2 as *mut u8;
1421
1422/// Bitfield on register `TIMSK1`
1423pub const OCIE1B: *mut u8 = 0x4 as *mut u8;
1424
1425/// Bitfield on register `TIMSK1`
1426pub const TOIE1: *mut u8 = 0x1 as *mut u8;
1427
1428/// Bitfield on register `TIMSK1`
1429pub const ICIE1: *mut u8 = 0x20 as *mut u8;
1430
1431/// Bitfield on register `TIMSK2`
1432pub const TOIE2: *mut u8 = 0x1 as *mut u8;
1433
1434/// Bitfield on register `TIMSK2`
1435pub const OCIE2B: *mut u8 = 0x4 as *mut u8;
1436
1437/// Bitfield on register `TIMSK2`
1438pub const OCIE2A: *mut u8 = 0x2 as *mut u8;
1439
1440/// Bitfield on register `TIMSK3`
1441pub const ICIE3: *mut u8 = 0x20 as *mut u8;
1442
1443/// Bitfield on register `TIMSK3`
1444pub const OCIE3B: *mut u8 = 0x4 as *mut u8;
1445
1446/// Bitfield on register `TIMSK3`
1447pub const TOIE3: *mut u8 = 0x1 as *mut u8;
1448
1449/// Bitfield on register `TIMSK3`
1450pub const OCIE3A: *mut u8 = 0x2 as *mut u8;
1451
1452/// Bitfield on register `TWAMR`
1453pub const TWAM: *mut u8 = 0xFE as *mut u8;
1454
1455/// Bitfield on register `TWAR`
1456pub const TWGCE: *mut u8 = 0x1 as *mut u8;
1457
1458/// Bitfield on register `TWAR`
1459pub const TWA: *mut u8 = 0xFE as *mut u8;
1460
1461/// Bitfield on register `TWCR`
1462pub const TWWC: *mut u8 = 0x8 as *mut u8;
1463
1464/// Bitfield on register `TWCR`
1465pub const TWSTA: *mut u8 = 0x20 as *mut u8;
1466
1467/// Bitfield on register `TWCR`
1468pub const TWEA: *mut u8 = 0x40 as *mut u8;
1469
1470/// Bitfield on register `TWCR`
1471pub const TWINT: *mut u8 = 0x80 as *mut u8;
1472
1473/// Bitfield on register `TWCR`
1474pub const TWIE: *mut u8 = 0x1 as *mut u8;
1475
1476/// Bitfield on register `TWCR`
1477pub const TWEN: *mut u8 = 0x4 as *mut u8;
1478
1479/// Bitfield on register `TWCR`
1480pub const TWSTO: *mut u8 = 0x10 as *mut u8;
1481
1482/// Bitfield on register `TWSR`
1483pub const TWPS: *mut u8 = 0x3 as *mut u8;
1484
1485/// Bitfield on register `TWSR`
1486pub const TWS: *mut u8 = 0xF8 as *mut u8;
1487
1488/// Bitfield on register `UCSR0A`
1489pub const RXC0: *mut u8 = 0x80 as *mut u8;
1490
1491/// Bitfield on register `UCSR0A`
1492pub const FE0: *mut u8 = 0x10 as *mut u8;
1493
1494/// Bitfield on register `UCSR0A`
1495pub const UPE0: *mut u8 = 0x4 as *mut u8;
1496
1497/// Bitfield on register `UCSR0A`
1498pub const UDRE0: *mut u8 = 0x20 as *mut u8;
1499
1500/// Bitfield on register `UCSR0A`
1501pub const MPCM0: *mut u8 = 0x1 as *mut u8;
1502
1503/// Bitfield on register `UCSR0A`
1504pub const TXC0: *mut u8 = 0x40 as *mut u8;
1505
1506/// Bitfield on register `UCSR0A`
1507pub const DOR0: *mut u8 = 0x8 as *mut u8;
1508
1509/// Bitfield on register `UCSR0A`
1510pub const U2X0: *mut u8 = 0x2 as *mut u8;
1511
1512/// Bitfield on register `UCSR0B`
1513pub const TXCIE0: *mut u8 = 0x40 as *mut u8;
1514
1515/// Bitfield on register `UCSR0B`
1516pub const RXCIE0: *mut u8 = 0x80 as *mut u8;
1517
1518/// Bitfield on register `UCSR0B`
1519pub const RXEN0: *mut u8 = 0x10 as *mut u8;
1520
1521/// Bitfield on register `UCSR0B`
1522pub const UDRIE0: *mut u8 = 0x20 as *mut u8;
1523
1524/// Bitfield on register `UCSR0B`
1525pub const TXEN0: *mut u8 = 0x8 as *mut u8;
1526
1527/// Bitfield on register `UCSR0B`
1528pub const TXB80: *mut u8 = 0x1 as *mut u8;
1529
1530/// Bitfield on register `UCSR0B`
1531pub const RXB80: *mut u8 = 0x2 as *mut u8;
1532
1533/// Bitfield on register `UCSR0B`
1534pub const UCSZ02: *mut u8 = 0x4 as *mut u8;
1535
1536/// Bitfield on register `UCSR0C`
1537pub const UCSZ0: *mut u8 = 0x6 as *mut u8;
1538
1539/// Bitfield on register `UCSR0C`
1540pub const UPM0: *mut u8 = 0x30 as *mut u8;
1541
1542/// Bitfield on register `UCSR0C`
1543pub const UCPOL0: *mut u8 = 0x1 as *mut u8;
1544
1545/// Bitfield on register `UCSR0C`
1546pub const USBS0: *mut u8 = 0x8 as *mut u8;
1547
1548/// Bitfield on register `UCSR0C`
1549pub const UMSEL0: *mut u8 = 0xC0 as *mut u8;
1550
1551/// Bitfield on register `UCSR1A`
1552pub const FE1: *mut u8 = 0x10 as *mut u8;
1553
1554/// Bitfield on register `UCSR1A`
1555pub const DOR1: *mut u8 = 0x8 as *mut u8;
1556
1557/// Bitfield on register `UCSR1A`
1558pub const RXC1: *mut u8 = 0x80 as *mut u8;
1559
1560/// Bitfield on register `UCSR1A`
1561pub const U2X1: *mut u8 = 0x2 as *mut u8;
1562
1563/// Bitfield on register `UCSR1A`
1564pub const MPCM1: *mut u8 = 0x1 as *mut u8;
1565
1566/// Bitfield on register `UCSR1A`
1567pub const UDRE1: *mut u8 = 0x20 as *mut u8;
1568
1569/// Bitfield on register `UCSR1A`
1570pub const TXC1: *mut u8 = 0x40 as *mut u8;
1571
1572/// Bitfield on register `UCSR1A`
1573pub const UPE1: *mut u8 = 0x4 as *mut u8;
1574
1575/// Bitfield on register `UCSR1B`
1576pub const UDRIE1: *mut u8 = 0x20 as *mut u8;
1577
1578/// Bitfield on register `UCSR1B`
1579pub const TXCIE1: *mut u8 = 0x40 as *mut u8;
1580
1581/// Bitfield on register `UCSR1B`
1582pub const TXB81: *mut u8 = 0x1 as *mut u8;
1583
1584/// Bitfield on register `UCSR1B`
1585pub const TXEN1: *mut u8 = 0x8 as *mut u8;
1586
1587/// Bitfield on register `UCSR1B`
1588pub const RXB81: *mut u8 = 0x2 as *mut u8;
1589
1590/// Bitfield on register `UCSR1B`
1591pub const RXCIE1: *mut u8 = 0x80 as *mut u8;
1592
1593/// Bitfield on register `UCSR1B`
1594pub const UCSZ12: *mut u8 = 0x4 as *mut u8;
1595
1596/// Bitfield on register `UCSR1B`
1597pub const RXEN1: *mut u8 = 0x10 as *mut u8;
1598
1599/// Bitfield on register `UCSR1C`
1600pub const USBS1: *mut u8 = 0x8 as *mut u8;
1601
1602/// Bitfield on register `UCSR1C`
1603pub const UPM1: *mut u8 = 0x30 as *mut u8;
1604
1605/// Bitfield on register `UCSR1C`
1606pub const UCPOL1: *mut u8 = 0x1 as *mut u8;
1607
1608/// Bitfield on register `UCSR1C`
1609pub const UCSZ1: *mut u8 = 0x6 as *mut u8;
1610
1611/// Bitfield on register `UCSR1C`
1612pub const UMSEL1: *mut u8 = 0xC0 as *mut u8;
1613
1614/// Bitfield on register `WDTCSR`
1615pub const WDE: *mut u8 = 0x8 as *mut u8;
1616
1617/// Bitfield on register `WDTCSR`
1618pub const WDIE: *mut u8 = 0x40 as *mut u8;
1619
1620/// Bitfield on register `WDTCSR`
1621pub const WDCE: *mut u8 = 0x10 as *mut u8;
1622
1623/// Bitfield on register `WDTCSR`
1624pub const WDP: *mut u8 = 0x27 as *mut u8;
1625
1626/// Bitfield on register `WDTCSR`
1627pub const WDIF: *mut u8 = 0x80 as *mut u8;
1628
1629/// `ADC_MUX_DIFF` value group
1630#[allow(non_upper_case_globals)]
1631pub mod adc_mux_diff {
1632 /// ADC Single Ended Input pin 0.
1633 pub const ADC0: u32 = 0x0;
1634 /// ADC Single Ended Input pin 1.
1635 pub const ADC1: u32 = 0x1;
1636 /// ADC Single Ended Input pin 2.
1637 pub const ADC2: u32 = 0x2;
1638 /// ADC Single Ended Input pin 3.
1639 pub const ADC3: u32 = 0x3;
1640 /// ADC Single Ended Input pin 4.
1641 pub const ADC4: u32 = 0x4;
1642 /// ADC Single Ended Input pin 5.
1643 pub const ADC5: u32 = 0x5;
1644 /// ADC Single Ended Input pin 6.
1645 pub const ADC6: u32 = 0x6;
1646 /// ADC Single Ended Input pin 7.
1647 pub const ADC7: u32 = 0x7;
1648 /// ADC Differential Inputs Postive pin 0 Negative pin 0 10x Gain.
1649 pub const ADC0_ADC0_10X: u32 = 0x8;
1650 /// ADC Differential Inputs Postive pin 1 Negative pin 0 10x Gain.
1651 pub const ADC1_ADC0_10X: u32 = 0x9;
1652 /// ADC Differential Inputs Postive pin 0 Negative pin 0 200x Gain.
1653 pub const ADC0_ADC0_200x: u32 = 0xA;
1654 /// ADC Differential Inputs Postive pin 1 Negative pin 0 200x Gain.
1655 pub const ADC1_ADC0_200X: u32 = 0xB;
1656 /// ADC Differential Inputs Postive pin 2 Negative pin 2 10x Gain.
1657 pub const ADC2_ADC2_10X: u32 = 0xC;
1658 /// ADC Differential Inputs Postive pin 3 Negative pin 2 10x Gain.
1659 pub const ADC3_ADC2_10X: u32 = 0xD;
1660 /// ADC Differential Inputs Postive pin 2 Negative pin 2 200x Gain.
1661 pub const ADC2_ADC2_200X: u32 = 0xE;
1662 /// ADC Differential Inputs Postive pin 3 Negative pin 2 200x Gain.
1663 pub const ADC3_ADC2_200X: u32 = 0xF;
1664 /// ADC Differential Inputs Postive pin 0 Negative pin 1 1x Gain.
1665 pub const ADC0_ADC1_1X: u32 = 0x10;
1666 /// ADC Differential Inputs Postive pin 1 Negative pin 1 1x Gain.
1667 pub const ADC1_ADC1_1X: u32 = 0x11;
1668 /// ADC Differential Inputs Postive pin 2 Negative pin 1 1x Gain.
1669 pub const ADC2_ADC1_1X: u32 = 0x12;
1670 /// ADC Differential Inputs Postive pin 3 Negative pin 1 1x Gain.
1671 pub const ADC3_ADC1_1X: u32 = 0x13;
1672 /// ADC Differential Inputs Postive pin 4 Negative pin 1 1x Gain.
1673 pub const ADC4_ADC1_1X: u32 = 0x14;
1674 /// ADC Differential Inputs Postive pin 5 Negative pin 1 1x Gain.
1675 pub const ADC5_ADC1_1X: u32 = 0x15;
1676 /// ADC Differential Inputs Postive pin 6 Negative pin 1 1x Gain.
1677 pub const ADC6_ADC1_1X: u32 = 0x16;
1678 /// ADC Differential Inputs Postive pin 7 Negative pin 1 1x Gain.
1679 pub const ADC7_ADC1_1X: u32 = 0x17;
1680 /// ADC Differential Inputs Postive pin 0 Negative pin 2 1x Gain.
1681 pub const ADC0_ADC2_1X: u32 = 0x18;
1682 /// ADC Differential Inputs Postive pin 1 Negative pin 2 1x Gain.
1683 pub const ADC1_ADC2_1X: u32 = 0x19;
1684 /// ADC Differential Inputs Postive pin 2 Negative pin 2 1x Gain.
1685 pub const ADC2_ADC2_1X: u32 = 0x1A;
1686 /// ADC Differential Inputs Postive pin 3 Negative pin 2 1x Gain.
1687 pub const ADC3_ADC2_1X: u32 = 0x1B;
1688 /// ADC Differential Inputs Postive pin 4 Negative pin 2 1x Gain.
1689 pub const ADC4_ADC2_1X: u32 = 0x1C;
1690 /// ADC Differential Inputs Postive pin 5 Negative pin 2 1x Gain.
1691 pub const ADC5_ADC2_1X: u32 = 0x1D;
1692 /// Internal Reference (VBG).
1693 pub const ADC_VBG: u32 = 0x1E;
1694 /// 0V (GND).
1695 pub const ADC_GND: u32 = 0x1F;
1696}
1697
1698/// `ANALOG_ADC_AUTO_TRIGGER` value group
1699#[allow(non_upper_case_globals)]
1700pub mod analog_adc_auto_trigger {
1701 /// Free Running mode.
1702 pub const VAL_0x00: u32 = 0x0;
1703 /// Analog Comparator.
1704 pub const VAL_0x01: u32 = 0x1;
1705 /// External Interrupt Request 0.
1706 pub const VAL_0x02: u32 = 0x2;
1707 /// Timer/Counter0 Compare Match A.
1708 pub const VAL_0x03: u32 = 0x3;
1709 /// Timer/Counter0 Overflow.
1710 pub const VAL_0x04: u32 = 0x4;
1711 /// Timer/Counter1 Compare Match B.
1712 pub const VAL_0x05: u32 = 0x5;
1713 /// Timer/Counter1 Overflow.
1714 pub const VAL_0x06: u32 = 0x6;
1715 /// Timer/Counter1 Capture Event.
1716 pub const VAL_0x07: u32 = 0x7;
1717}
1718
1719/// `ANALOG_ADC_PRESCALER` value group
1720#[allow(non_upper_case_globals)]
1721pub mod analog_adc_prescaler {
1722 /// 2.
1723 pub const VAL_0x00: u32 = 0x0;
1724 /// 2.
1725 pub const VAL_0x01: u32 = 0x1;
1726 /// 4.
1727 pub const VAL_0x02: u32 = 0x2;
1728 /// 8.
1729 pub const VAL_0x03: u32 = 0x3;
1730 /// 16.
1731 pub const VAL_0x04: u32 = 0x4;
1732 /// 32.
1733 pub const VAL_0x05: u32 = 0x5;
1734 /// 64.
1735 pub const VAL_0x06: u32 = 0x6;
1736 /// 128.
1737 pub const VAL_0x07: u32 = 0x7;
1738}
1739
1740/// `ANALOG_ADC_V_REF6` value group
1741#[allow(non_upper_case_globals)]
1742pub mod analog_adc_v_ref6 {
1743 /// AREF, Internal Vref turned off.
1744 pub const VAL_0x00: u32 = 0x0;
1745 /// AVCC with external capacitor at AREF pin.
1746 pub const VAL_0x01: u32 = 0x1;
1747 /// Internal 1.1V Voltage Reference with external capacitor at AREF pin.
1748 pub const VAL_0x02: u32 = 0x2;
1749 /// Internal 2.56V Voltage Reference with external capacitor at AREF pin.
1750 pub const VAL_0x03: u32 = 0x3;
1751}
1752
1753/// `ANALOG_COMP_INTERRUPT` value group
1754#[allow(non_upper_case_globals)]
1755pub mod analog_comp_interrupt {
1756 /// Interrupt on Toggle.
1757 pub const VAL_0x00: u32 = 0x0;
1758 /// Reserved.
1759 pub const VAL_0x01: u32 = 0x1;
1760 /// Interrupt on Falling Edge.
1761 pub const VAL_0x02: u32 = 0x2;
1762 /// Interrupt on Rising Edge.
1763 pub const VAL_0x03: u32 = 0x3;
1764}
1765
1766/// `CLK_SEL_3BIT` value group
1767#[allow(non_upper_case_globals)]
1768pub mod clk_sel_3bit {
1769 /// No Clock Source (Stopped).
1770 pub const VAL_0x00: u32 = 0x0;
1771 /// Running, No Prescaling.
1772 pub const VAL_0x01: u32 = 0x1;
1773 /// Running, CLK/8.
1774 pub const VAL_0x02: u32 = 0x2;
1775 /// Running, CLK/32.
1776 pub const VAL_0x03: u32 = 0x3;
1777 /// Running, CLK/64.
1778 pub const VAL_0x04: u32 = 0x4;
1779 /// Running, CLK/128.
1780 pub const VAL_0x05: u32 = 0x5;
1781 /// Running, CLK/256.
1782 pub const VAL_0x06: u32 = 0x6;
1783 /// Running, CLK/1024.
1784 pub const VAL_0x07: u32 = 0x7;
1785}
1786
1787/// `CLK_SEL_3BIT_EXT` value group
1788#[allow(non_upper_case_globals)]
1789pub mod clk_sel_3bit_ext {
1790 /// No Clock Source (Stopped).
1791 pub const VAL_0x00: u32 = 0x0;
1792 /// Running, No Prescaling.
1793 pub const VAL_0x01: u32 = 0x1;
1794 /// Running, CLK/8.
1795 pub const VAL_0x02: u32 = 0x2;
1796 /// Running, CLK/64.
1797 pub const VAL_0x03: u32 = 0x3;
1798 /// Running, CLK/256.
1799 pub const VAL_0x04: u32 = 0x4;
1800 /// Running, CLK/1024.
1801 pub const VAL_0x05: u32 = 0x5;
1802 /// Running, ExtClk Tx Falling Edge.
1803 pub const VAL_0x06: u32 = 0x6;
1804 /// Running, ExtClk Tx Rising Edge.
1805 pub const VAL_0x07: u32 = 0x7;
1806}
1807
1808/// `COMM_SCK_RATE_3BIT` value group
1809#[allow(non_upper_case_globals)]
1810pub mod comm_sck_rate_3bit {
1811 /// fosc/4.
1812 pub const VAL_0x00: u32 = 0x0;
1813 /// fosc/16.
1814 pub const VAL_0x01: u32 = 0x1;
1815 /// fosc/64.
1816 pub const VAL_0x02: u32 = 0x2;
1817 /// fosc/128.
1818 pub const VAL_0x03: u32 = 0x3;
1819 /// fosc/2.
1820 pub const VAL_0x04: u32 = 0x4;
1821 /// fosc/8.
1822 pub const VAL_0x05: u32 = 0x5;
1823 /// fosc/32.
1824 pub const VAL_0x06: u32 = 0x6;
1825 /// fosc/64.
1826 pub const VAL_0x07: u32 = 0x7;
1827}
1828
1829/// `COMM_STOP_BIT_SEL` value group
1830#[allow(non_upper_case_globals)]
1831pub mod comm_stop_bit_sel {
1832 /// 1-bit.
1833 pub const VAL_0x00: u32 = 0x0;
1834 /// 2-bit.
1835 pub const VAL_0x01: u32 = 0x1;
1836}
1837
1838/// `COMM_TWI_PRESACLE` value group
1839#[allow(non_upper_case_globals)]
1840pub mod comm_twi_presacle {
1841 /// 1.
1842 pub const VAL_0x00: u32 = 0x0;
1843 /// 4.
1844 pub const VAL_0x01: u32 = 0x1;
1845 /// 16.
1846 pub const VAL_0x02: u32 = 0x2;
1847 /// 64.
1848 pub const VAL_0x03: u32 = 0x3;
1849}
1850
1851/// `COMM_UPM_PARITY_MODE` value group
1852#[allow(non_upper_case_globals)]
1853pub mod comm_upm_parity_mode {
1854 /// Disabled.
1855 pub const VAL_0x00: u32 = 0x0;
1856 /// Reserved.
1857 pub const VAL_0x01: u32 = 0x1;
1858 /// Enabled, Even Parity.
1859 pub const VAL_0x02: u32 = 0x2;
1860 /// Enabled, Odd Parity.
1861 pub const VAL_0x03: u32 = 0x3;
1862}
1863
1864/// `COMM_USART_MODE_2BIT` value group
1865#[allow(non_upper_case_globals)]
1866pub mod comm_usart_mode_2bit {
1867 /// Asynchronous USART.
1868 pub const VAL_0x00: u32 = 0x0;
1869 /// Synchronous USART.
1870 pub const VAL_0x01: u32 = 0x1;
1871 /// Master SPI.
1872 pub const VAL_0x03: u32 = 0x3;
1873}
1874
1875/// `CPU_CLK_PRESCALE_4_BITS_SMALL` value group
1876#[allow(non_upper_case_globals)]
1877pub mod cpu_clk_prescale_4_bits_small {
1878 /// 1.
1879 pub const VAL_0x00: u32 = 0x0;
1880 /// 2.
1881 pub const VAL_0x01: u32 = 0x1;
1882 /// 4.
1883 pub const VAL_0x02: u32 = 0x2;
1884 /// 8.
1885 pub const VAL_0x03: u32 = 0x3;
1886 /// 16.
1887 pub const VAL_0x04: u32 = 0x4;
1888 /// 32.
1889 pub const VAL_0x05: u32 = 0x5;
1890 /// 64.
1891 pub const VAL_0x06: u32 = 0x6;
1892 /// 128.
1893 pub const VAL_0x07: u32 = 0x7;
1894 /// 256.
1895 pub const VAL_0x08: u32 = 0x8;
1896}
1897
1898/// `CPU_SLEEP_MODE_3BITS` value group
1899#[allow(non_upper_case_globals)]
1900pub mod cpu_sleep_mode_3bits {
1901 /// Idle.
1902 pub const IDLE: u32 = 0x0;
1903 /// ADC Noise Reduction (If Available).
1904 pub const ADC: u32 = 0x1;
1905 /// Power Down.
1906 pub const PDOWN: u32 = 0x2;
1907 /// Power Save.
1908 pub const PSAVE: u32 = 0x3;
1909 /// Reserved.
1910 pub const VAL_0x04: u32 = 0x4;
1911 /// Reserved.
1912 pub const VAL_0x05: u32 = 0x5;
1913 /// Standby.
1914 pub const STDBY: u32 = 0x6;
1915 /// Extended Standby.
1916 pub const ESTDBY: u32 = 0x7;
1917}
1918
1919/// `EEP_MODE` value group
1920#[allow(non_upper_case_globals)]
1921pub mod eep_mode {
1922 /// Erase and Write in one operation.
1923 pub const VAL_0x00: u32 = 0x0;
1924 /// Erase Only.
1925 pub const VAL_0x01: u32 = 0x1;
1926 /// Write Only.
1927 pub const VAL_0x02: u32 = 0x2;
1928}
1929
1930/// `ENUM_BLB` value group
1931#[allow(non_upper_case_globals)]
1932pub mod enum_blb {
1933 /// LPM and SPM prohibited in Application Section.
1934 pub const LPM_SPM_DISABLE: u32 = 0x0;
1935 /// LPM prohibited in Application Section.
1936 pub const LPM_DISABLE: u32 = 0x1;
1937 /// SPM prohibited in Application Section.
1938 pub const SPM_DISABLE: u32 = 0x2;
1939 /// No lock on SPM and LPM in Application Section.
1940 pub const NO_LOCK: u32 = 0x3;
1941}
1942
1943/// `ENUM_BLB2` value group
1944#[allow(non_upper_case_globals)]
1945pub mod enum_blb2 {
1946 /// LPM and SPM prohibited in Boot Section.
1947 pub const LPM_SPM_DISABLE: u32 = 0x0;
1948 /// LPM prohibited in Boot Section.
1949 pub const LPM_DISABLE: u32 = 0x1;
1950 /// SPM prohibited in Boot Section.
1951 pub const SPM_DISABLE: u32 = 0x2;
1952 /// No lock on SPM and LPM in Boot Section.
1953 pub const NO_LOCK: u32 = 0x3;
1954}
1955
1956/// `ENUM_BODLEVEL` value group
1957#[allow(non_upper_case_globals)]
1958pub mod enum_bodlevel {
1959 /// Brown-out detection disabled; \[BODLEVEL=111\].
1960 pub const DISABLED: u32 = 0x7;
1961 /// Brown-out detection at VCC=1.8 V.
1962 pub const _1V8: u32 = 0x6;
1963 /// Brown-out detection at VCC=2.7 V.
1964 pub const _2V7: u32 = 0x5;
1965 /// Brown-out detection at VCC=4.3 V.
1966 pub const _4V3: u32 = 0x4;
1967}
1968
1969/// `ENUM_BOOTSZ` value group
1970#[allow(non_upper_case_globals)]
1971pub mod enum_bootsz {
1972 /// Boot Flash size=512 words Boot start address=$FE00.
1973 pub const _512W_FE00: u32 = 0x3;
1974 /// Boot Flash size=1024 words Boot address=$FC00.
1975 pub const _1024W_FC00: u32 = 0x2;
1976 /// Boot Flash size=2048 words Boot address=$F800.
1977 pub const _2048W_F800: u32 = 0x1;
1978 /// Boot Flash size=4096 words Boot address=$F000.
1979 pub const _4096W_F000: u32 = 0x0;
1980}
1981
1982/// `ENUM_LB` value group
1983#[allow(non_upper_case_globals)]
1984pub mod enum_lb {
1985 /// Further programming and verification disabled.
1986 pub const PROG_VER_DISABLED: u32 = 0x0;
1987 /// Further programming disabled.
1988 pub const PROG_DISABLED: u32 = 0x2;
1989 /// No memory lock features enabled.
1990 pub const NO_LOCK: u32 = 0x3;
1991}
1992
1993/// `ENUM_SUT_CKSEL` value group
1994#[allow(non_upper_case_globals)]
1995pub mod enum_sut_cksel {
1996 /// Ext. Clock; Start-up time: 6 CK + 0 ms.
1997 pub const EXTCLK_6CK_0MS: u32 = 0x0;
1998 /// Ext. Clock; Start-up time: 6 CK + 4.1 ms.
1999 pub const EXTCLK_6CK_4MS1: u32 = 0x10;
2000 /// Ext. Clock; Start-up time: 6 CK + 65 ms.
2001 pub const EXTCLK_6CK_65MS: u32 = 0x20;
2002 /// Int. RC Osc.; Start-up time: 6 CK + 0 ms.
2003 pub const INTRCOSC_6CK_0MS: u32 = 0x2;
2004 /// Int. RC Osc.; Start-up time: 6 CK + 4.1 ms.
2005 pub const INTRCOSC_6CK_4MS1: u32 = 0x12;
2006 /// Int. RC Osc.; Start-up time: 6 CK + 65 ms.
2007 pub const INTRCOSC_6CK_65MS: u32 = 0x22;
2008 /// Int. 128kHz RC Osc.; Start-up time: 6 CK + 0 ms.
2009 pub const INTRCOSC_128KHZ_6CK_0MS: u32 = 0x3;
2010 /// Int. 128kHz RC Osc.; Start-up time: 6 CK + 4 ms.
2011 pub const INTRCOSC_128KHZ_6CK_4MS: u32 = 0x13;
2012 /// Int. 128kHz RC Osc.; Start-up time: 6 CK + 64 ms.
2013 pub const INTRCOSC_128KHZ_6CK_64MS: u32 = 0x23;
2014 /// Ext. Low-Freq. Crystal; Start-up time: 1K CK + 0 ms.
2015 pub const EXTLOFXTAL_1KCK_0MS: u32 = 0x4;
2016 /// Ext. Low-Freq. Crystal; Start-up time: 1K CK + 4.1 ms.
2017 pub const EXTLOFXTAL_1KCK_4MS1: u32 = 0x14;
2018 /// Ext. Low-Freq. Crystal; Start-up time: 1K CK + 65 ms.
2019 pub const EXTLOFXTAL_1KCK_65MS: u32 = 0x24;
2020 /// Ext. Low-Freq. Crystal; Start-up time: 32K CK + 0 ms.
2021 pub const EXTLOFXTAL_32KCK_0MS: u32 = 0x5;
2022 /// Ext. Low-Freq. Crystal; Start-up time: 32K CK + 4.1 ms.
2023 pub const EXTLOFXTAL_32KCK_4MS1: u32 = 0x15;
2024 /// Ext. Low-Freq. Crystal; Start-up time: 32K CK + 65 ms.
2025 pub const EXTLOFXTAL_32KCK_65MS: u32 = 0x25;
2026 /// Full Swing Oscillator; Start-up time: 258 CK + 4.1 ms; Ceramic res.; fast rising power.
2027 pub const FSOSC_258CK_4MS1_CRES_FASTPWR: u32 = 0x6;
2028 /// Full Swing Oscillator; Start-up time: 258 CK + 65 ms; Ceramic res.; slowly rising power.
2029 pub const FSOSC_258CK_65MS_CRES_SLOWPWR: u32 = 0x16;
2030 /// Full Swing Oscillator; Start-up time: 1K CK + 0 ms; Ceramic res.; BOD enable.
2031 pub const FSOSC_1KCK_0MS_CRES_BODEN: u32 = 0x26;
2032 /// Full Swing Oscillator; Start-up time: 1K CK + 4.1 ms; Ceramic res.; fast rising power.
2033 pub const FSOSC_1KCK_4MS1_CRES_FASTPWR: u32 = 0x36;
2034 /// Full Swing Oscillator; Start-up time: 1K CK + 65 ms; Ceramic res.; slowly rising power.
2035 pub const FSOSC_1KCK_65MS_CRES_SLOWPWR: u32 = 0x7;
2036 /// Full Swing Oscillator; Start-up time: 16K CK + 0 ms; Crystal Osc.; BOD enabled.
2037 pub const FSOSC_16KCK_0MS_XOSC_BODEN: u32 = 0x17;
2038 /// Full Swing Oscillator; Start-up time: 16K CK + 4.1 ms; Crystal Osc.; fast rising power.
2039 pub const FSOSC_16KCK_4MS1_XOSC_FASTPWR: u32 = 0x27;
2040 /// Full Swing Oscillator; Start-up time: 16K CK + 65 ms; Crystal Osc.; slowly rising power.
2041 pub const FSOSC_16KCK_65MS_XOSC_SLOWPWR: u32 = 0x37;
2042 /// Ext. Crystal Osc. 0.4-0.9 MHz; Start-up time: 258 CK + 4.1 ms.
2043 pub const EXTXOSC_0MHZ4_0MHZ9_258CK_4MS1: u32 = 0x8;
2044 /// Ext. Crystal Osc. 0.4-0.9 MHz; Start-up time: 258 CK + 65 ms.
2045 pub const EXTXOSC_0MHZ4_0MHZ9_258CK_65MS: u32 = 0x18;
2046 /// Ext. Crystal Osc. 0.4-0.9 MHz; Start-up time: 1K CK + 0 ms.
2047 pub const EXTXOSC_0MHZ4_0MHZ9_1KCK_0MS: u32 = 0x28;
2048 /// Ext. Crystal Osc. 0.4-0.9 MHz; Start-up time: 1K CK + 4.1 ms.
2049 pub const EXTXOSC_0MHZ4_0MHZ9_1KCK_4MS1: u32 = 0x38;
2050 /// Ext. Crystal Osc. 0.4-0.9 MHz; Start-up time: 1K CK + 65 ms.
2051 pub const EXTXOSC_0MHZ4_0MHZ9_1KCK_65MS: u32 = 0x9;
2052 /// Ext. Crystal Osc. 0.4-0.9 MHz; Start-up time: 16K CK + 0 ms.
2053 pub const EXTXOSC_0MHZ4_0MHZ9_16KCK_0MS: u32 = 0x19;
2054 /// Ext. Crystal Osc. 0.4-0.9 MHz; Start-up time: 16K CK + 4.1 ms.
2055 pub const EXTXOSC_0MHZ4_0MHZ9_16KCK_4MS1: u32 = 0x29;
2056 /// Ext. Crystal Osc. 0.4-0.9 MHz; Start-up time: 16K CK + 65 ms.
2057 pub const EXTXOSC_0MHZ4_0MHZ9_16KCK_65MS: u32 = 0x39;
2058 /// Ext. Crystal Osc. 0.9-3.0 MHz; Start-up time: 258 CK + 4.1 ms.
2059 pub const EXTXOSC_0MHZ9_3MHZ_258CK_4MS1: u32 = 0xA;
2060 /// Ext. Crystal Osc. 0.9-3.0 MHz; Start-up time: 258 CK + 65 ms.
2061 pub const EXTXOSC_0MHZ9_3MHZ_258CK_65MS: u32 = 0x1A;
2062 /// Ext. Crystal Osc. 0.9-3.0 MHz; Start-up time: 1K CK + 0 ms.
2063 pub const EXTXOSC_0MHZ9_3MHZ_1KCK_0MS: u32 = 0x2A;
2064 /// Ext. Crystal Osc. 0.9-3.0 MHz; Start-up time: 1K CK + 4.1 ms.
2065 pub const EXTXOSC_0MHZ9_3MHZ_1KCK_4MS1: u32 = 0x3A;
2066 /// Ext. Crystal Osc. 0.9-3.0 MHz; Start-up time: 1K CK + 65 ms.
2067 pub const EXTXOSC_0MHZ9_3MHZ_1KCK_65MS: u32 = 0xB;
2068 /// Ext. Crystal Osc. 0.9-3.0 MHz; Start-up time: 16K CK + 0 ms.
2069 pub const EXTXOSC_0MHZ9_3MHZ_16KCK_0MS: u32 = 0x1B;
2070 /// Ext. Crystal Osc. 0.9-3.0 MHz; Start-up time: 16K CK + 4.1 ms.
2071 pub const EXTXOSC_0MHZ9_3MHZ_16KCK_4MS1: u32 = 0x2B;
2072 /// Ext. Crystal Osc. 0.9-3.0 MHz; Start-up time: 16K CK + 65 ms.
2073 pub const EXTXOSC_0MHZ9_3MHZ_16KCK_65MS: u32 = 0x3B;
2074 /// Ext. Crystal Osc. 3.0-8.0 MHz; Start-up time: 258 CK + 4.1 ms.
2075 pub const EXTXOSC_3MHZ_8MHZ_258CK_4MS1: u32 = 0xC;
2076 /// Ext. Crystal Osc. 3.0-8.0 MHz; Start-up time: 258 CK + 65 ms.
2077 pub const EXTXOSC_3MHZ_8MHZ_258CK_65MS: u32 = 0x1C;
2078 /// Ext. Crystal Osc. 3.0-8.0 MHz; Start-up time: 1K CK + 0 ms.
2079 pub const EXTXOSC_3MHZ_8MHZ_1KCK_0MS: u32 = 0x2C;
2080 /// Ext. Crystal Osc. 3.0-8.0 MHz; Start-up time: 1K CK + 4.1 ms.
2081 pub const EXTXOSC_3MHZ_8MHZ_1KCK_4MS1: u32 = 0x3C;
2082 /// Ext. Crystal Osc. 3.0-8.0 MHz; Start-up time: 1K CK + 65 ms.
2083 pub const EXTXOSC_3MHZ_8MHZ_1KCK_65MS: u32 = 0xD;
2084 /// Ext. Crystal Osc. 3.0-8.0 MHz; Start-up time: 16K CK + 0 ms.
2085 pub const EXTXOSC_3MHZ_8MHZ_16KCK_0MS: u32 = 0x1D;
2086 /// Ext. Crystal Osc. 3.0-8.0 MHz; Start-up time: 16K CK + 4.1 ms.
2087 pub const EXTXOSC_3MHZ_8MHZ_16KCK_4MS1: u32 = 0x2D;
2088 /// Ext. Crystal Osc. 3.0-8.0 MHz; Start-up time: 16K CK + 65 ms.
2089 pub const EXTXOSC_3MHZ_8MHZ_16KCK_65MS: u32 = 0x3D;
2090 /// Ext. Crystal Osc. 8.0- MHz; Start-up time: 258 CK + 4.1 ms.
2091 pub const EXTXOSC_8MHZ_XX_258CK_4MS1: u32 = 0xE;
2092 /// Ext. Crystal Osc. 8.0- MHz; Start-up time: 258 CK + 65 ms.
2093 pub const EXTXOSC_8MHZ_XX_258CK_65MS: u32 = 0x1E;
2094 /// Ext. Crystal Osc. 8.0- MHz; Start-up time: 1K CK + 0 ms.
2095 pub const EXTXOSC_8MHZ_XX_1KCK_0MS: u32 = 0x2E;
2096 /// Ext. Crystal Osc. 8.0- MHz; Start-up time: 1K CK + 4.1 ms.
2097 pub const EXTXOSC_8MHZ_XX_1KCK_4MS1: u32 = 0x3E;
2098 /// Ext. Crystal Osc. 8.0- MHz; Start-up time: 1K CK + 65 ms.
2099 pub const EXTXOSC_8MHZ_XX_1KCK_65MS: u32 = 0xF;
2100 /// Ext. Crystal Osc. 8.0- MHz; Start-up time: 16K CK + 0 ms.
2101 pub const EXTXOSC_8MHZ_XX_16KCK_0MS: u32 = 0x1F;
2102 /// Ext. Crystal Osc. 8.0- MHz; Start-up time: 16K CK + 4.1 ms.
2103 pub const EXTXOSC_8MHZ_XX_16KCK_4MS1: u32 = 0x2F;
2104 /// Ext. Crystal Osc. 8.0- MHz; Start-up time: 16K CK + 65 ms.
2105 pub const EXTXOSC_8MHZ_XX_16KCK_65MS: u32 = 0x3F;
2106}
2107
2108/// Interrupt Sense Control
2109#[allow(non_upper_case_globals)]
2110pub mod interrupt_sense_control {
2111 /// Low Level of INTX.
2112 pub const VAL_0x00: u32 = 0x0;
2113 /// Any Logical Change of INTX.
2114 pub const VAL_0x01: u32 = 0x1;
2115 /// Falling Edge of INTX.
2116 pub const VAL_0x02: u32 = 0x2;
2117 /// Rising Edge of INTX.
2118 pub const VAL_0x03: u32 = 0x3;
2119}
2120
2121/// Oscillator Calibration Values
2122#[allow(non_upper_case_globals)]
2123pub mod osccal_value_addresses {
2124 /// 8.0 MHz.
2125 pub const _8_0_MHz: u32 = 0x0;
2126}
2127
2128/// `WDOG_TIMER_PRESCALE_4BITS` value group
2129#[allow(non_upper_case_globals)]
2130pub mod wdog_timer_prescale_4bits {
2131 /// Oscillator Cycles 2K.
2132 pub const VAL_0x00: u32 = 0x0;
2133 /// Oscillator Cycles 4K.
2134 pub const VAL_0x01: u32 = 0x1;
2135 /// Oscillator Cycles 8K.
2136 pub const VAL_0x02: u32 = 0x2;
2137 /// Oscillator Cycles 16K.
2138 pub const VAL_0x03: u32 = 0x3;
2139 /// Oscillator Cycles 32K.
2140 pub const VAL_0x04: u32 = 0x4;
2141 /// Oscillator Cycles 64K.
2142 pub const VAL_0x05: u32 = 0x5;
2143 /// Oscillator Cycles 128K.
2144 pub const VAL_0x06: u32 = 0x6;
2145 /// Oscillator Cycles 256K.
2146 pub const VAL_0x07: u32 = 0x7;
2147 /// Oscillator Cycles 512K.
2148 pub const VAL_0x08: u32 = 0x8;
2149 /// Oscillator Cycles 1024K.
2150 pub const VAL_0x09: u32 = 0x9;
2151}
2152