avrd/gen/
atmega325.rs

1//! The AVR ATmega325 microcontroller
2//!
3//! # Variants
4//! |        | Pinout | Mcu age | Operating temperature | Operating voltage | Max speed |
5//! |--------|--------|---------|-----------------------|-------------------|-----------|
6//! | standard |  |  | 0°C - 0°C | 1.8V - 5.5V | 0 MHz |
7//!
8
9#![allow(non_upper_case_globals)]
10
11/// `LOW` register
12///
13/// Bitfields:
14///
15/// | Name | Mask (binary) |
16/// | ---- | ------------- |
17/// | CKDIV8 | 10000000 |
18/// | CKOUT | 1000000 |
19/// | SUT_CKSEL | 111111 |
20pub const LOW: *mut u8 = 0x0 as *mut u8;
21
22/// `LOCKBIT` register
23///
24/// Bitfields:
25///
26/// | Name | Mask (binary) |
27/// | ---- | ------------- |
28/// | BLB0 | 1100 |
29/// | LB | 11 |
30/// | BLB1 | 110000 |
31pub const LOCKBIT: *mut u8 = 0x0 as *mut u8;
32
33/// `HIGH` register
34///
35/// Bitfields:
36///
37/// | Name | Mask (binary) |
38/// | ---- | ------------- |
39/// | SPIEN | 100000 |
40/// | BOOTSZ | 110 |
41/// | JTAGEN | 1000000 |
42/// | BOOTRST | 1 |
43/// | WDTON | 10000 |
44/// | EESAVE | 1000 |
45/// | OCDEN | 10000000 |
46pub const HIGH: *mut u8 = 0x1 as *mut u8;
47
48/// `EXTENDED` register
49///
50/// Bitfields:
51///
52/// | Name | Mask (binary) |
53/// | ---- | ------------- |
54/// | RSTDISBL | 1 |
55/// | BODLEVEL | 110 |
56pub const EXTENDED: *mut u8 = 0x2 as *mut u8;
57
58/// Port A Input Pins.
59pub const PINA: *mut u8 = 0x20 as *mut u8;
60
61/// Port A Data Direction Register.
62pub const DDRA: *mut u8 = 0x21 as *mut u8;
63
64/// Port A Data Register.
65pub const PORTA: *mut u8 = 0x22 as *mut u8;
66
67/// Port B Input Pins.
68pub const PINB: *mut u8 = 0x23 as *mut u8;
69
70/// Port B Data Direction Register.
71pub const DDRB: *mut u8 = 0x24 as *mut u8;
72
73/// Port B Data Register.
74pub const PORTB: *mut u8 = 0x25 as *mut u8;
75
76/// Port C Input Pins.
77pub const PINC: *mut u8 = 0x26 as *mut u8;
78
79/// Port C Data Direction Register.
80pub const DDRC: *mut u8 = 0x27 as *mut u8;
81
82/// Port C Data Register.
83pub const PORTC: *mut u8 = 0x28 as *mut u8;
84
85/// Port D Input Pins.
86pub const PIND: *mut u8 = 0x29 as *mut u8;
87
88/// Port D Data Direction Register.
89pub const DDRD: *mut u8 = 0x2A as *mut u8;
90
91/// Port D Data Register.
92pub const PORTD: *mut u8 = 0x2B as *mut u8;
93
94/// Input Pins, Port E.
95pub const PINE: *mut u8 = 0x2C as *mut u8;
96
97/// Data Direction Register, Port E.
98pub const DDRE: *mut u8 = 0x2D as *mut u8;
99
100/// Data Register, Port E.
101pub const PORTE: *mut u8 = 0x2E as *mut u8;
102
103/// Input Pins, Port F.
104pub const PINF: *mut u8 = 0x2F as *mut u8;
105
106/// Data Direction Register, Port F.
107pub const DDRF: *mut u8 = 0x30 as *mut u8;
108
109/// Data Register, Port F.
110pub const PORTF: *mut u8 = 0x31 as *mut u8;
111
112/// Port G Input Pins.
113pub const PING: *mut u8 = 0x32 as *mut u8;
114
115/// Port G Data Direction Register.
116pub const DDRG: *mut u8 = 0x33 as *mut u8;
117
118/// Port G Data Register.
119pub const PORTG: *mut u8 = 0x34 as *mut u8;
120
121/// Timer/Counter0 Interrupt Flag register.
122///
123/// Bitfields:
124///
125/// | Name | Mask (binary) |
126/// | ---- | ------------- |
127/// | OCF0A | 10 |
128/// | TOV0 | 1 |
129pub const TIFR0: *mut u8 = 0x35 as *mut u8;
130
131/// Timer/Counter1 Interrupt Flag register.
132///
133/// Bitfields:
134///
135/// | Name | Mask (binary) |
136/// | ---- | ------------- |
137/// | OCF1A | 10 |
138/// | OCF1B | 100 |
139/// | ICF1 | 100000 |
140/// | TOV1 | 1 |
141pub const TIFR1: *mut u8 = 0x36 as *mut u8;
142
143/// Timer/Counter2 Interrupt Flag Register.
144///
145/// Bitfields:
146///
147/// | Name | Mask (binary) |
148/// | ---- | ------------- |
149/// | TOV2 | 1 |
150/// | OCF2A | 10 |
151pub const TIFR2: *mut u8 = 0x37 as *mut u8;
152
153/// External Interrupt Flag Register.
154///
155/// Bitfields:
156///
157/// | Name | Mask (binary) |
158/// | ---- | ------------- |
159/// | INTF0 | 1 |
160/// | PCIF | 11110000 |
161pub const EIFR: *mut u8 = 0x3C as *mut u8;
162
163/// External Interrupt Mask Register.
164///
165/// Bitfields:
166///
167/// | Name | Mask (binary) |
168/// | ---- | ------------- |
169/// | PCIE | 11110000 |
170/// | INT0 | 1 |
171pub const EIMSK: *mut u8 = 0x3D as *mut u8;
172
173/// General Purpose IO Register 0.
174pub const GPIOR0: *mut u8 = 0x3E as *mut u8;
175
176/// EEPROM Control Register.
177///
178/// Bitfields:
179///
180/// | Name | Mask (binary) |
181/// | ---- | ------------- |
182/// | EERIE | 1000 |
183/// | EEMWE | 100 |
184/// | EEWE | 10 |
185/// | EERE | 1 |
186pub const EECR: *mut u8 = 0x3F as *mut u8;
187
188/// EEPROM Data Register.
189pub const EEDR: *mut u8 = 0x40 as *mut u8;
190
191/// EEPROM Read/Write Access  Bytes.
192pub const EEAR: *mut u16 = 0x41 as *mut u16;
193
194/// EEPROM Read/Write Access  Bytes low byte.
195pub const EEARL: *mut u8 = 0x41 as *mut u8;
196
197/// EEPROM Read/Write Access  Bytes high byte.
198pub const EEARH: *mut u8 = 0x42 as *mut u8;
199
200/// General Timer/Counter Control Register.
201///
202/// Bitfields:
203///
204/// | Name | Mask (binary) |
205/// | ---- | ------------- |
206/// | PSR2 | 10 |
207pub const GTCCR: *mut u8 = 0x43 as *mut u8;
208
209/// Timer/Counter0 Control Register.
210///
211/// Bitfields:
212///
213/// | Name | Mask (binary) |
214/// | ---- | ------------- |
215/// | CS0 | 111 |
216/// | WGM00 | 1000000 |
217/// | WGM01 | 1000 |
218/// | COM0A | 110000 |
219/// | FOC0A | 10000000 |
220pub const TCCR0A: *mut u8 = 0x44 as *mut u8;
221
222/// Timer/Counter0.
223pub const TCNT0: *mut u8 = 0x46 as *mut u8;
224
225/// Timer/Counter0 Output Compare Register.
226pub const OCR0A: *mut u8 = 0x47 as *mut u8;
227
228/// General Purpose IO Register 1.
229pub const GPIOR1: *mut u8 = 0x4A as *mut u8;
230
231/// General Purpose IO Register 2.
232pub const GPIOR2: *mut u8 = 0x4B as *mut u8;
233
234/// SPI Control Register.
235///
236/// Bitfields:
237///
238/// | Name | Mask (binary) |
239/// | ---- | ------------- |
240/// | MSTR | 10000 |
241/// | SPE | 1000000 |
242/// | DORD | 100000 |
243/// | CPOL | 1000 |
244/// | SPR | 11 |
245/// | CPHA | 100 |
246/// | SPIE | 10000000 |
247pub const SPCR: *mut u8 = 0x4C as *mut u8;
248
249/// SPI Status Register.
250///
251/// Bitfields:
252///
253/// | Name | Mask (binary) |
254/// | ---- | ------------- |
255/// | SPI2X | 1 |
256/// | SPIF | 10000000 |
257/// | WCOL | 1000000 |
258pub const SPSR: *mut u8 = 0x4D as *mut u8;
259
260/// SPI Data Register.
261pub const SPDR: *mut u8 = 0x4E as *mut u8;
262
263/// Analog Comparator Control And Status Register.
264///
265/// Bitfields:
266///
267/// | Name | Mask (binary) |
268/// | ---- | ------------- |
269/// | ACIS | 11 |
270/// | ACI | 10000 |
271/// | ACBG | 1000000 |
272/// | ACO | 100000 |
273/// | ACD | 10000000 |
274/// | ACIE | 1000 |
275/// | ACIC | 100 |
276pub const ACSR: *mut u8 = 0x50 as *mut u8;
277
278/// On-Chip Debug Related Register in I/O Memory.
279pub const OCDR: *mut u8 = 0x51 as *mut u8;
280
281/// Sleep Mode Control Register.
282///
283/// Bitfields:
284///
285/// | Name | Mask (binary) |
286/// | ---- | ------------- |
287/// | SM | 1110 |
288/// | SE | 1 |
289pub const SMCR: *mut u8 = 0x53 as *mut u8;
290
291/// MCU Status Register.
292///
293/// Bitfields:
294///
295/// | Name | Mask (binary) |
296/// | ---- | ------------- |
297/// | EXTRF | 10 |
298/// | PORF | 1 |
299/// | JTRF | 10000 |
300/// | BORF | 100 |
301/// | WDRF | 1000 |
302pub const MCUSR: *mut u8 = 0x54 as *mut u8;
303
304/// MCU Control Register.
305///
306/// Bitfields:
307///
308/// | Name | Mask (binary) |
309/// | ---- | ------------- |
310/// | IVCE | 1 |
311/// | PUD | 10000 |
312/// | IVSEL | 10 |
313pub const MCUCR: *mut u8 = 0x55 as *mut u8;
314
315/// Store Program Memory Control Register.
316///
317/// Bitfields:
318///
319/// | Name | Mask (binary) |
320/// | ---- | ------------- |
321/// | RWWSRE | 10000 |
322/// | SPMEN | 1 |
323/// | PGWRT | 100 |
324/// | PGERS | 10 |
325/// | RWWSB | 1000000 |
326/// | SPMIE | 10000000 |
327/// | BLBSET | 1000 |
328pub const SPMCSR: *mut u8 = 0x57 as *mut u8;
329
330/// Stack Pointer  low byte.
331pub const SPL: *mut u8 = 0x5D as *mut u8;
332
333/// Stack Pointer.
334pub const SP: *mut u16 = 0x5D as *mut u16;
335
336/// Stack Pointer  high byte.
337pub const SPH: *mut u8 = 0x5E as *mut u8;
338
339/// Status Register.
340///
341/// Bitfields:
342///
343/// | Name | Mask (binary) |
344/// | ---- | ------------- |
345/// | H | 100000 |
346/// | S | 10000 |
347/// | T | 1000000 |
348/// | C | 1 |
349/// | I | 10000000 |
350/// | N | 100 |
351/// | Z | 10 |
352/// | V | 1000 |
353pub const SREG: *mut u8 = 0x5F as *mut u8;
354
355/// Watchdog Timer Control Register.
356///
357/// Bitfields:
358///
359/// | Name | Mask (binary) |
360/// | ---- | ------------- |
361/// | WDCE | 10000 |
362/// | WDP | 111 |
363/// | WDE | 1000 |
364pub const WDTCR: *mut u8 = 0x60 as *mut u8;
365
366/// Clock Prescale Register.
367///
368/// Bitfields:
369///
370/// | Name | Mask (binary) |
371/// | ---- | ------------- |
372/// | CLKPS | 1111 |
373/// | CLKPCE | 10000000 |
374pub const CLKPR: *mut u8 = 0x61 as *mut u8;
375
376/// Power Reduction Register.
377///
378/// Bitfields:
379///
380/// | Name | Mask (binary) |
381/// | ---- | ------------- |
382/// | PRTIM1 | 1000 |
383/// | PRSPI | 100 |
384/// | PRADC | 1 |
385/// | PRUSART0 | 10 |
386pub const PRR: *mut u8 = 0x64 as *mut u8;
387
388/// Oscillator Calibration Value.
389pub const OSCCAL: *mut u8 = 0x66 as *mut u8;
390
391/// External Interrupt Control Register A.
392///
393/// Bitfields:
394///
395/// | Name | Mask (binary) |
396/// | ---- | ------------- |
397/// | ISC01 | 10 |
398/// | ISC00 | 1 |
399pub const EICRA: *mut u8 = 0x69 as *mut u8;
400
401/// Pin Change Mask Register 0.
402pub const PCMSK0: *mut u8 = 0x6B as *mut u8;
403
404/// Pin Change Mask Register 1.
405pub const PCMSK1: *mut u8 = 0x6C as *mut u8;
406
407/// Timer/Counter0 Interrupt Mask Register.
408///
409/// Bitfields:
410///
411/// | Name | Mask (binary) |
412/// | ---- | ------------- |
413/// | TOIE0 | 1 |
414/// | OCIE0A | 10 |
415pub const TIMSK0: *mut u8 = 0x6E as *mut u8;
416
417/// Timer/Counter1 Interrupt Mask Register.
418///
419/// Bitfields:
420///
421/// | Name | Mask (binary) |
422/// | ---- | ------------- |
423/// | ICIE1 | 100000 |
424/// | OCIE1B | 100 |
425/// | OCIE1A | 10 |
426/// | TOIE1 | 1 |
427pub const TIMSK1: *mut u8 = 0x6F as *mut u8;
428
429/// Timer/Counter2 Interrupt Mask register.
430///
431/// Bitfields:
432///
433/// | Name | Mask (binary) |
434/// | ---- | ------------- |
435/// | TOIE2 | 1 |
436/// | OCIE2A | 10 |
437pub const TIMSK2: *mut u8 = 0x70 as *mut u8;
438
439/// ADC Data Register  Bytes low byte.
440pub const ADCL: *mut u8 = 0x78 as *mut u8;
441
442/// ADC Data Register  Bytes.
443pub const ADC: *mut u16 = 0x78 as *mut u16;
444
445/// ADC Data Register  Bytes high byte.
446pub const ADCH: *mut u8 = 0x79 as *mut u8;
447
448/// The ADC Control and Status register.
449///
450/// Bitfields:
451///
452/// | Name | Mask (binary) |
453/// | ---- | ------------- |
454/// | ADSC | 1000000 |
455/// | ADIE | 1000 |
456/// | ADPS | 111 |
457/// | ADIF | 10000 |
458/// | ADEN | 10000000 |
459/// | ADATE | 100000 |
460pub const ADCSRA: *mut u8 = 0x7A as *mut u8;
461
462/// ADC Control and Status Register B.
463///
464/// Bitfields:
465///
466/// | Name | Mask (binary) |
467/// | ---- | ------------- |
468/// | ACME | 1000000 |
469pub const ADCSRB: *mut u8 = 0x7B as *mut u8;
470
471/// The ADC multiplexer Selection Register.
472///
473/// Bitfields:
474///
475/// | Name | Mask (binary) |
476/// | ---- | ------------- |
477/// | ADLAR | 100000 |
478/// | REFS | 11000000 |
479/// | MUX | 11111 |
480pub const ADMUX: *mut u8 = 0x7C as *mut u8;
481
482/// Digital Input Disable Register 0.
483///
484/// Bitfields:
485///
486/// | Name | Mask (binary) |
487/// | ---- | ------------- |
488/// | ADC4D | 10000 |
489/// | ADC2D | 100 |
490/// | ADC6D | 1000000 |
491/// | ADC1D | 10 |
492/// | ADC7D | 10000000 |
493/// | ADC5D | 100000 |
494/// | ADC3D | 1000 |
495/// | ADC0D | 1 |
496pub const DIDR0: *mut u8 = 0x7E as *mut u8;
497
498/// Digital Input Disable Register 1.
499///
500/// Bitfields:
501///
502/// | Name | Mask (binary) |
503/// | ---- | ------------- |
504/// | AIN0D | 1 |
505/// | AIN1D | 10 |
506pub const DIDR1: *mut u8 = 0x7F as *mut u8;
507
508/// Timer/Counter1 Control Register A.
509///
510/// Bitfields:
511///
512/// | Name | Mask (binary) |
513/// | ---- | ------------- |
514/// | COM1A | 11000000 |
515/// | COM1B | 110000 |
516pub const TCCR1A: *mut u8 = 0x80 as *mut u8;
517
518/// Timer/Counter1 Control Register B.
519///
520/// Bitfields:
521///
522/// | Name | Mask (binary) |
523/// | ---- | ------------- |
524/// | ICES1 | 1000000 |
525/// | ICNC1 | 10000000 |
526/// | CS1 | 111 |
527pub const TCCR1B: *mut u8 = 0x81 as *mut u8;
528
529/// Timer/Counter 1 Control Register C.
530///
531/// Bitfields:
532///
533/// | Name | Mask (binary) |
534/// | ---- | ------------- |
535/// | FOC1B | 1000000 |
536/// | FOC1A | 10000000 |
537pub const TCCR1C: *mut u8 = 0x82 as *mut u8;
538
539/// Timer/Counter1  Bytes.
540pub const TCNT1: *mut u16 = 0x84 as *mut u16;
541
542/// Timer/Counter1  Bytes low byte.
543pub const TCNT1L: *mut u8 = 0x84 as *mut u8;
544
545/// Timer/Counter1  Bytes high byte.
546pub const TCNT1H: *mut u8 = 0x85 as *mut u8;
547
548/// Timer/Counter1 Input Capture Register  Bytes.
549pub const ICR1: *mut u16 = 0x86 as *mut u16;
550
551/// Timer/Counter1 Input Capture Register  Bytes low byte.
552pub const ICR1L: *mut u8 = 0x86 as *mut u8;
553
554/// Timer/Counter1 Input Capture Register  Bytes high byte.
555pub const ICR1H: *mut u8 = 0x87 as *mut u8;
556
557/// Timer/Counter1 Output Compare Register A  Bytes low byte.
558pub const OCR1AL: *mut u8 = 0x88 as *mut u8;
559
560/// Timer/Counter1 Output Compare Register A  Bytes.
561pub const OCR1A: *mut u16 = 0x88 as *mut u16;
562
563/// Timer/Counter1 Output Compare Register A  Bytes high byte.
564pub const OCR1AH: *mut u8 = 0x89 as *mut u8;
565
566/// Timer/Counter1 Output Compare Register B  Bytes low byte.
567pub const OCR1BL: *mut u8 = 0x8A as *mut u8;
568
569/// Timer/Counter1 Output Compare Register B  Bytes.
570pub const OCR1B: *mut u16 = 0x8A as *mut u16;
571
572/// Timer/Counter1 Output Compare Register B  Bytes high byte.
573pub const OCR1BH: *mut u8 = 0x8B as *mut u8;
574
575/// Timer/Counter2 Control Register.
576///
577/// Bitfields:
578///
579/// | Name | Mask (binary) |
580/// | ---- | ------------- |
581/// | WGM20 | 1000000 |
582/// | CS2 | 111 |
583/// | WGM21 | 1000 |
584/// | COM2A | 110000 |
585/// | FOC2A | 10000000 |
586pub const TCCR2A: *mut u8 = 0xB0 as *mut u8;
587
588/// Timer/Counter2.
589pub const TCNT2: *mut u8 = 0xB2 as *mut u8;
590
591/// Timer/Counter2 Output Compare Register.
592pub const OCR2A: *mut u8 = 0xB3 as *mut u8;
593
594/// Asynchronous Status Register.
595///
596/// Bitfields:
597///
598/// | Name | Mask (binary) |
599/// | ---- | ------------- |
600/// | AS2 | 1000 |
601/// | EXCLK | 10000 |
602/// | TCR2UB | 1 |
603/// | TCN2UB | 100 |
604/// | OCR2UB | 10 |
605pub const ASSR: *mut u8 = 0xB6 as *mut u8;
606
607/// USI Control Register.
608///
609/// Bitfields:
610///
611/// | Name | Mask (binary) |
612/// | ---- | ------------- |
613/// | USIOIE | 1000000 |
614/// | USICLK | 10 |
615/// | USISIE | 10000000 |
616/// | USICS | 1100 |
617/// | USIWM | 110000 |
618/// | USITC | 1 |
619pub const USICR: *mut u8 = 0xB8 as *mut u8;
620
621/// USI Status Register.
622///
623/// Bitfields:
624///
625/// | Name | Mask (binary) |
626/// | ---- | ------------- |
627/// | USICNT | 1111 |
628/// | USISIF | 10000000 |
629/// | USIPF | 100000 |
630/// | USIDC | 10000 |
631/// | USIOIF | 1000000 |
632pub const USISR: *mut u8 = 0xB9 as *mut u8;
633
634/// USI Data Register.
635pub const USIDR: *mut u8 = 0xBA as *mut u8;
636
637/// USART Control and Status Register A.
638///
639/// Bitfields:
640///
641/// | Name | Mask (binary) |
642/// | ---- | ------------- |
643/// | UPE0 | 100 |
644/// | U2X0 | 10 |
645/// | UDRE0 | 100000 |
646/// | FE0 | 10000 |
647/// | TXC0 | 1000000 |
648/// | RXC0 | 10000000 |
649/// | MPCM0 | 1 |
650/// | DOR0 | 1000 |
651pub const UCSR0A: *mut u8 = 0xC0 as *mut u8;
652
653/// USART Control and Status Register B.
654///
655/// Bitfields:
656///
657/// | Name | Mask (binary) |
658/// | ---- | ------------- |
659/// | RXEN0 | 10000 |
660/// | TXB80 | 1 |
661/// | RXB80 | 10 |
662/// | RXCIE0 | 10000000 |
663/// | TXCIE0 | 1000000 |
664/// | UDRIE0 | 100000 |
665/// | TXEN0 | 1000 |
666/// | UCSZ02 | 100 |
667pub const UCSR0B: *mut u8 = 0xC1 as *mut u8;
668
669/// USART Control and Status Register C.
670///
671/// Bitfields:
672///
673/// | Name | Mask (binary) |
674/// | ---- | ------------- |
675/// | UMSEL0 | 1000000 |
676/// | UPM0 | 110000 |
677/// | USBS0 | 1000 |
678/// | UCPOL0 | 1 |
679/// | UCSZ0 | 110 |
680pub const UCSR0C: *mut u8 = 0xC2 as *mut u8;
681
682/// USART Baud Rate Register  Bytes.
683pub const UBRR0: *mut u16 = 0xC4 as *mut u16;
684
685/// USART Baud Rate Register  Bytes low byte.
686pub const UBRR0L: *mut u8 = 0xC4 as *mut u8;
687
688/// USART Baud Rate Register  Bytes high byte.
689pub const UBRR0H: *mut u8 = 0xC5 as *mut u8;
690
691/// USART I/O Data Register.
692pub const UDR0: *mut u8 = 0xC6 as *mut u8;
693
694/// Bitfield on register `ACSR`
695pub const ACIS: *mut u8 = 0x3 as *mut u8;
696
697/// Bitfield on register `ACSR`
698pub const ACI: *mut u8 = 0x10 as *mut u8;
699
700/// Bitfield on register `ACSR`
701pub const ACBG: *mut u8 = 0x40 as *mut u8;
702
703/// Bitfield on register `ACSR`
704pub const ACO: *mut u8 = 0x20 as *mut u8;
705
706/// Bitfield on register `ACSR`
707pub const ACD: *mut u8 = 0x80 as *mut u8;
708
709/// Bitfield on register `ACSR`
710pub const ACIE: *mut u8 = 0x8 as *mut u8;
711
712/// Bitfield on register `ACSR`
713pub const ACIC: *mut u8 = 0x4 as *mut u8;
714
715/// Bitfield on register `ADCSRA`
716pub const ADSC: *mut u8 = 0x40 as *mut u8;
717
718/// Bitfield on register `ADCSRA`
719pub const ADIE: *mut u8 = 0x8 as *mut u8;
720
721/// Bitfield on register `ADCSRA`
722pub const ADPS: *mut u8 = 0x7 as *mut u8;
723
724/// Bitfield on register `ADCSRA`
725pub const ADIF: *mut u8 = 0x10 as *mut u8;
726
727/// Bitfield on register `ADCSRA`
728pub const ADEN: *mut u8 = 0x80 as *mut u8;
729
730/// Bitfield on register `ADCSRA`
731pub const ADATE: *mut u8 = 0x20 as *mut u8;
732
733/// Bitfield on register `ADCSRB`
734pub const ACME: *mut u8 = 0x40 as *mut u8;
735
736/// Bitfield on register `ADMUX`
737pub const ADLAR: *mut u8 = 0x20 as *mut u8;
738
739/// Bitfield on register `ADMUX`
740pub const REFS: *mut u8 = 0xC0 as *mut u8;
741
742/// Bitfield on register `ADMUX`
743pub const MUX: *mut u8 = 0x1F as *mut u8;
744
745/// Bitfield on register `ASSR`
746pub const AS2: *mut u8 = 0x8 as *mut u8;
747
748/// Bitfield on register `ASSR`
749pub const EXCLK: *mut u8 = 0x10 as *mut u8;
750
751/// Bitfield on register `ASSR`
752pub const TCR2UB: *mut u8 = 0x1 as *mut u8;
753
754/// Bitfield on register `ASSR`
755pub const TCN2UB: *mut u8 = 0x4 as *mut u8;
756
757/// Bitfield on register `ASSR`
758pub const OCR2UB: *mut u8 = 0x2 as *mut u8;
759
760/// Bitfield on register `CLKPR`
761pub const CLKPS: *mut u8 = 0xF as *mut u8;
762
763/// Bitfield on register `CLKPR`
764pub const CLKPCE: *mut u8 = 0x80 as *mut u8;
765
766/// Bitfield on register `DIDR0`
767pub const ADC4D: *mut u8 = 0x10 as *mut u8;
768
769/// Bitfield on register `DIDR0`
770pub const ADC2D: *mut u8 = 0x4 as *mut u8;
771
772/// Bitfield on register `DIDR0`
773pub const ADC6D: *mut u8 = 0x40 as *mut u8;
774
775/// Bitfield on register `DIDR0`
776pub const ADC1D: *mut u8 = 0x2 as *mut u8;
777
778/// Bitfield on register `DIDR0`
779pub const ADC7D: *mut u8 = 0x80 as *mut u8;
780
781/// Bitfield on register `DIDR0`
782pub const ADC5D: *mut u8 = 0x20 as *mut u8;
783
784/// Bitfield on register `DIDR0`
785pub const ADC3D: *mut u8 = 0x8 as *mut u8;
786
787/// Bitfield on register `DIDR0`
788pub const ADC0D: *mut u8 = 0x1 as *mut u8;
789
790/// Bitfield on register `DIDR1`
791pub const AIN0D: *mut u8 = 0x1 as *mut u8;
792
793/// Bitfield on register `DIDR1`
794pub const AIN1D: *mut u8 = 0x2 as *mut u8;
795
796/// Bitfield on register `EECR`
797pub const EERIE: *mut u8 = 0x8 as *mut u8;
798
799/// Bitfield on register `EECR`
800pub const EEMWE: *mut u8 = 0x4 as *mut u8;
801
802/// Bitfield on register `EECR`
803pub const EEWE: *mut u8 = 0x2 as *mut u8;
804
805/// Bitfield on register `EECR`
806pub const EERE: *mut u8 = 0x1 as *mut u8;
807
808/// Bitfield on register `EICRA`
809pub const ISC01: *mut u8 = 0x2 as *mut u8;
810
811/// Bitfield on register `EICRA`
812pub const ISC00: *mut u8 = 0x1 as *mut u8;
813
814/// Bitfield on register `EIFR`
815pub const INTF0: *mut u8 = 0x1 as *mut u8;
816
817/// Bitfield on register `EIFR`
818pub const PCIF: *mut u8 = 0xF0 as *mut u8;
819
820/// Bitfield on register `EIMSK`
821pub const PCIE: *mut u8 = 0xF0 as *mut u8;
822
823/// Bitfield on register `EIMSK`
824pub const INT0: *mut u8 = 0x1 as *mut u8;
825
826/// Bitfield on register `EXTENDED`
827pub const RSTDISBL: *mut u8 = 0x1 as *mut u8;
828
829/// Bitfield on register `EXTENDED`
830pub const BODLEVEL: *mut u8 = 0x6 as *mut u8;
831
832/// Bitfield on register `GTCCR`
833pub const PSR2: *mut u8 = 0x2 as *mut u8;
834
835/// Bitfield on register `HIGH`
836pub const SPIEN: *mut u8 = 0x20 as *mut u8;
837
838/// Bitfield on register `HIGH`
839pub const BOOTSZ: *mut u8 = 0x6 as *mut u8;
840
841/// Bitfield on register `HIGH`
842pub const JTAGEN: *mut u8 = 0x40 as *mut u8;
843
844/// Bitfield on register `HIGH`
845pub const BOOTRST: *mut u8 = 0x1 as *mut u8;
846
847/// Bitfield on register `HIGH`
848pub const WDTON: *mut u8 = 0x10 as *mut u8;
849
850/// Bitfield on register `HIGH`
851pub const EESAVE: *mut u8 = 0x8 as *mut u8;
852
853/// Bitfield on register `HIGH`
854pub const OCDEN: *mut u8 = 0x80 as *mut u8;
855
856/// Bitfield on register `LOCKBIT`
857pub const BLB0: *mut u8 = 0xC as *mut u8;
858
859/// Bitfield on register `LOCKBIT`
860pub const LB: *mut u8 = 0x3 as *mut u8;
861
862/// Bitfield on register `LOCKBIT`
863pub const BLB1: *mut u8 = 0x30 as *mut u8;
864
865/// Bitfield on register `LOW`
866pub const CKDIV8: *mut u8 = 0x80 as *mut u8;
867
868/// Bitfield on register `LOW`
869pub const CKOUT: *mut u8 = 0x40 as *mut u8;
870
871/// Bitfield on register `LOW`
872pub const SUT_CKSEL: *mut u8 = 0x3F as *mut u8;
873
874/// Bitfield on register `MCUCR`
875pub const IVCE: *mut u8 = 0x1 as *mut u8;
876
877/// Bitfield on register `MCUCR`
878pub const PUD: *mut u8 = 0x10 as *mut u8;
879
880/// Bitfield on register `MCUCR`
881pub const IVSEL: *mut u8 = 0x2 as *mut u8;
882
883/// Bitfield on register `MCUSR`
884pub const EXTRF: *mut u8 = 0x2 as *mut u8;
885
886/// Bitfield on register `MCUSR`
887pub const PORF: *mut u8 = 0x1 as *mut u8;
888
889/// Bitfield on register `MCUSR`
890pub const JTRF: *mut u8 = 0x10 as *mut u8;
891
892/// Bitfield on register `MCUSR`
893pub const BORF: *mut u8 = 0x4 as *mut u8;
894
895/// Bitfield on register `MCUSR`
896pub const WDRF: *mut u8 = 0x8 as *mut u8;
897
898/// Bitfield on register `PRR`
899pub const PRTIM1: *mut u8 = 0x8 as *mut u8;
900
901/// Bitfield on register `PRR`
902pub const PRSPI: *mut u8 = 0x4 as *mut u8;
903
904/// Bitfield on register `PRR`
905pub const PRADC: *mut u8 = 0x1 as *mut u8;
906
907/// Bitfield on register `PRR`
908pub const PRUSART0: *mut u8 = 0x2 as *mut u8;
909
910/// Bitfield on register `SMCR`
911pub const SM: *mut u8 = 0xE as *mut u8;
912
913/// Bitfield on register `SMCR`
914pub const SE: *mut u8 = 0x1 as *mut u8;
915
916/// Bitfield on register `SPCR`
917pub const MSTR: *mut u8 = 0x10 as *mut u8;
918
919/// Bitfield on register `SPCR`
920pub const SPE: *mut u8 = 0x40 as *mut u8;
921
922/// Bitfield on register `SPCR`
923pub const DORD: *mut u8 = 0x20 as *mut u8;
924
925/// Bitfield on register `SPCR`
926pub const CPOL: *mut u8 = 0x8 as *mut u8;
927
928/// Bitfield on register `SPCR`
929pub const SPR: *mut u8 = 0x3 as *mut u8;
930
931/// Bitfield on register `SPCR`
932pub const CPHA: *mut u8 = 0x4 as *mut u8;
933
934/// Bitfield on register `SPCR`
935pub const SPIE: *mut u8 = 0x80 as *mut u8;
936
937/// Bitfield on register `SPMCSR`
938pub const RWWSRE: *mut u8 = 0x10 as *mut u8;
939
940/// Bitfield on register `SPMCSR`
941pub const SPMEN: *mut u8 = 0x1 as *mut u8;
942
943/// Bitfield on register `SPMCSR`
944pub const PGWRT: *mut u8 = 0x4 as *mut u8;
945
946/// Bitfield on register `SPMCSR`
947pub const PGERS: *mut u8 = 0x2 as *mut u8;
948
949/// Bitfield on register `SPMCSR`
950pub const RWWSB: *mut u8 = 0x40 as *mut u8;
951
952/// Bitfield on register `SPMCSR`
953pub const SPMIE: *mut u8 = 0x80 as *mut u8;
954
955/// Bitfield on register `SPMCSR`
956pub const BLBSET: *mut u8 = 0x8 as *mut u8;
957
958/// Bitfield on register `SPSR`
959pub const SPI2X: *mut u8 = 0x1 as *mut u8;
960
961/// Bitfield on register `SPSR`
962pub const SPIF: *mut u8 = 0x80 as *mut u8;
963
964/// Bitfield on register `SPSR`
965pub const WCOL: *mut u8 = 0x40 as *mut u8;
966
967/// Bitfield on register `SREG`
968pub const H: *mut u8 = 0x20 as *mut u8;
969
970/// Bitfield on register `SREG`
971pub const S: *mut u8 = 0x10 as *mut u8;
972
973/// Bitfield on register `SREG`
974pub const T: *mut u8 = 0x40 as *mut u8;
975
976/// Bitfield on register `SREG`
977pub const C: *mut u8 = 0x1 as *mut u8;
978
979/// Bitfield on register `SREG`
980pub const I: *mut u8 = 0x80 as *mut u8;
981
982/// Bitfield on register `SREG`
983pub const N: *mut u8 = 0x4 as *mut u8;
984
985/// Bitfield on register `SREG`
986pub const Z: *mut u8 = 0x2 as *mut u8;
987
988/// Bitfield on register `SREG`
989pub const V: *mut u8 = 0x8 as *mut u8;
990
991/// Bitfield on register `TCCR0A`
992pub const CS0: *mut u8 = 0x7 as *mut u8;
993
994/// Bitfield on register `TCCR0A`
995pub const WGM00: *mut u8 = 0x40 as *mut u8;
996
997/// Bitfield on register `TCCR0A`
998pub const WGM01: *mut u8 = 0x8 as *mut u8;
999
1000/// Bitfield on register `TCCR0A`
1001pub const COM0A: *mut u8 = 0x30 as *mut u8;
1002
1003/// Bitfield on register `TCCR0A`
1004pub const FOC0A: *mut u8 = 0x80 as *mut u8;
1005
1006/// Bitfield on register `TCCR1A`
1007pub const COM1A: *mut u8 = 0xC0 as *mut u8;
1008
1009/// Bitfield on register `TCCR1A`
1010pub const COM1B: *mut u8 = 0x30 as *mut u8;
1011
1012/// Bitfield on register `TCCR1B`
1013pub const ICES1: *mut u8 = 0x40 as *mut u8;
1014
1015/// Bitfield on register `TCCR1B`
1016pub const ICNC1: *mut u8 = 0x80 as *mut u8;
1017
1018/// Bitfield on register `TCCR1B`
1019pub const CS1: *mut u8 = 0x7 as *mut u8;
1020
1021/// Bitfield on register `TCCR1C`
1022pub const FOC1B: *mut u8 = 0x40 as *mut u8;
1023
1024/// Bitfield on register `TCCR1C`
1025pub const FOC1A: *mut u8 = 0x80 as *mut u8;
1026
1027/// Bitfield on register `TCCR2A`
1028pub const WGM20: *mut u8 = 0x40 as *mut u8;
1029
1030/// Bitfield on register `TCCR2A`
1031pub const CS2: *mut u8 = 0x7 as *mut u8;
1032
1033/// Bitfield on register `TCCR2A`
1034pub const WGM21: *mut u8 = 0x8 as *mut u8;
1035
1036/// Bitfield on register `TCCR2A`
1037pub const COM2A: *mut u8 = 0x30 as *mut u8;
1038
1039/// Bitfield on register `TCCR2A`
1040pub const FOC2A: *mut u8 = 0x80 as *mut u8;
1041
1042/// Bitfield on register `TIFR0`
1043pub const OCF0A: *mut u8 = 0x2 as *mut u8;
1044
1045/// Bitfield on register `TIFR0`
1046pub const TOV0: *mut u8 = 0x1 as *mut u8;
1047
1048/// Bitfield on register `TIFR1`
1049pub const OCF1A: *mut u8 = 0x2 as *mut u8;
1050
1051/// Bitfield on register `TIFR1`
1052pub const OCF1B: *mut u8 = 0x4 as *mut u8;
1053
1054/// Bitfield on register `TIFR1`
1055pub const ICF1: *mut u8 = 0x20 as *mut u8;
1056
1057/// Bitfield on register `TIFR1`
1058pub const TOV1: *mut u8 = 0x1 as *mut u8;
1059
1060/// Bitfield on register `TIFR2`
1061pub const TOV2: *mut u8 = 0x1 as *mut u8;
1062
1063/// Bitfield on register `TIFR2`
1064pub const OCF2A: *mut u8 = 0x2 as *mut u8;
1065
1066/// Bitfield on register `TIMSK0`
1067pub const TOIE0: *mut u8 = 0x1 as *mut u8;
1068
1069/// Bitfield on register `TIMSK0`
1070pub const OCIE0A: *mut u8 = 0x2 as *mut u8;
1071
1072/// Bitfield on register `TIMSK1`
1073pub const ICIE1: *mut u8 = 0x20 as *mut u8;
1074
1075/// Bitfield on register `TIMSK1`
1076pub const OCIE1B: *mut u8 = 0x4 as *mut u8;
1077
1078/// Bitfield on register `TIMSK1`
1079pub const OCIE1A: *mut u8 = 0x2 as *mut u8;
1080
1081/// Bitfield on register `TIMSK1`
1082pub const TOIE1: *mut u8 = 0x1 as *mut u8;
1083
1084/// Bitfield on register `TIMSK2`
1085pub const TOIE2: *mut u8 = 0x1 as *mut u8;
1086
1087/// Bitfield on register `TIMSK2`
1088pub const OCIE2A: *mut u8 = 0x2 as *mut u8;
1089
1090/// Bitfield on register `UCSR0A`
1091pub const UPE0: *mut u8 = 0x4 as *mut u8;
1092
1093/// Bitfield on register `UCSR0A`
1094pub const U2X0: *mut u8 = 0x2 as *mut u8;
1095
1096/// Bitfield on register `UCSR0A`
1097pub const UDRE0: *mut u8 = 0x20 as *mut u8;
1098
1099/// Bitfield on register `UCSR0A`
1100pub const FE0: *mut u8 = 0x10 as *mut u8;
1101
1102/// Bitfield on register `UCSR0A`
1103pub const TXC0: *mut u8 = 0x40 as *mut u8;
1104
1105/// Bitfield on register `UCSR0A`
1106pub const RXC0: *mut u8 = 0x80 as *mut u8;
1107
1108/// Bitfield on register `UCSR0A`
1109pub const MPCM0: *mut u8 = 0x1 as *mut u8;
1110
1111/// Bitfield on register `UCSR0A`
1112pub const DOR0: *mut u8 = 0x8 as *mut u8;
1113
1114/// Bitfield on register `UCSR0B`
1115pub const RXEN0: *mut u8 = 0x10 as *mut u8;
1116
1117/// Bitfield on register `UCSR0B`
1118pub const TXB80: *mut u8 = 0x1 as *mut u8;
1119
1120/// Bitfield on register `UCSR0B`
1121pub const RXB80: *mut u8 = 0x2 as *mut u8;
1122
1123/// Bitfield on register `UCSR0B`
1124pub const RXCIE0: *mut u8 = 0x80 as *mut u8;
1125
1126/// Bitfield on register `UCSR0B`
1127pub const TXCIE0: *mut u8 = 0x40 as *mut u8;
1128
1129/// Bitfield on register `UCSR0B`
1130pub const UDRIE0: *mut u8 = 0x20 as *mut u8;
1131
1132/// Bitfield on register `UCSR0B`
1133pub const TXEN0: *mut u8 = 0x8 as *mut u8;
1134
1135/// Bitfield on register `UCSR0B`
1136pub const UCSZ02: *mut u8 = 0x4 as *mut u8;
1137
1138/// Bitfield on register `UCSR0C`
1139pub const UMSEL0: *mut u8 = 0x40 as *mut u8;
1140
1141/// Bitfield on register `UCSR0C`
1142pub const UPM0: *mut u8 = 0x30 as *mut u8;
1143
1144/// Bitfield on register `UCSR0C`
1145pub const USBS0: *mut u8 = 0x8 as *mut u8;
1146
1147/// Bitfield on register `UCSR0C`
1148pub const UCPOL0: *mut u8 = 0x1 as *mut u8;
1149
1150/// Bitfield on register `UCSR0C`
1151pub const UCSZ0: *mut u8 = 0x6 as *mut u8;
1152
1153/// Bitfield on register `USICR`
1154pub const USIOIE: *mut u8 = 0x40 as *mut u8;
1155
1156/// Bitfield on register `USICR`
1157pub const USICLK: *mut u8 = 0x2 as *mut u8;
1158
1159/// Bitfield on register `USICR`
1160pub const USISIE: *mut u8 = 0x80 as *mut u8;
1161
1162/// Bitfield on register `USICR`
1163pub const USICS: *mut u8 = 0xC as *mut u8;
1164
1165/// Bitfield on register `USICR`
1166pub const USIWM: *mut u8 = 0x30 as *mut u8;
1167
1168/// Bitfield on register `USICR`
1169pub const USITC: *mut u8 = 0x1 as *mut u8;
1170
1171/// Bitfield on register `USISR`
1172pub const USICNT: *mut u8 = 0xF as *mut u8;
1173
1174/// Bitfield on register `USISR`
1175pub const USISIF: *mut u8 = 0x80 as *mut u8;
1176
1177/// Bitfield on register `USISR`
1178pub const USIPF: *mut u8 = 0x20 as *mut u8;
1179
1180/// Bitfield on register `USISR`
1181pub const USIDC: *mut u8 = 0x10 as *mut u8;
1182
1183/// Bitfield on register `USISR`
1184pub const USIOIF: *mut u8 = 0x40 as *mut u8;
1185
1186/// Bitfield on register `WDTCR`
1187pub const WDCE: *mut u8 = 0x10 as *mut u8;
1188
1189/// Bitfield on register `WDTCR`
1190pub const WDP: *mut u8 = 0x7 as *mut u8;
1191
1192/// Bitfield on register `WDTCR`
1193pub const WDE: *mut u8 = 0x8 as *mut u8;
1194
1195/// `ANALOG_ADC_PRESCALER` value group
1196#[allow(non_upper_case_globals)]
1197pub mod analog_adc_prescaler {
1198   /// 2.
1199   pub const VAL_0x00: u32 = 0x0;
1200   /// 2.
1201   pub const VAL_0x01: u32 = 0x1;
1202   /// 4.
1203   pub const VAL_0x02: u32 = 0x2;
1204   /// 8.
1205   pub const VAL_0x03: u32 = 0x3;
1206   /// 16.
1207   pub const VAL_0x04: u32 = 0x4;
1208   /// 32.
1209   pub const VAL_0x05: u32 = 0x5;
1210   /// 64.
1211   pub const VAL_0x06: u32 = 0x6;
1212   /// 128.
1213   pub const VAL_0x07: u32 = 0x7;
1214}
1215
1216/// `ANALOG_ADC_V_REF3` value group
1217#[allow(non_upper_case_globals)]
1218pub mod analog_adc_v_ref3 {
1219   /// AREF, Internal Vref turned off.
1220   pub const VAL_0x00: u32 = 0x0;
1221   /// AVCC with external capacitor at AREF pin.
1222   pub const VAL_0x01: u32 = 0x1;
1223   /// Reserved.
1224   pub const VAL_0x02: u32 = 0x2;
1225   /// Internal 1.1V Voltage Reference with external capacitor at AREF pin.
1226   pub const VAL_0x03: u32 = 0x3;
1227}
1228
1229/// `ANALOG_COMP_INTERRUPT` value group
1230#[allow(non_upper_case_globals)]
1231pub mod analog_comp_interrupt {
1232   /// Interrupt on Toggle.
1233   pub const VAL_0x00: u32 = 0x0;
1234   /// Reserved.
1235   pub const VAL_0x01: u32 = 0x1;
1236   /// Interrupt on Falling Edge.
1237   pub const VAL_0x02: u32 = 0x2;
1238   /// Interrupt on Rising Edge.
1239   pub const VAL_0x03: u32 = 0x3;
1240}
1241
1242/// `CLK_SEL_3BIT` value group
1243#[allow(non_upper_case_globals)]
1244pub mod clk_sel_3bit {
1245   /// No Clock Source (Stopped).
1246   pub const VAL_0x00: u32 = 0x0;
1247   /// Running, No Prescaling.
1248   pub const VAL_0x01: u32 = 0x1;
1249   /// Running, CLK/8.
1250   pub const VAL_0x02: u32 = 0x2;
1251   /// Running, CLK/32.
1252   pub const VAL_0x03: u32 = 0x3;
1253   /// Running, CLK/64.
1254   pub const VAL_0x04: u32 = 0x4;
1255   /// Running, CLK/128.
1256   pub const VAL_0x05: u32 = 0x5;
1257   /// Running, CLK/256.
1258   pub const VAL_0x06: u32 = 0x6;
1259   /// Running, CLK/1024.
1260   pub const VAL_0x07: u32 = 0x7;
1261}
1262
1263/// `CLK_SEL_3BIT_EXT` value group
1264#[allow(non_upper_case_globals)]
1265pub mod clk_sel_3bit_ext {
1266   /// No Clock Source (Stopped).
1267   pub const VAL_0x00: u32 = 0x0;
1268   /// Running, No Prescaling.
1269   pub const VAL_0x01: u32 = 0x1;
1270   /// Running, CLK/8.
1271   pub const VAL_0x02: u32 = 0x2;
1272   /// Running, CLK/64.
1273   pub const VAL_0x03: u32 = 0x3;
1274   /// Running, CLK/256.
1275   pub const VAL_0x04: u32 = 0x4;
1276   /// Running, CLK/1024.
1277   pub const VAL_0x05: u32 = 0x5;
1278   /// Running, ExtClk Tx Falling Edge.
1279   pub const VAL_0x06: u32 = 0x6;
1280   /// Running, ExtClk Tx Rising Edge.
1281   pub const VAL_0x07: u32 = 0x7;
1282}
1283
1284/// `COMM_SCK_RATE_3BIT` value group
1285#[allow(non_upper_case_globals)]
1286pub mod comm_sck_rate_3bit {
1287   /// fosc/4.
1288   pub const VAL_0x00: u32 = 0x0;
1289   /// fosc/16.
1290   pub const VAL_0x01: u32 = 0x1;
1291   /// fosc/64.
1292   pub const VAL_0x02: u32 = 0x2;
1293   /// fosc/128.
1294   pub const VAL_0x03: u32 = 0x3;
1295   /// fosc/2.
1296   pub const VAL_0x04: u32 = 0x4;
1297   /// fosc/8.
1298   pub const VAL_0x05: u32 = 0x5;
1299   /// fosc/32.
1300   pub const VAL_0x06: u32 = 0x6;
1301   /// fosc/64.
1302   pub const VAL_0x07: u32 = 0x7;
1303}
1304
1305/// `COMM_STOP_BIT_SEL` value group
1306#[allow(non_upper_case_globals)]
1307pub mod comm_stop_bit_sel {
1308   /// 1-bit.
1309   pub const VAL_0x00: u32 = 0x0;
1310   /// 2-bit.
1311   pub const VAL_0x01: u32 = 0x1;
1312}
1313
1314/// `COMM_UPM_PARITY_MODE` value group
1315#[allow(non_upper_case_globals)]
1316pub mod comm_upm_parity_mode {
1317   /// Disabled.
1318   pub const VAL_0x00: u32 = 0x0;
1319   /// Reserved.
1320   pub const VAL_0x01: u32 = 0x1;
1321   /// Enabled, Even Parity.
1322   pub const VAL_0x02: u32 = 0x2;
1323   /// Enabled, Odd Parity.
1324   pub const VAL_0x03: u32 = 0x3;
1325}
1326
1327/// `COMM_USART_MODE` value group
1328#[allow(non_upper_case_globals)]
1329pub mod comm_usart_mode {
1330   /// Asynchronous Operation.
1331   pub const VAL_0x00: u32 = 0x0;
1332   /// Synchronous Operation.
1333   pub const VAL_0x01: u32 = 0x1;
1334}
1335
1336/// `COMM_USI_OP` value group
1337#[allow(non_upper_case_globals)]
1338pub mod comm_usi_op {
1339   /// Normal Operation.
1340   pub const VAL_0x00: u32 = 0x0;
1341   /// Three-Wire Mode.
1342   pub const VAL_0x01: u32 = 0x1;
1343   /// Two-Wire Mode.
1344   pub const VAL_0x02: u32 = 0x2;
1345   /// Two-Wire Mode Held Low.
1346   pub const VAL_0x03: u32 = 0x3;
1347}
1348
1349/// `CPU_CLK_PRESCALE_4_BITS_SMALL` value group
1350#[allow(non_upper_case_globals)]
1351pub mod cpu_clk_prescale_4_bits_small {
1352   /// 1.
1353   pub const VAL_0x00: u32 = 0x0;
1354   /// 2.
1355   pub const VAL_0x01: u32 = 0x1;
1356   /// 4.
1357   pub const VAL_0x02: u32 = 0x2;
1358   /// 8.
1359   pub const VAL_0x03: u32 = 0x3;
1360   /// 16.
1361   pub const VAL_0x04: u32 = 0x4;
1362   /// 32.
1363   pub const VAL_0x05: u32 = 0x5;
1364   /// 64.
1365   pub const VAL_0x06: u32 = 0x6;
1366   /// 128.
1367   pub const VAL_0x07: u32 = 0x7;
1368   /// 256.
1369   pub const VAL_0x08: u32 = 0x8;
1370}
1371
1372/// `CPU_SLEEP_MODE_3BITS2` value group
1373#[allow(non_upper_case_globals)]
1374pub mod cpu_sleep_mode_3bits2 {
1375   /// Idle.
1376   pub const IDLE: u32 = 0x0;
1377   /// ADC Noise Reduction (If Available).
1378   pub const ADC: u32 = 0x1;
1379   /// Power Down.
1380   pub const PDOWN: u32 = 0x2;
1381   /// Power Save.
1382   pub const PSAVE: u32 = 0x3;
1383   /// Reserved.
1384   pub const VAL_0x04: u32 = 0x4;
1385   /// Reserved.
1386   pub const VAL_0x05: u32 = 0x5;
1387   /// Standby.
1388   pub const STDBY: u32 = 0x6;
1389   /// Reserved.
1390   pub const VAL_0x07: u32 = 0x7;
1391}
1392
1393/// `ENUM_BLB` value group
1394#[allow(non_upper_case_globals)]
1395pub mod enum_blb {
1396   /// LPM and SPM prohibited in Application Section.
1397   pub const LPM_SPM_DISABLE: u32 = 0x0;
1398   /// LPM prohibited in Application Section.
1399   pub const LPM_DISABLE: u32 = 0x1;
1400   /// SPM prohibited in Application Section.
1401   pub const SPM_DISABLE: u32 = 0x2;
1402   /// No lock on SPM and LPM in Application Section.
1403   pub const NO_LOCK: u32 = 0x3;
1404}
1405
1406/// `ENUM_BLB2` value group
1407#[allow(non_upper_case_globals)]
1408pub mod enum_blb2 {
1409   /// LPM and SPM prohibited in Boot Section.
1410   pub const LPM_SPM_DISABLE: u32 = 0x0;
1411   /// LPM prohibited in Boot Section.
1412   pub const LPM_DISABLE: u32 = 0x1;
1413   /// SPM prohibited in Boot Section.
1414   pub const SPM_DISABLE: u32 = 0x2;
1415   /// No lock on SPM and LPM in Boot Section.
1416   pub const NO_LOCK: u32 = 0x3;
1417}
1418
1419/// `ENUM_BODLEVEL` value group
1420#[allow(non_upper_case_globals)]
1421pub mod enum_bodlevel {
1422   /// Brown-out detection disabled.
1423   pub const DISABLED: u32 = 0x3;
1424   /// Brown-out detection at VCC=1.8 V.
1425   pub const _1V8: u32 = 0x2;
1426   /// Brown-out detection at VCC=2.7 V.
1427   pub const _2V7: u32 = 0x1;
1428   /// Brown-out detection at VCC=4.3 V.
1429   pub const _4V3: u32 = 0x0;
1430}
1431
1432/// `ENUM_BOOTSZ` value group
1433#[allow(non_upper_case_globals)]
1434pub mod enum_bootsz {
1435   /// Boot Flash size=256 words Boot address=$3F00.
1436   pub const _256W_3F00: u32 = 0x3;
1437   /// Boot Flash size=512 words Boot address=$3E00.
1438   pub const _512W_3E00: u32 = 0x2;
1439   /// Boot Flash size=1024 words Boot address=$3C00.
1440   pub const _1024W_3C00: u32 = 0x1;
1441   /// Boot Flash size=2048 words Boot address=$3800.
1442   pub const _2048W_3800: u32 = 0x0;
1443}
1444
1445/// `ENUM_LB` value group
1446#[allow(non_upper_case_globals)]
1447pub mod enum_lb {
1448   /// Further programming and verification disabled.
1449   pub const PROG_VER_DISABLED: u32 = 0x0;
1450   /// Further programming disabled.
1451   pub const PROG_DISABLED: u32 = 0x2;
1452   /// No memory lock features enabled.
1453   pub const NO_LOCK: u32 = 0x3;
1454}
1455
1456/// `ENUM_SUT_CKSEL` value group
1457#[allow(non_upper_case_globals)]
1458pub mod enum_sut_cksel {
1459   /// Ext. Clock; Start-up time: 6 CK + 0 ms.
1460   pub const EXTCLK_6CK_0MS: u32 = 0x0;
1461   /// Ext. Clock; Start-up time: 6 CK + 4.1 ms.
1462   pub const EXTCLK_6CK_4MS1: u32 = 0x10;
1463   /// Ext. Clock; Start-up time: 6 CK + 65 ms.
1464   pub const EXTCLK_6CK_65MS: u32 = 0x20;
1465   /// Int. RC Osc.; Start-up time: 6 CK + 0 ms.
1466   pub const INTRCOSC_6CK_0MS: u32 = 0x2;
1467   /// Int. RC Osc.; Start-up time: 6 CK + 4.1 ms.
1468   pub const INTRCOSC_6CK_4MS1: u32 = 0x12;
1469   /// Int. RC Osc.; Start-up time: 6 CK + 65 ms.
1470   pub const INTRCOSC_6CK_65MS: u32 = 0x22;
1471   /// Ext. Low-Freq. Crystal; Start-up time: 32K CK + 0 ms.
1472   pub const EXTLOFXTAL_32KCK_0MS: u32 = 0x7;
1473   /// Ext. Low-Freq. Crystal; Start-up time: 32K CK + 4.1 ms.
1474   pub const EXTLOFXTAL_32KCK_4MS1: u32 = 0x17;
1475   /// Ext. Low-Freq. Crystal; Start-up time: 32K CK + 65 ms.
1476   pub const EXTLOFXTAL_32KCK_65MS: u32 = 0x27;
1477   /// Ext. Low-Freq. Crystal; Start-up time: 1K CK + 0 ms.
1478   pub const EXTLOFXTAL_1KCK_0MS: u32 = 0x6;
1479   /// Ext. Low-Freq. Crystal; Start-up time: 1K CK + 4.1 ms.
1480   pub const EXTLOFXTAL_1KCK_4MS1: u32 = 0x16;
1481   /// Ext. Low-Freq. Crystal; Start-up time: 1K CK + 65 ms.
1482   pub const EXTLOFXTAL_1KCK_65MS: u32 = 0x26;
1483   /// Ext. Crystal Osc. 0.4-0.9 MHz; Start-up time: 258 CK + 4.1 ms.
1484   pub const EXTXOSC_0MHZ4_0MHZ9_258CK_4MS1: u32 = 0x8;
1485   /// Ext. Crystal Osc. 0.4-0.9 MHz; Start-up time: 258 CK + 65 ms.
1486   pub const EXTXOSC_0MHZ4_0MHZ9_258CK_65MS: u32 = 0x18;
1487   /// Ext. Crystal Osc. 0.4-0.9 MHz; Start-up time: 1K CK + 0 ms.
1488   pub const EXTXOSC_0MHZ4_0MHZ9_1KCK_0MS: u32 = 0x28;
1489   /// Ext. Crystal Osc. 0.4-0.9 MHz; Start-up time: 1K CK + 4.1 ms.
1490   pub const EXTXOSC_0MHZ4_0MHZ9_1KCK_4MS1: u32 = 0x38;
1491   /// Ext. Crystal Osc. 0.4-0.9 MHz; Start-up time: 1K CK + 65 ms.
1492   pub const EXTXOSC_0MHZ4_0MHZ9_1KCK_65MS: u32 = 0x9;
1493   /// Ext. Crystal Osc. 0.4-0.9 MHz; Start-up time: 16K CK + 0 ms.
1494   pub const EXTXOSC_0MHZ4_0MHZ9_16KCK_0MS: u32 = 0x19;
1495   /// Ext. Crystal Osc. 0.4-0.9 MHz; Start-up time: 16K CK + 4.1 ms.
1496   pub const EXTXOSC_0MHZ4_0MHZ9_16KCK_4MS1: u32 = 0x29;
1497   /// Ext. Crystal Osc. 0.4-0.9 MHz; Start-up time: 16K CK + 65 ms.
1498   pub const EXTXOSC_0MHZ4_0MHZ9_16KCK_65MS: u32 = 0x39;
1499   /// Ext. Crystal Osc. 0.9-3.0 MHz; Start-up time: 258 CK + 4.1 ms.
1500   pub const EXTXOSC_0MHZ9_3MHZ_258CK_4MS1: u32 = 0xA;
1501   /// Ext. Crystal Osc. 0.9-3.0 MHz; Start-up time: 258 CK + 65 ms.
1502   pub const EXTXOSC_0MHZ9_3MHZ_258CK_65MS: u32 = 0x1A;
1503   /// Ext. Crystal Osc. 0.9-3.0 MHz; Start-up time: 1K CK + 0 ms.
1504   pub const EXTXOSC_0MHZ9_3MHZ_1KCK_0MS: u32 = 0x2A;
1505   /// Ext. Crystal Osc. 0.9-3.0 MHz; Start-up time: 1K CK + 4.1 ms.
1506   pub const EXTXOSC_0MHZ9_3MHZ_1KCK_4MS1: u32 = 0x3A;
1507   /// Ext. Crystal Osc. 0.9-3.0 MHz; Start-up time: 1K CK + 65 ms.
1508   pub const EXTXOSC_0MHZ9_3MHZ_1KCK_65MS: u32 = 0xB;
1509   /// Ext. Crystal Osc. 0.9-3.0 MHz; Start-up time: 16K CK + 0 ms.
1510   pub const EXTXOSC_0MHZ9_3MHZ_16KCK_0MS: u32 = 0x1B;
1511   /// Ext. Crystal Osc. 0.9-3.0 MHz; Start-up time: 16K CK + 4.1 ms.
1512   pub const EXTXOSC_0MHZ9_3MHZ_16KCK_4MS1: u32 = 0x2B;
1513   /// Ext. Crystal Osc. 0.9-3.0 MHz; Start-up time: 16K CK + 65 ms.
1514   pub const EXTXOSC_0MHZ9_3MHZ_16KCK_65MS: u32 = 0x3B;
1515   /// Ext. Crystal Osc. 3.0-8.0 MHz; Start-up time: 258 CK + 4.1 ms.
1516   pub const EXTXOSC_3MHZ_8MHZ_258CK_4MS1: u32 = 0xC;
1517   /// Ext. Crystal Osc. 3.0-8.0 MHz; Start-up time: 258 CK + 65 ms.
1518   pub const EXTXOSC_3MHZ_8MHZ_258CK_65MS: u32 = 0x1C;
1519   /// Ext. Crystal Osc. 3.0-8.0 MHz; Start-up time: 1K CK + 0 ms.
1520   pub const EXTXOSC_3MHZ_8MHZ_1KCK_0MS: u32 = 0x2C;
1521   /// Ext. Crystal Osc. 3.0-8.0 MHz; Start-up time: 1K CK + 4.1 ms.
1522   pub const EXTXOSC_3MHZ_8MHZ_1KCK_4MS1: u32 = 0x3C;
1523   /// Ext. Crystal Osc. 3.0-8.0 MHz; Start-up time: 1K CK + 65 ms.
1524   pub const EXTXOSC_3MHZ_8MHZ_1KCK_65MS: u32 = 0xD;
1525   /// Ext. Crystal Osc. 3.0-8.0 MHz; Start-up time: 16K CK + 0 ms.
1526   pub const EXTXOSC_3MHZ_8MHZ_16KCK_0MS: u32 = 0x1D;
1527   /// Ext. Crystal Osc. 3.0-8.0 MHz; Start-up time: 16K CK + 4.1 ms.
1528   pub const EXTXOSC_3MHZ_8MHZ_16KCK_4MS1: u32 = 0x2D;
1529   /// Ext. Crystal Osc. 3.0-8.0 MHz; Start-up time: 16K CK + 65 ms.
1530   pub const EXTXOSC_3MHZ_8MHZ_16KCK_65MS: u32 = 0x3D;
1531   /// Ext. Crystal Osc. 8.0-    MHz; Start-up time: 258 CK + 4.1 ms.
1532   pub const EXTXOSC_8MHZ_XX_258CK_4MS1: u32 = 0xE;
1533   /// Ext. Crystal Osc. 8.0-    MHz; Start-up time: 258 CK + 65 ms.
1534   pub const EXTXOSC_8MHZ_XX_258CK_65MS: u32 = 0x1E;
1535   /// Ext. Crystal Osc. 8.0-    MHz; Start-up time: 1K CK + 0 ms.
1536   pub const EXTXOSC_8MHZ_XX_1KCK_0MS: u32 = 0x2E;
1537   /// Ext. Crystal Osc. 8.0-    MHz; Start-up time: 1K CK + 4.1 ms.
1538   pub const EXTXOSC_8MHZ_XX_1KCK_4MS1: u32 = 0x3E;
1539   /// Ext. Crystal Osc. 8.0-    MHz; Start-up time: 1K CK + 65 ms.
1540   pub const EXTXOSC_8MHZ_XX_1KCK_65MS: u32 = 0xF;
1541   /// Ext. Crystal Osc. 8.0-    MHz; Start-up time: 16K CK + 0 ms.
1542   pub const EXTXOSC_8MHZ_XX_16KCK_0MS: u32 = 0x1F;
1543   /// Ext. Crystal Osc. 8.0-    MHz; Start-up time: 16K CK + 4.1 ms.
1544   pub const EXTXOSC_8MHZ_XX_16KCK_4MS1: u32 = 0x2F;
1545   /// Ext. Crystal Osc. 8.0-    MHz; Start-up time: 16K CK + 65 ms.
1546   pub const EXTXOSC_8MHZ_XX_16KCK_65MS: u32 = 0x3F;
1547}
1548
1549/// Interrupt Sense Control
1550#[allow(non_upper_case_globals)]
1551pub mod interrupt_sense_control {
1552   /// Low Level of INTX.
1553   pub const VAL_0x00: u32 = 0x0;
1554   /// Any Logical Change of INTX.
1555   pub const VAL_0x01: u32 = 0x1;
1556   /// Falling Edge of INTX.
1557   pub const VAL_0x02: u32 = 0x2;
1558   /// Rising Edge of INTX.
1559   pub const VAL_0x03: u32 = 0x3;
1560}
1561
1562/// Oscillator Calibration Values
1563#[allow(non_upper_case_globals)]
1564pub mod osccal_value_addresses {
1565   /// 8.0 MHz.
1566   pub const _8_0_MHz: u32 = 0x0;
1567}
1568
1569/// `WAVEFORM_GEN_MODE` value group
1570#[allow(non_upper_case_globals)]
1571pub mod waveform_gen_mode {
1572   /// Normal.
1573   pub const VAL_0x00: u32 = 0x0;
1574   /// PWM, Phase Correct.
1575   pub const VAL_0x02: u32 = 0x2;
1576   /// CTC.
1577   pub const VAL_0x01: u32 = 0x1;
1578   /// Fast PWM.
1579   pub const VAL_0x03: u32 = 0x3;
1580}
1581
1582/// `WDOG_TIMER_PRESCALE_3BITS` value group
1583#[allow(non_upper_case_globals)]
1584pub mod wdog_timer_prescale_3bits {
1585   /// Oscillator Cycles 16K.
1586   pub const VAL_0x00: u32 = 0x0;
1587   /// Oscillator Cycles 32K.
1588   pub const VAL_0x01: u32 = 0x1;
1589   /// Oscillator Cycles 64K.
1590   pub const VAL_0x02: u32 = 0x2;
1591   /// Oscillator Cycles 128K.
1592   pub const VAL_0x03: u32 = 0x3;
1593   /// Oscillator Cycles 256K.
1594   pub const VAL_0x04: u32 = 0x4;
1595   /// Oscillator Cycles 512K.
1596   pub const VAL_0x05: u32 = 0x5;
1597   /// Oscillator Cycles 1024K.
1598   pub const VAL_0x06: u32 = 0x6;
1599   /// Oscillator Cycles 2048K.
1600   pub const VAL_0x07: u32 = 0x7;
1601}
1602