avrd/gen/
ata5505.rs

1//! The AVR ATA5505 microcontroller
2//!
3//! # Variants
4//! |        | Pinout | Mcu age | Operating temperature | Operating voltage | Max speed |
5//! |--------|--------|---------|-----------------------|-------------------|-----------|
6//! | standard |  |  | 0°C - 0°C | 2.7V - 5.5V | 0 MHz |
7//!
8
9#![allow(non_upper_case_globals)]
10
11/// `LOCKBIT` register
12///
13/// Bitfields:
14///
15/// | Name | Mask (binary) |
16/// | ---- | ------------- |
17/// | LB | 11 |
18pub const LOCKBIT: *mut u8 = 0x0 as *mut u8;
19
20/// `LOW` register
21///
22/// Bitfields:
23///
24/// | Name | Mask (binary) |
25/// | ---- | ------------- |
26/// | SUT_CKSEL | 111111 |
27/// | CKDIV8 | 10000000 |
28/// | CKOUT | 1000000 |
29pub const LOW: *mut u8 = 0x0 as *mut u8;
30
31/// `HIGH` register
32///
33/// Bitfields:
34///
35/// | Name | Mask (binary) |
36/// | ---- | ------------- |
37/// | DWEN | 1000000 |
38/// | RSTDISBL | 10000000 |
39/// | SPIEN | 100000 |
40/// | WDTON | 10000 |
41/// | BODLEVEL | 111 |
42/// | EESAVE | 1000 |
43pub const HIGH: *mut u8 = 0x1 as *mut u8;
44
45/// `EXTENDED` register
46///
47/// Bitfields:
48///
49/// | Name | Mask (binary) |
50/// | ---- | ------------- |
51/// | SELFPRGEN | 1 |
52pub const EXTENDED: *mut u8 = 0x2 as *mut u8;
53
54/// Port A Input Pins.
55pub const PINA: *mut u8 = 0x20 as *mut u8;
56
57/// Port A Data Direction Register.
58pub const DDRA: *mut u8 = 0x21 as *mut u8;
59
60/// Port A Data Register.
61pub const PORTA: *mut u8 = 0x22 as *mut u8;
62
63/// Port B Input Pins.
64pub const PINB: *mut u8 = 0x23 as *mut u8;
65
66/// Port B Data Direction Register.
67pub const DDRB: *mut u8 = 0x24 as *mut u8;
68
69/// Port B Data Register.
70pub const PORTB: *mut u8 = 0x25 as *mut u8;
71
72/// Port Control Register.
73///
74/// Bitfields:
75///
76/// | Name | Mask (binary) |
77/// | ---- | ------------- |
78/// | BBMB | 100000 |
79/// | PUDA | 1 |
80/// | PUDB | 10 |
81/// | BBMA | 10000 |
82pub const PORTCR: *mut u8 = 0x32 as *mut u8;
83
84/// Timer/Counter0 Interrupt Flag Register.
85///
86/// Bitfields:
87///
88/// | Name | Mask (binary) |
89/// | ---- | ------------- |
90/// | OCF0A | 10 |
91/// | TOV0 | 1 |
92pub const TIFR0: *mut u8 = 0x35 as *mut u8;
93
94/// Timer/Counter1 Interrupt Flag register.
95///
96/// Bitfields:
97///
98/// | Name | Mask (binary) |
99/// | ---- | ------------- |
100/// | TOV1 | 1 |
101/// | OCF1B | 100 |
102/// | OCF1A | 10 |
103/// | ICF1 | 100000 |
104pub const TIFR1: *mut u8 = 0x36 as *mut u8;
105
106/// Pin Change Interrupt Flag Register.
107///
108/// Bitfields:
109///
110/// | Name | Mask (binary) |
111/// | ---- | ------------- |
112/// | PCIF | 11 |
113pub const PCIFR: *mut u8 = 0x3B as *mut u8;
114
115/// External Interrupt Flag Register.
116///
117/// Bitfields:
118///
119/// | Name | Mask (binary) |
120/// | ---- | ------------- |
121/// | INTF | 11 |
122pub const EIFR: *mut u8 = 0x3C as *mut u8;
123
124/// External Interrupt Mask Register.
125///
126/// Bitfields:
127///
128/// | Name | Mask (binary) |
129/// | ---- | ------------- |
130/// | INT | 11 |
131pub const EIMSK: *mut u8 = 0x3D as *mut u8;
132
133/// General purpose register 0.
134pub const GPIOR0: *mut u8 = 0x3E as *mut u8;
135
136/// EEPROM Control Register.
137///
138/// Bitfields:
139///
140/// | Name | Mask (binary) |
141/// | ---- | ------------- |
142/// | EEPM | 110000 |
143/// | EERIE | 1000 |
144/// | EERE | 1 |
145/// | EEMPE | 100 |
146/// | EEPE | 10 |
147pub const EECR: *mut u8 = 0x3F as *mut u8;
148
149/// EEPROM Data Register.
150pub const EEDR: *mut u8 = 0x40 as *mut u8;
151
152/// EEPROM Address Register  Bytes low byte.
153pub const EEARL: *mut u8 = 0x41 as *mut u8;
154
155/// EEPROM Address Register  Bytes.
156pub const EEAR: *mut u16 = 0x41 as *mut u16;
157
158/// EEPROM Address Register  Bytes high byte.
159pub const EEARH: *mut u8 = 0x42 as *mut u8;
160
161/// General Timer Counter Control register.
162///
163/// Bitfields:
164///
165/// | Name | Mask (binary) |
166/// | ---- | ------------- |
167/// | TSM | 10000000 |
168/// | PSR0 | 10 |
169/// | PSR1 | 1 |
170pub const GTCCR: *mut u8 = 0x43 as *mut u8;
171
172/// Timer/Counter0 Control Register A.
173///
174/// Bitfields:
175///
176/// | Name | Mask (binary) |
177/// | ---- | ------------- |
178/// | COM0A | 11000000 |
179/// | WGM0 | 11 |
180pub const TCCR0A: *mut u8 = 0x45 as *mut u8;
181
182/// Timer/Counter0 Control Register B.
183///
184/// Bitfields:
185///
186/// | Name | Mask (binary) |
187/// | ---- | ------------- |
188/// | CS0 | 111 |
189/// | FOC0A | 10000000 |
190pub const TCCR0B: *mut u8 = 0x46 as *mut u8;
191
192/// Timer/Counter0.
193pub const TCNT2: *mut u8 = 0x47 as *mut u8;
194
195/// Timer/Counter0 Output Compare Register A.
196pub const OCR0A: *mut u8 = 0x48 as *mut u8;
197
198/// General Purpose register 1.
199pub const GPIOR1: *mut u8 = 0x4A as *mut u8;
200
201/// General Purpose IO register 2.
202pub const GPIOR2: *mut u8 = 0x4B as *mut u8;
203
204/// SPI Control Register.
205///
206/// Bitfields:
207///
208/// | Name | Mask (binary) |
209/// | ---- | ------------- |
210/// | CPOL | 1000 |
211/// | CPHA | 100 |
212/// | MSTR | 10000 |
213/// | SPR | 11 |
214/// | SPE | 1000000 |
215/// | SPIE | 10000000 |
216/// | DORD | 100000 |
217pub const SPCR: *mut u8 = 0x4C as *mut u8;
218
219/// SPI Status Register.
220///
221/// Bitfields:
222///
223/// | Name | Mask (binary) |
224/// | ---- | ------------- |
225/// | SPIF | 10000000 |
226/// | WCOL | 1000000 |
227/// | SPI2X | 1 |
228pub const SPSR: *mut u8 = 0x4D as *mut u8;
229
230/// SPI Data Register.
231pub const SPDR: *mut u8 = 0x4E as *mut u8;
232
233/// Analog Comparator Control And Status Register.
234///
235/// Bitfields:
236///
237/// | Name | Mask (binary) |
238/// | ---- | ------------- |
239/// | ACIS | 11 |
240/// | ACIE | 1000 |
241/// | ACIC | 100 |
242/// | ACIRS | 1000000 |
243/// | ACD | 10000000 |
244/// | ACO | 100000 |
245/// | ACI | 10000 |
246pub const ACSR: *mut u8 = 0x50 as *mut u8;
247
248/// debugWire communication register.
249pub const DWDR: *mut u8 = 0x51 as *mut u8;
250
251/// Sleep Mode Control Register.
252///
253/// Bitfields:
254///
255/// | Name | Mask (binary) |
256/// | ---- | ------------- |
257/// | SE | 1 |
258/// | SM | 110 |
259pub const SMCR: *mut u8 = 0x53 as *mut u8;
260
261/// MCU Status register.
262///
263/// Bitfields:
264///
265/// | Name | Mask (binary) |
266/// | ---- | ------------- |
267/// | BORF | 100 |
268/// | EXTRF | 10 |
269/// | WDRF | 1000 |
270/// | PORF | 1 |
271pub const MCUSR: *mut u8 = 0x54 as *mut u8;
272
273/// MCU Control Register.
274///
275/// Bitfields:
276///
277/// | Name | Mask (binary) |
278/// | ---- | ------------- |
279/// | BODSE | 100000 |
280/// | BODS | 1000000 |
281/// | PUD | 10000 |
282pub const MCUCR: *mut u8 = 0x55 as *mut u8;
283
284/// Store Program Memory Control Register.
285///
286/// Bitfields:
287///
288/// | Name | Mask (binary) |
289/// | ---- | ------------- |
290/// | SPMEN | 1 |
291/// | RFLB | 1000 |
292/// | SIGRD | 100000 |
293/// | CTPB | 10000 |
294/// | PGERS | 10 |
295/// | PGWRT | 100 |
296/// | RWWSB | 1000000 |
297pub const SPMCSR: *mut u8 = 0x57 as *mut u8;
298
299/// Stack Pointer  Bytes low byte.
300pub const SPL: *mut u8 = 0x5D as *mut u8;
301
302/// Stack Pointer  Bytes.
303pub const SP: *mut u16 = 0x5D as *mut u16;
304
305/// Stack Pointer  Bytes high byte.
306pub const SPH: *mut u8 = 0x5E as *mut u8;
307
308/// Status Register.
309///
310/// Bitfields:
311///
312/// | Name | Mask (binary) |
313/// | ---- | ------------- |
314/// | I | 10000000 |
315/// | Z | 10 |
316/// | N | 100 |
317/// | T | 1000000 |
318/// | S | 10000 |
319/// | H | 100000 |
320/// | C | 1 |
321/// | V | 1000 |
322pub const SREG: *mut u8 = 0x5F as *mut u8;
323
324/// Watchdog Timer Control Register.
325///
326/// Bitfields:
327///
328/// | Name | Mask (binary) |
329/// | ---- | ------------- |
330/// | WDIE | 1000000 |
331/// | WDE | 1000 |
332/// | WDP | 100111 |
333/// | WDCE | 10000 |
334/// | WDIF | 10000000 |
335pub const WDTCR: *mut u8 = 0x60 as *mut u8;
336
337/// Clock Prescale Register.
338///
339/// Bitfields:
340///
341/// | Name | Mask (binary) |
342/// | ---- | ------------- |
343/// | CLKPS | 1111 |
344/// | CLKPCE | 10000000 |
345pub const CLKPR: *mut u8 = 0x61 as *mut u8;
346
347/// Clock Control & Status Register.
348///
349/// Bitfields:
350///
351/// | Name | Mask (binary) |
352/// | ---- | ------------- |
353/// | CLKCCE | 10000000 |
354/// | CLKC | 1111 |
355/// | CLKRDY | 10000 |
356pub const CLKCSR: *mut u8 = 0x62 as *mut u8;
357
358/// Clock Selection Register.
359///
360/// Bitfields:
361///
362/// | Name | Mask (binary) |
363/// | ---- | ------------- |
364/// | CSUT | 110000 |
365/// | COUT | 1000000 |
366/// | CSEL | 1111 |
367pub const CLKSELR: *mut u8 = 0x63 as *mut u8;
368
369/// Power Reduction Register.
370///
371/// Bitfields:
372///
373/// | Name | Mask (binary) |
374/// | ---- | ------------- |
375/// | PRTIM1 | 1000 |
376/// | PRSPI | 10000 |
377/// | PRTIM0 | 100 |
378/// | PRUSI | 10 |
379/// | PRLIN | 100000 |
380/// | PRADC | 1 |
381pub const PRR: *mut u8 = 0x64 as *mut u8;
382
383/// Oscillator Calibration Register.
384pub const OSCCAL: *mut u8 = 0x66 as *mut u8;
385
386/// Pin Change Interrupt Control Register.
387///
388/// Bitfields:
389///
390/// | Name | Mask (binary) |
391/// | ---- | ------------- |
392/// | PCIE | 11 |
393pub const PCICR: *mut u8 = 0x68 as *mut u8;
394
395/// External Interrupt Control Register.
396///
397/// Bitfields:
398///
399/// | Name | Mask (binary) |
400/// | ---- | ------------- |
401/// | ISC0 | 11 |
402/// | ISC1 | 1100 |
403pub const EICRA: *mut u8 = 0x69 as *mut u8;
404
405/// Pin Change Mask Register 0.
406pub const PCMSK0: *mut u8 = 0x6B as *mut u8;
407
408/// Pin Change Mask Register 1.
409pub const PCMSK1: *mut u8 = 0x6C as *mut u8;
410
411/// Timer/Counter0 Interrupt Mask register.
412///
413/// Bitfields:
414///
415/// | Name | Mask (binary) |
416/// | ---- | ------------- |
417/// | OCIE0A | 10 |
418/// | TOIE0 | 1 |
419pub const TIMSK0: *mut u8 = 0x6E as *mut u8;
420
421/// Timer/Counter1 Interrupt Mask Register.
422///
423/// Bitfields:
424///
425/// | Name | Mask (binary) |
426/// | ---- | ------------- |
427/// | ICIE1 | 100000 |
428/// | TOIE1 | 1 |
429/// | OCIE1B | 100 |
430/// | OCIE1A | 10 |
431pub const TIMSK1: *mut u8 = 0x6F as *mut u8;
432
433/// Analog Miscellaneous Control Register (Shared with AD_CONVERTER IO_MODULE).
434///
435/// Bitfields:
436///
437/// | Name | Mask (binary) |
438/// | ---- | ------------- |
439/// | ISRCEN | 1 |
440pub const AMISCR: *mut u8 = 0x77 as *mut u8;
441
442/// ADC Data Register  Bytes low byte.
443pub const ADCL: *mut u8 = 0x78 as *mut u8;
444
445/// ADC Data Register  Bytes.
446pub const ADC: *mut u16 = 0x78 as *mut u16;
447
448/// ADC Data Register  Bytes high byte.
449pub const ADCH: *mut u8 = 0x79 as *mut u8;
450
451/// The ADC Control and Status register A.
452///
453/// Bitfields:
454///
455/// | Name | Mask (binary) |
456/// | ---- | ------------- |
457/// | ADEN | 10000000 |
458/// | ADSC | 1000000 |
459/// | ADIE | 1000 |
460/// | ADATE | 100000 |
461/// | ADPS | 111 |
462/// | ADIF | 10000 |
463pub const ADCSRA: *mut u8 = 0x7A as *mut u8;
464
465/// Analog Comparator & ADC Control and Status Register B (Shared with AD_CONVERTER IO_MODULE).
466///
467/// Bitfields:
468///
469/// | Name | Mask (binary) |
470/// | ---- | ------------- |
471/// | ACME | 1000000 |
472/// | ACIR | 110000 |
473pub const ADCSRB: *mut u8 = 0x7B as *mut u8;
474
475/// The ADC multiplexer Selection Register.
476///
477/// Bitfields:
478///
479/// | Name | Mask (binary) |
480/// | ---- | ------------- |
481/// | MUX | 11111 |
482/// | ADLAR | 100000 |
483/// | REFS | 11000000 |
484pub const ADMUX: *mut u8 = 0x7C as *mut u8;
485
486/// Digital Input Disable Register 0.
487///
488/// Bitfields:
489///
490/// | Name | Mask (binary) |
491/// | ---- | ------------- |
492/// | ADC3D | 1000 |
493/// | ADC0D | 1 |
494/// | ADC6D | 1000000 |
495/// | ADC4D | 10000 |
496/// | ADC5D | 100000 |
497/// | ADC7D | 10000000 |
498/// | ADC2D | 100 |
499/// | ADC1D | 10 |
500pub const DIDR0: *mut u8 = 0x7E as *mut u8;
501
502/// Digital Input Disable Register 1.
503///
504/// Bitfields:
505///
506/// | Name | Mask (binary) |
507/// | ---- | ------------- |
508/// | ADC10D | 100 |
509/// | ADC9D | 10 |
510/// | ADC8D | 1 |
511pub const DIDR1: *mut u8 = 0x7F as *mut u8;
512
513/// Timer/Counter1 Control Register A.
514///
515/// Bitfields:
516///
517/// | Name | Mask (binary) |
518/// | ---- | ------------- |
519/// | COM1B | 110000 |
520/// | COM1A | 11000000 |
521pub const TCCR1A: *mut u8 = 0x80 as *mut u8;
522
523/// Timer/Counter1 Control Register B.
524///
525/// Bitfields:
526///
527/// | Name | Mask (binary) |
528/// | ---- | ------------- |
529/// | ICNC1 | 10000000 |
530/// | ICES1 | 1000000 |
531/// | CS1 | 111 |
532pub const TCCR1B: *mut u8 = 0x81 as *mut u8;
533
534/// Timer/Counter1 Control Register C.
535///
536/// Bitfields:
537///
538/// | Name | Mask (binary) |
539/// | ---- | ------------- |
540/// | FOC1B | 1000000 |
541/// | FOC1A | 10000000 |
542pub const TCCR1C: *mut u8 = 0x82 as *mut u8;
543
544/// Timer/Counter1 Control Register D.
545///
546/// Bitfields:
547///
548/// | Name | Mask (binary) |
549/// | ---- | ------------- |
550/// | OC1BU | 10000 |
551/// | OC1AX | 1000 |
552/// | OC1BX | 10000000 |
553/// | OC1BV | 100000 |
554/// | OC1AW | 100 |
555/// | OC1AU | 1 |
556/// | OC1AV | 10 |
557/// | OC1BW | 1000000 |
558pub const TCCR1D: *mut u8 = 0x83 as *mut u8;
559
560/// Timer/Counter1  Bytes low byte.
561pub const TCNT1L: *mut u8 = 0x84 as *mut u8;
562
563/// Timer/Counter1  Bytes.
564pub const TCNT1: *mut u16 = 0x84 as *mut u16;
565
566/// Timer/Counter1  Bytes high byte.
567pub const TCNT1H: *mut u8 = 0x85 as *mut u8;
568
569/// Timer/Counter1 Input Capture Register  Bytes.
570pub const ICR1: *mut u16 = 0x86 as *mut u16;
571
572/// Timer/Counter1 Input Capture Register  Bytes low byte.
573pub const ICR1L: *mut u8 = 0x86 as *mut u8;
574
575/// Timer/Counter1 Input Capture Register  Bytes high byte.
576pub const ICR1H: *mut u8 = 0x87 as *mut u8;
577
578/// Timer/Counter1 Output Compare Register A  Bytes.
579pub const OCR1A: *mut u16 = 0x88 as *mut u16;
580
581/// Timer/Counter1 Output Compare Register A  Bytes low byte.
582pub const OCR1AL: *mut u8 = 0x88 as *mut u8;
583
584/// Timer/Counter1 Output Compare Register A  Bytes high byte.
585pub const OCR1AH: *mut u8 = 0x89 as *mut u8;
586
587/// Timer/Counter1 Output Compare Register B  Bytes.
588pub const OCR1B: *mut u16 = 0x8A as *mut u16;
589
590/// Timer/Counter1 Output Compare Register B  Bytes low byte.
591pub const OCR1BL: *mut u8 = 0x8A as *mut u8;
592
593/// Timer/Counter1 Output Compare Register B  Bytes high byte.
594pub const OCR1BH: *mut u8 = 0x8B as *mut u8;
595
596/// Asynchronous Status Register.
597///
598/// Bitfields:
599///
600/// | Name | Mask (binary) |
601/// | ---- | ------------- |
602/// | TCN0UB | 10000 |
603/// | AS0 | 100000 |
604/// | TCR0AUB | 10 |
605/// | TCR0BUB | 1 |
606/// | OCR0AUB | 1000 |
607/// | EXCLK | 1000000 |
608pub const ASSR: *mut u8 = 0xB6 as *mut u8;
609
610/// USI Control Register.
611///
612/// Bitfields:
613///
614/// | Name | Mask (binary) |
615/// | ---- | ------------- |
616/// | USICS | 1100 |
617/// | USISIE | 10000000 |
618/// | USITC | 1 |
619/// | USICLK | 10 |
620/// | USIOIE | 1000000 |
621/// | USIWM | 110000 |
622pub const USICR: *mut u8 = 0xB8 as *mut u8;
623
624/// USI Status Register.
625///
626/// Bitfields:
627///
628/// | Name | Mask (binary) |
629/// | ---- | ------------- |
630/// | USIOIF | 1000000 |
631/// | USICNT | 1111 |
632/// | USIDC | 10000 |
633/// | USISIF | 10000000 |
634/// | USIPF | 100000 |
635pub const USISR: *mut u8 = 0xB9 as *mut u8;
636
637/// USI Data Register.
638pub const USIDR: *mut u8 = 0xBA as *mut u8;
639
640/// USI Buffer Register.
641pub const USIBR: *mut u8 = 0xBB as *mut u8;
642
643/// USI Pin Position.
644pub const USIPP: *mut u8 = 0xBC as *mut u8;
645
646/// LIN Control Register.
647///
648/// Bitfields:
649///
650/// | Name | Mask (binary) |
651/// | ---- | ------------- |
652/// | LCMD | 111 |
653/// | LSWRES | 10000000 |
654/// | LENA | 1000 |
655/// | LCONF | 110000 |
656/// | LIN13 | 1000000 |
657pub const LINCR: *mut u8 = 0xC8 as *mut u8;
658
659/// LIN Status and Interrupt Register.
660///
661/// Bitfields:
662///
663/// | Name | Mask (binary) |
664/// | ---- | ------------- |
665/// | LIDOK | 100 |
666/// | LRXOK | 1 |
667/// | LTXOK | 10 |
668/// | LIDST | 11100000 |
669/// | LBUSY | 10000 |
670/// | LERR | 1000 |
671pub const LINSIR: *mut u8 = 0xC9 as *mut u8;
672
673/// LIN Enable Interrupt Register.
674///
675/// Bitfields:
676///
677/// | Name | Mask (binary) |
678/// | ---- | ------------- |
679/// | LENIDOK | 100 |
680/// | LENERR | 1000 |
681/// | LENTXOK | 10 |
682/// | LENRXOK | 1 |
683pub const LINENIR: *mut u8 = 0xCA as *mut u8;
684
685/// LIN Error Register.
686///
687/// Bitfields:
688///
689/// | Name | Mask (binary) |
690/// | ---- | ------------- |
691/// | LABORT | 10000000 |
692/// | LSERR | 1000 |
693/// | LCERR | 10 |
694/// | LTOERR | 1000000 |
695/// | LOVERR | 100000 |
696/// | LBERR | 1 |
697/// | LFERR | 10000 |
698/// | LPERR | 100 |
699pub const LINERR: *mut u8 = 0xCB as *mut u8;
700
701/// LIN Bit Timing Register.
702///
703/// Bitfields:
704///
705/// | Name | Mask (binary) |
706/// | ---- | ------------- |
707/// | LBT | 111111 |
708/// | LDISR | 10000000 |
709pub const LINBTR: *mut u8 = 0xCC as *mut u8;
710
711/// LIN Baud Rate Low Register.
712pub const LINBRRL: *mut u8 = 0xCD as *mut u8;
713
714/// LIN Baud Rate High Register.
715pub const LINBRRH: *mut u8 = 0xCE as *mut u8;
716
717/// LIN Data Length Register.
718///
719/// Bitfields:
720///
721/// | Name | Mask (binary) |
722/// | ---- | ------------- |
723/// | LRXDL | 1111 |
724/// | LTXDL | 11110000 |
725pub const LINDLR: *mut u8 = 0xCF as *mut u8;
726
727/// LIN Identifier Register.
728///
729/// Bitfields:
730///
731/// | Name | Mask (binary) |
732/// | ---- | ------------- |
733/// | LP | 11000000 |
734/// | LID | 111111 |
735pub const LINIDR: *mut u8 = 0xD0 as *mut u8;
736
737/// LIN Data Buffer Selection Register.
738///
739/// Bitfields:
740///
741/// | Name | Mask (binary) |
742/// | ---- | ------------- |
743/// | LAINC | 1000 |
744/// | LINDX | 111 |
745pub const LINSEL: *mut u8 = 0xD1 as *mut u8;
746
747/// LIN Data Register.
748pub const LINDAT: *mut u8 = 0xD2 as *mut u8;
749
750/// Bitfield on register `ACSR`
751pub const ACIS: *mut u8 = 0x3 as *mut u8;
752
753/// Bitfield on register `ACSR`
754pub const ACIE: *mut u8 = 0x8 as *mut u8;
755
756/// Bitfield on register `ACSR`
757pub const ACIC: *mut u8 = 0x4 as *mut u8;
758
759/// Bitfield on register `ACSR`
760pub const ACIRS: *mut u8 = 0x40 as *mut u8;
761
762/// Bitfield on register `ACSR`
763pub const ACD: *mut u8 = 0x80 as *mut u8;
764
765/// Bitfield on register `ACSR`
766pub const ACO: *mut u8 = 0x20 as *mut u8;
767
768/// Bitfield on register `ACSR`
769pub const ACI: *mut u8 = 0x10 as *mut u8;
770
771/// Bitfield on register `ADCSRA`
772pub const ADEN: *mut u8 = 0x80 as *mut u8;
773
774/// Bitfield on register `ADCSRA`
775pub const ADSC: *mut u8 = 0x40 as *mut u8;
776
777/// Bitfield on register `ADCSRA`
778pub const ADIE: *mut u8 = 0x8 as *mut u8;
779
780/// Bitfield on register `ADCSRA`
781pub const ADATE: *mut u8 = 0x20 as *mut u8;
782
783/// Bitfield on register `ADCSRA`
784pub const ADPS: *mut u8 = 0x7 as *mut u8;
785
786/// Bitfield on register `ADCSRA`
787pub const ADIF: *mut u8 = 0x10 as *mut u8;
788
789/// Bitfield on register `ADCSRB`
790pub const ACME: *mut u8 = 0x40 as *mut u8;
791
792/// Bitfield on register `ADCSRB`
793pub const ACIR: *mut u8 = 0x30 as *mut u8;
794
795/// Bitfield on register `ADMUX`
796pub const MUX: *mut u8 = 0x1F as *mut u8;
797
798/// Bitfield on register `ADMUX`
799pub const ADLAR: *mut u8 = 0x20 as *mut u8;
800
801/// Bitfield on register `ADMUX`
802pub const REFS: *mut u8 = 0xC0 as *mut u8;
803
804/// Bitfield on register `AMISCR`
805pub const ISRCEN: *mut u8 = 0x1 as *mut u8;
806
807/// Bitfield on register `ASSR`
808pub const TCN0UB: *mut u8 = 0x10 as *mut u8;
809
810/// Bitfield on register `ASSR`
811pub const AS0: *mut u8 = 0x20 as *mut u8;
812
813/// Bitfield on register `ASSR`
814pub const TCR0AUB: *mut u8 = 0x2 as *mut u8;
815
816/// Bitfield on register `ASSR`
817pub const TCR0BUB: *mut u8 = 0x1 as *mut u8;
818
819/// Bitfield on register `ASSR`
820pub const OCR0AUB: *mut u8 = 0x8 as *mut u8;
821
822/// Bitfield on register `ASSR`
823pub const EXCLK: *mut u8 = 0x40 as *mut u8;
824
825/// Bitfield on register `CLKCSR`
826pub const CLKCCE: *mut u8 = 0x80 as *mut u8;
827
828/// Bitfield on register `CLKCSR`
829pub const CLKC: *mut u8 = 0xF as *mut u8;
830
831/// Bitfield on register `CLKCSR`
832pub const CLKRDY: *mut u8 = 0x10 as *mut u8;
833
834/// Bitfield on register `CLKPR`
835pub const CLKPS: *mut u8 = 0xF as *mut u8;
836
837/// Bitfield on register `CLKPR`
838pub const CLKPCE: *mut u8 = 0x80 as *mut u8;
839
840/// Bitfield on register `CLKSELR`
841pub const CSUT: *mut u8 = 0x30 as *mut u8;
842
843/// Bitfield on register `CLKSELR`
844pub const COUT: *mut u8 = 0x40 as *mut u8;
845
846/// Bitfield on register `CLKSELR`
847pub const CSEL: *mut u8 = 0xF as *mut u8;
848
849/// Bitfield on register `DIDR0`
850pub const ADC3D: *mut u8 = 0x8 as *mut u8;
851
852/// Bitfield on register `DIDR0`
853pub const ADC0D: *mut u8 = 0x1 as *mut u8;
854
855/// Bitfield on register `DIDR0`
856pub const ADC6D: *mut u8 = 0x40 as *mut u8;
857
858/// Bitfield on register `DIDR0`
859pub const ADC4D: *mut u8 = 0x10 as *mut u8;
860
861/// Bitfield on register `DIDR0`
862pub const ADC5D: *mut u8 = 0x20 as *mut u8;
863
864/// Bitfield on register `DIDR0`
865pub const ADC7D: *mut u8 = 0x80 as *mut u8;
866
867/// Bitfield on register `DIDR0`
868pub const ADC2D: *mut u8 = 0x4 as *mut u8;
869
870/// Bitfield on register `DIDR0`
871pub const ADC1D: *mut u8 = 0x2 as *mut u8;
872
873/// Bitfield on register `DIDR1`
874pub const ADC10D: *mut u8 = 0x4 as *mut u8;
875
876/// Bitfield on register `DIDR1`
877pub const ADC9D: *mut u8 = 0x2 as *mut u8;
878
879/// Bitfield on register `DIDR1`
880pub const ADC8D: *mut u8 = 0x1 as *mut u8;
881
882/// Bitfield on register `EECR`
883pub const EEPM: *mut u8 = 0x30 as *mut u8;
884
885/// Bitfield on register `EECR`
886pub const EERIE: *mut u8 = 0x8 as *mut u8;
887
888/// Bitfield on register `EECR`
889pub const EERE: *mut u8 = 0x1 as *mut u8;
890
891/// Bitfield on register `EECR`
892pub const EEMPE: *mut u8 = 0x4 as *mut u8;
893
894/// Bitfield on register `EECR`
895pub const EEPE: *mut u8 = 0x2 as *mut u8;
896
897/// Bitfield on register `EICRA`
898pub const ISC0: *mut u8 = 0x3 as *mut u8;
899
900/// Bitfield on register `EICRA`
901pub const ISC1: *mut u8 = 0xC as *mut u8;
902
903/// Bitfield on register `EIFR`
904pub const INTF: *mut u8 = 0x3 as *mut u8;
905
906/// Bitfield on register `EIMSK`
907pub const INT: *mut u8 = 0x3 as *mut u8;
908
909/// Bitfield on register `EXTENDED`
910pub const SELFPRGEN: *mut u8 = 0x1 as *mut u8;
911
912/// Bitfield on register `GTCCR`
913pub const TSM: *mut u8 = 0x80 as *mut u8;
914
915/// Bitfield on register `GTCCR`
916pub const PSR0: *mut u8 = 0x2 as *mut u8;
917
918/// Bitfield on register `GTCCR`
919pub const PSR1: *mut u8 = 0x1 as *mut u8;
920
921/// Bitfield on register `HIGH`
922pub const DWEN: *mut u8 = 0x40 as *mut u8;
923
924/// Bitfield on register `HIGH`
925pub const RSTDISBL: *mut u8 = 0x80 as *mut u8;
926
927/// Bitfield on register `HIGH`
928pub const SPIEN: *mut u8 = 0x20 as *mut u8;
929
930/// Bitfield on register `HIGH`
931pub const WDTON: *mut u8 = 0x10 as *mut u8;
932
933/// Bitfield on register `HIGH`
934pub const BODLEVEL: *mut u8 = 0x7 as *mut u8;
935
936/// Bitfield on register `HIGH`
937pub const EESAVE: *mut u8 = 0x8 as *mut u8;
938
939/// Bitfield on register `LINBTR`
940pub const LBT: *mut u8 = 0x3F as *mut u8;
941
942/// Bitfield on register `LINBTR`
943pub const LDISR: *mut u8 = 0x80 as *mut u8;
944
945/// Bitfield on register `LINCR`
946pub const LCMD: *mut u8 = 0x7 as *mut u8;
947
948/// Bitfield on register `LINCR`
949pub const LSWRES: *mut u8 = 0x80 as *mut u8;
950
951/// Bitfield on register `LINCR`
952pub const LENA: *mut u8 = 0x8 as *mut u8;
953
954/// Bitfield on register `LINCR`
955pub const LCONF: *mut u8 = 0x30 as *mut u8;
956
957/// Bitfield on register `LINCR`
958pub const LIN13: *mut u8 = 0x40 as *mut u8;
959
960/// Bitfield on register `LINDLR`
961pub const LRXDL: *mut u8 = 0xF as *mut u8;
962
963/// Bitfield on register `LINDLR`
964pub const LTXDL: *mut u8 = 0xF0 as *mut u8;
965
966/// Bitfield on register `LINENIR`
967pub const LENIDOK: *mut u8 = 0x4 as *mut u8;
968
969/// Bitfield on register `LINENIR`
970pub const LENERR: *mut u8 = 0x8 as *mut u8;
971
972/// Bitfield on register `LINENIR`
973pub const LENTXOK: *mut u8 = 0x2 as *mut u8;
974
975/// Bitfield on register `LINENIR`
976pub const LENRXOK: *mut u8 = 0x1 as *mut u8;
977
978/// Bitfield on register `LINERR`
979pub const LABORT: *mut u8 = 0x80 as *mut u8;
980
981/// Bitfield on register `LINERR`
982pub const LSERR: *mut u8 = 0x8 as *mut u8;
983
984/// Bitfield on register `LINERR`
985pub const LCERR: *mut u8 = 0x2 as *mut u8;
986
987/// Bitfield on register `LINERR`
988pub const LTOERR: *mut u8 = 0x40 as *mut u8;
989
990/// Bitfield on register `LINERR`
991pub const LOVERR: *mut u8 = 0x20 as *mut u8;
992
993/// Bitfield on register `LINERR`
994pub const LBERR: *mut u8 = 0x1 as *mut u8;
995
996/// Bitfield on register `LINERR`
997pub const LFERR: *mut u8 = 0x10 as *mut u8;
998
999/// Bitfield on register `LINERR`
1000pub const LPERR: *mut u8 = 0x4 as *mut u8;
1001
1002/// Bitfield on register `LINIDR`
1003pub const LP: *mut u8 = 0xC0 as *mut u8;
1004
1005/// Bitfield on register `LINIDR`
1006pub const LID: *mut u8 = 0x3F as *mut u8;
1007
1008/// Bitfield on register `LINSEL`
1009pub const LAINC: *mut u8 = 0x8 as *mut u8;
1010
1011/// Bitfield on register `LINSEL`
1012pub const LINDX: *mut u8 = 0x7 as *mut u8;
1013
1014/// Bitfield on register `LINSIR`
1015pub const LIDOK: *mut u8 = 0x4 as *mut u8;
1016
1017/// Bitfield on register `LINSIR`
1018pub const LRXOK: *mut u8 = 0x1 as *mut u8;
1019
1020/// Bitfield on register `LINSIR`
1021pub const LTXOK: *mut u8 = 0x2 as *mut u8;
1022
1023/// Bitfield on register `LINSIR`
1024pub const LIDST: *mut u8 = 0xE0 as *mut u8;
1025
1026/// Bitfield on register `LINSIR`
1027pub const LBUSY: *mut u8 = 0x10 as *mut u8;
1028
1029/// Bitfield on register `LINSIR`
1030pub const LERR: *mut u8 = 0x8 as *mut u8;
1031
1032/// Bitfield on register `LOCKBIT`
1033pub const LB: *mut u8 = 0x3 as *mut u8;
1034
1035/// Bitfield on register `LOW`
1036pub const SUT_CKSEL: *mut u8 = 0x3F as *mut u8;
1037
1038/// Bitfield on register `LOW`
1039pub const CKDIV8: *mut u8 = 0x80 as *mut u8;
1040
1041/// Bitfield on register `LOW`
1042pub const CKOUT: *mut u8 = 0x40 as *mut u8;
1043
1044/// Bitfield on register `MCUCR`
1045pub const BODSE: *mut u8 = 0x20 as *mut u8;
1046
1047/// Bitfield on register `MCUCR`
1048pub const BODS: *mut u8 = 0x40 as *mut u8;
1049
1050/// Bitfield on register `MCUCR`
1051pub const PUD: *mut u8 = 0x10 as *mut u8;
1052
1053/// Bitfield on register `MCUSR`
1054pub const BORF: *mut u8 = 0x4 as *mut u8;
1055
1056/// Bitfield on register `MCUSR`
1057pub const EXTRF: *mut u8 = 0x2 as *mut u8;
1058
1059/// Bitfield on register `MCUSR`
1060pub const WDRF: *mut u8 = 0x8 as *mut u8;
1061
1062/// Bitfield on register `MCUSR`
1063pub const PORF: *mut u8 = 0x1 as *mut u8;
1064
1065/// Bitfield on register `PCICR`
1066pub const PCIE: *mut u8 = 0x3 as *mut u8;
1067
1068/// Bitfield on register `PCIFR`
1069pub const PCIF: *mut u8 = 0x3 as *mut u8;
1070
1071/// Bitfield on register `PORTCR`
1072pub const BBMB: *mut u8 = 0x20 as *mut u8;
1073
1074/// Bitfield on register `PORTCR`
1075pub const PUDA: *mut u8 = 0x1 as *mut u8;
1076
1077/// Bitfield on register `PORTCR`
1078pub const PUDB: *mut u8 = 0x2 as *mut u8;
1079
1080/// Bitfield on register `PORTCR`
1081pub const BBMA: *mut u8 = 0x10 as *mut u8;
1082
1083/// Bitfield on register `PRR`
1084pub const PRTIM1: *mut u8 = 0x8 as *mut u8;
1085
1086/// Bitfield on register `PRR`
1087pub const PRSPI: *mut u8 = 0x10 as *mut u8;
1088
1089/// Bitfield on register `PRR`
1090pub const PRTIM0: *mut u8 = 0x4 as *mut u8;
1091
1092/// Bitfield on register `PRR`
1093pub const PRUSI: *mut u8 = 0x2 as *mut u8;
1094
1095/// Bitfield on register `PRR`
1096pub const PRLIN: *mut u8 = 0x20 as *mut u8;
1097
1098/// Bitfield on register `PRR`
1099pub const PRADC: *mut u8 = 0x1 as *mut u8;
1100
1101/// Bitfield on register `SMCR`
1102pub const SE: *mut u8 = 0x1 as *mut u8;
1103
1104/// Bitfield on register `SMCR`
1105pub const SM: *mut u8 = 0x6 as *mut u8;
1106
1107/// Bitfield on register `SPCR`
1108pub const CPOL: *mut u8 = 0x8 as *mut u8;
1109
1110/// Bitfield on register `SPCR`
1111pub const CPHA: *mut u8 = 0x4 as *mut u8;
1112
1113/// Bitfield on register `SPCR`
1114pub const MSTR: *mut u8 = 0x10 as *mut u8;
1115
1116/// Bitfield on register `SPCR`
1117pub const SPR: *mut u8 = 0x3 as *mut u8;
1118
1119/// Bitfield on register `SPCR`
1120pub const SPE: *mut u8 = 0x40 as *mut u8;
1121
1122/// Bitfield on register `SPCR`
1123pub const SPIE: *mut u8 = 0x80 as *mut u8;
1124
1125/// Bitfield on register `SPCR`
1126pub const DORD: *mut u8 = 0x20 as *mut u8;
1127
1128/// Bitfield on register `SPMCSR`
1129pub const SPMEN: *mut u8 = 0x1 as *mut u8;
1130
1131/// Bitfield on register `SPMCSR`
1132pub const RFLB: *mut u8 = 0x8 as *mut u8;
1133
1134/// Bitfield on register `SPMCSR`
1135pub const SIGRD: *mut u8 = 0x20 as *mut u8;
1136
1137/// Bitfield on register `SPMCSR`
1138pub const CTPB: *mut u8 = 0x10 as *mut u8;
1139
1140/// Bitfield on register `SPMCSR`
1141pub const PGERS: *mut u8 = 0x2 as *mut u8;
1142
1143/// Bitfield on register `SPMCSR`
1144pub const PGWRT: *mut u8 = 0x4 as *mut u8;
1145
1146/// Bitfield on register `SPMCSR`
1147pub const RWWSB: *mut u8 = 0x40 as *mut u8;
1148
1149/// Bitfield on register `SPSR`
1150pub const SPIF: *mut u8 = 0x80 as *mut u8;
1151
1152/// Bitfield on register `SPSR`
1153pub const WCOL: *mut u8 = 0x40 as *mut u8;
1154
1155/// Bitfield on register `SPSR`
1156pub const SPI2X: *mut u8 = 0x1 as *mut u8;
1157
1158/// Bitfield on register `SREG`
1159pub const I: *mut u8 = 0x80 as *mut u8;
1160
1161/// Bitfield on register `SREG`
1162pub const Z: *mut u8 = 0x2 as *mut u8;
1163
1164/// Bitfield on register `SREG`
1165pub const N: *mut u8 = 0x4 as *mut u8;
1166
1167/// Bitfield on register `SREG`
1168pub const T: *mut u8 = 0x40 as *mut u8;
1169
1170/// Bitfield on register `SREG`
1171pub const S: *mut u8 = 0x10 as *mut u8;
1172
1173/// Bitfield on register `SREG`
1174pub const H: *mut u8 = 0x20 as *mut u8;
1175
1176/// Bitfield on register `SREG`
1177pub const C: *mut u8 = 0x1 as *mut u8;
1178
1179/// Bitfield on register `SREG`
1180pub const V: *mut u8 = 0x8 as *mut u8;
1181
1182/// Bitfield on register `TCCR0A`
1183pub const COM0A: *mut u8 = 0xC0 as *mut u8;
1184
1185/// Bitfield on register `TCCR0A`
1186pub const WGM0: *mut u8 = 0x3 as *mut u8;
1187
1188/// Bitfield on register `TCCR0B`
1189pub const CS0: *mut u8 = 0x7 as *mut u8;
1190
1191/// Bitfield on register `TCCR0B`
1192pub const FOC0A: *mut u8 = 0x80 as *mut u8;
1193
1194/// Bitfield on register `TCCR1A`
1195pub const COM1B: *mut u8 = 0x30 as *mut u8;
1196
1197/// Bitfield on register `TCCR1A`
1198pub const COM1A: *mut u8 = 0xC0 as *mut u8;
1199
1200/// Bitfield on register `TCCR1B`
1201pub const ICNC1: *mut u8 = 0x80 as *mut u8;
1202
1203/// Bitfield on register `TCCR1B`
1204pub const ICES1: *mut u8 = 0x40 as *mut u8;
1205
1206/// Bitfield on register `TCCR1B`
1207pub const CS1: *mut u8 = 0x7 as *mut u8;
1208
1209/// Bitfield on register `TCCR1C`
1210pub const FOC1B: *mut u8 = 0x40 as *mut u8;
1211
1212/// Bitfield on register `TCCR1C`
1213pub const FOC1A: *mut u8 = 0x80 as *mut u8;
1214
1215/// Bitfield on register `TCCR1D`
1216pub const OC1BU: *mut u8 = 0x10 as *mut u8;
1217
1218/// Bitfield on register `TCCR1D`
1219pub const OC1AX: *mut u8 = 0x8 as *mut u8;
1220
1221/// Bitfield on register `TCCR1D`
1222pub const OC1BX: *mut u8 = 0x80 as *mut u8;
1223
1224/// Bitfield on register `TCCR1D`
1225pub const OC1BV: *mut u8 = 0x20 as *mut u8;
1226
1227/// Bitfield on register `TCCR1D`
1228pub const OC1AW: *mut u8 = 0x4 as *mut u8;
1229
1230/// Bitfield on register `TCCR1D`
1231pub const OC1AU: *mut u8 = 0x1 as *mut u8;
1232
1233/// Bitfield on register `TCCR1D`
1234pub const OC1AV: *mut u8 = 0x2 as *mut u8;
1235
1236/// Bitfield on register `TCCR1D`
1237pub const OC1BW: *mut u8 = 0x40 as *mut u8;
1238
1239/// Bitfield on register `TIFR0`
1240pub const OCF0A: *mut u8 = 0x2 as *mut u8;
1241
1242/// Bitfield on register `TIFR0`
1243pub const TOV0: *mut u8 = 0x1 as *mut u8;
1244
1245/// Bitfield on register `TIFR1`
1246pub const TOV1: *mut u8 = 0x1 as *mut u8;
1247
1248/// Bitfield on register `TIFR1`
1249pub const OCF1B: *mut u8 = 0x4 as *mut u8;
1250
1251/// Bitfield on register `TIFR1`
1252pub const OCF1A: *mut u8 = 0x2 as *mut u8;
1253
1254/// Bitfield on register `TIFR1`
1255pub const ICF1: *mut u8 = 0x20 as *mut u8;
1256
1257/// Bitfield on register `TIMSK0`
1258pub const OCIE0A: *mut u8 = 0x2 as *mut u8;
1259
1260/// Bitfield on register `TIMSK0`
1261pub const TOIE0: *mut u8 = 0x1 as *mut u8;
1262
1263/// Bitfield on register `TIMSK1`
1264pub const ICIE1: *mut u8 = 0x20 as *mut u8;
1265
1266/// Bitfield on register `TIMSK1`
1267pub const TOIE1: *mut u8 = 0x1 as *mut u8;
1268
1269/// Bitfield on register `TIMSK1`
1270pub const OCIE1B: *mut u8 = 0x4 as *mut u8;
1271
1272/// Bitfield on register `TIMSK1`
1273pub const OCIE1A: *mut u8 = 0x2 as *mut u8;
1274
1275/// Bitfield on register `USICR`
1276pub const USICS: *mut u8 = 0xC as *mut u8;
1277
1278/// Bitfield on register `USICR`
1279pub const USISIE: *mut u8 = 0x80 as *mut u8;
1280
1281/// Bitfield on register `USICR`
1282pub const USITC: *mut u8 = 0x1 as *mut u8;
1283
1284/// Bitfield on register `USICR`
1285pub const USICLK: *mut u8 = 0x2 as *mut u8;
1286
1287/// Bitfield on register `USICR`
1288pub const USIOIE: *mut u8 = 0x40 as *mut u8;
1289
1290/// Bitfield on register `USICR`
1291pub const USIWM: *mut u8 = 0x30 as *mut u8;
1292
1293/// Bitfield on register `USISR`
1294pub const USIOIF: *mut u8 = 0x40 as *mut u8;
1295
1296/// Bitfield on register `USISR`
1297pub const USICNT: *mut u8 = 0xF as *mut u8;
1298
1299/// Bitfield on register `USISR`
1300pub const USIDC: *mut u8 = 0x10 as *mut u8;
1301
1302/// Bitfield on register `USISR`
1303pub const USISIF: *mut u8 = 0x80 as *mut u8;
1304
1305/// Bitfield on register `USISR`
1306pub const USIPF: *mut u8 = 0x20 as *mut u8;
1307
1308/// Bitfield on register `WDTCR`
1309pub const WDIE: *mut u8 = 0x40 as *mut u8;
1310
1311/// Bitfield on register `WDTCR`
1312pub const WDE: *mut u8 = 0x8 as *mut u8;
1313
1314/// Bitfield on register `WDTCR`
1315pub const WDP: *mut u8 = 0x27 as *mut u8;
1316
1317/// Bitfield on register `WDTCR`
1318pub const WDCE: *mut u8 = 0x10 as *mut u8;
1319
1320/// Bitfield on register `WDTCR`
1321pub const WDIF: *mut u8 = 0x80 as *mut u8;
1322
1323/// `ANALOG_ADC_AUTO_TRIGGER4` value group
1324#[allow(non_upper_case_globals)]
1325pub mod analog_adc_auto_trigger4 {
1326   /// Free Running mode.
1327   pub const VAL_0x00: u32 = 0x0;
1328   /// Analog Comparator.
1329   pub const VAL_0x01: u32 = 0x1;
1330   /// External Interrupt Request 0.
1331   pub const VAL_0x02: u32 = 0x2;
1332   /// Timer/Counter1 Compare Match A.
1333   pub const VAL_0x03: u32 = 0x3;
1334   /// Timer/Counter1 Overflow.
1335   pub const VAL_0x04: u32 = 0x4;
1336   /// Timer/Counter1 Compare Match B.
1337   pub const VAL_0x05: u32 = 0x5;
1338   /// Timer/Counter1 Capture Event.
1339   pub const VAL_0x06: u32 = 0x6;
1340   /// Watchdog Interrupt Request.
1341   pub const VAL_0x07: u32 = 0x7;
1342}
1343
1344/// `ANALOG_ADC_PRESCALER` value group
1345#[allow(non_upper_case_globals)]
1346pub mod analog_adc_prescaler {
1347   /// 2.
1348   pub const VAL_0x00: u32 = 0x0;
1349   /// 2.
1350   pub const VAL_0x01: u32 = 0x1;
1351   /// 4.
1352   pub const VAL_0x02: u32 = 0x2;
1353   /// 8.
1354   pub const VAL_0x03: u32 = 0x3;
1355   /// 16.
1356   pub const VAL_0x04: u32 = 0x4;
1357   /// 32.
1358   pub const VAL_0x05: u32 = 0x5;
1359   /// 64.
1360   pub const VAL_0x06: u32 = 0x6;
1361   /// 128.
1362   pub const VAL_0x07: u32 = 0x7;
1363}
1364
1365/// `ANALOG_ADC_V_REF8` value group
1366#[allow(non_upper_case_globals)]
1367pub mod analog_adc_v_ref8 {
1368   /// If AREFEN==0 then Internal AVCC as Voltage Reference. If AREFEN==1 then AREF pin as Voltage Reference.
1369   pub const VAL_0x00: u32 = 0x0;
1370   /// If AREFEN==0 then Internal 1.1V as Voltage Reference without external capacitor. If AREFEN==1 then Internal 1.1V as Voltage Reference with external capacitor at AREF pin.
1371   pub const VAL_0x01: u32 = 0x1;
1372   /// If AREFEN==0 then Internal AVCC as Voltage Reference. If AREFEN==1 then AREF pin as Voltage Reference.
1373   pub const VAL_0x02: u32 = 0x2;
1374   /// If AREFEN==0 then Internal 2.56V as Voltage Reference without external capacitor. If AREFEN==1 then Internal 2.56V as Voltage Reference with external capacitor at AREF pin.
1375   pub const VAL_0x03: u32 = 0x3;
1376}
1377
1378/// `ANALOG_COMP_INTERRUPT` value group
1379#[allow(non_upper_case_globals)]
1380pub mod analog_comp_interrupt {
1381   /// Interrupt on Toggle.
1382   pub const VAL_0x00: u32 = 0x0;
1383   /// Reserved.
1384   pub const VAL_0x01: u32 = 0x1;
1385   /// Interrupt on Falling Edge.
1386   pub const VAL_0x02: u32 = 0x2;
1387   /// Interrupt on Rising Edge.
1388   pub const VAL_0x03: u32 = 0x3;
1389}
1390
1391/// `CLK_SEL_3BIT` value group
1392#[allow(non_upper_case_globals)]
1393pub mod clk_sel_3bit {
1394   /// No Clock Source (Stopped).
1395   pub const VAL_0x00: u32 = 0x0;
1396   /// Running, No Prescaling.
1397   pub const VAL_0x01: u32 = 0x1;
1398   /// Running, CLK/8.
1399   pub const VAL_0x02: u32 = 0x2;
1400   /// Running, CLK/32.
1401   pub const VAL_0x03: u32 = 0x3;
1402   /// Running, CLK/64.
1403   pub const VAL_0x04: u32 = 0x4;
1404   /// Running, CLK/128.
1405   pub const VAL_0x05: u32 = 0x5;
1406   /// Running, CLK/256.
1407   pub const VAL_0x06: u32 = 0x6;
1408   /// Running, CLK/1024.
1409   pub const VAL_0x07: u32 = 0x7;
1410}
1411
1412/// `CLK_SEL_3BIT_EXT` value group
1413#[allow(non_upper_case_globals)]
1414pub mod clk_sel_3bit_ext {
1415   /// No Clock Source (Stopped).
1416   pub const VAL_0x00: u32 = 0x0;
1417   /// Running, No Prescaling.
1418   pub const VAL_0x01: u32 = 0x1;
1419   /// Running, CLK/8.
1420   pub const VAL_0x02: u32 = 0x2;
1421   /// Running, CLK/64.
1422   pub const VAL_0x03: u32 = 0x3;
1423   /// Running, CLK/256.
1424   pub const VAL_0x04: u32 = 0x4;
1425   /// Running, CLK/1024.
1426   pub const VAL_0x05: u32 = 0x5;
1427   /// Running, ExtClk Tx Falling Edge.
1428   pub const VAL_0x06: u32 = 0x6;
1429   /// Running, ExtClk Tx Rising Edge.
1430   pub const VAL_0x07: u32 = 0x7;
1431}
1432
1433/// `COMM_SCK_RATE_3BIT` value group
1434#[allow(non_upper_case_globals)]
1435pub mod comm_sck_rate_3bit {
1436   /// fosc/4.
1437   pub const VAL_0x00: u32 = 0x0;
1438   /// fosc/16.
1439   pub const VAL_0x01: u32 = 0x1;
1440   /// fosc/64.
1441   pub const VAL_0x02: u32 = 0x2;
1442   /// fosc/128.
1443   pub const VAL_0x03: u32 = 0x3;
1444   /// fosc/2.
1445   pub const VAL_0x04: u32 = 0x4;
1446   /// fosc/8.
1447   pub const VAL_0x05: u32 = 0x5;
1448   /// fosc/32.
1449   pub const VAL_0x06: u32 = 0x6;
1450   /// fosc/64.
1451   pub const VAL_0x07: u32 = 0x7;
1452}
1453
1454/// `COMM_USI_OP` value group
1455#[allow(non_upper_case_globals)]
1456pub mod comm_usi_op {
1457   /// Normal Operation.
1458   pub const VAL_0x00: u32 = 0x0;
1459   /// Three-Wire Mode.
1460   pub const VAL_0x01: u32 = 0x1;
1461   /// Two-Wire Mode.
1462   pub const VAL_0x02: u32 = 0x2;
1463   /// Two-Wire Mode Held Low.
1464   pub const VAL_0x03: u32 = 0x3;
1465}
1466
1467/// `CPU_CLK_COMMAND_LIST_4_BITS` value group
1468#[allow(non_upper_case_globals)]
1469pub mod cpu_clk_command_list_4_bits {
1470   /// No Command.
1471   pub const VAL_0x00: u32 = 0x0;
1472   /// Disable Clock Source.
1473   pub const VAL_0x01: u32 = 0x1;
1474   /// Enable Clock Source.
1475   pub const VAL_0x02: u32 = 0x2;
1476   /// Request for Clock Availability.
1477   pub const VAL_0x03: u32 = 0x3;
1478   /// Clock Source Switch.
1479   pub const VAL_0x04: u32 = 0x4;
1480   /// Recovery System Clock Source Code.
1481   pub const VAL_0x05: u32 = 0x5;
1482   /// Enable Watchdog in Automatic Reload Mode.
1483   pub const VAL_0x06: u32 = 0x6;
1484   /// CKOUT Command.
1485   pub const VAL_0x07: u32 = 0x7;
1486   /// From 0x08 up to 0x0F: No command.
1487   pub const VAL_0x08: u32 = 0x8;
1488}
1489
1490/// `CPU_CLK_PRESCALE_4_BITS_SMALL` value group
1491#[allow(non_upper_case_globals)]
1492pub mod cpu_clk_prescale_4_bits_small {
1493   /// 1.
1494   pub const VAL_0x00: u32 = 0x0;
1495   /// 2.
1496   pub const VAL_0x01: u32 = 0x1;
1497   /// 4.
1498   pub const VAL_0x02: u32 = 0x2;
1499   /// 8.
1500   pub const VAL_0x03: u32 = 0x3;
1501   /// 16.
1502   pub const VAL_0x04: u32 = 0x4;
1503   /// 32.
1504   pub const VAL_0x05: u32 = 0x5;
1505   /// 64.
1506   pub const VAL_0x06: u32 = 0x6;
1507   /// 128.
1508   pub const VAL_0x07: u32 = 0x7;
1509   /// 256.
1510   pub const VAL_0x08: u32 = 0x8;
1511}
1512
1513/// `CPU_SLEEP_MODE2` value group
1514#[allow(non_upper_case_globals)]
1515pub mod cpu_sleep_mode2 {
1516   /// Idle.
1517   pub const IDLE: u32 = 0x0;
1518   /// ADC Noise Reduction (If Available).
1519   pub const ADC: u32 = 0x1;
1520   /// Power Down.
1521   pub const PDOWN: u32 = 0x2;
1522   /// Power Save.
1523   pub const PSAVE: u32 = 0x3;
1524}
1525
1526/// `EEP_MODE` value group
1527#[allow(non_upper_case_globals)]
1528pub mod eep_mode {
1529   /// Erase and Write in one operation.
1530   pub const VAL_0x00: u32 = 0x0;
1531   /// Erase Only.
1532   pub const VAL_0x01: u32 = 0x1;
1533   /// Write Only.
1534   pub const VAL_0x02: u32 = 0x2;
1535}
1536
1537/// `ENUM_BODLEVEL` value group
1538#[allow(non_upper_case_globals)]
1539pub mod enum_bodlevel {
1540   /// Brown-out detection at VCC=4.3 V.
1541   pub const VAL_0x04: u32 = 0x4;
1542   /// Brown-out detection at VCC=2.7 V.
1543   pub const VAL_0x05: u32 = 0x5;
1544   /// Brown-out detection at VCC=1.8 V.
1545   pub const VAL_0x06: u32 = 0x6;
1546   /// Brown-out detection at VCC=2.3 V.
1547   pub const VAL_0x03: u32 = 0x3;
1548   /// Brown-out detection at VCC=2.2 V.
1549   pub const VAL_0x02: u32 = 0x2;
1550   /// Brown-out detection at VCC=1.9 V.
1551   pub const VAL_0x01: u32 = 0x1;
1552   /// Brown-out detection at VCC=2.0 V.
1553   pub const VAL_0x00: u32 = 0x0;
1554   /// Brown-out detection disabled.
1555   pub const VAL_0x07: u32 = 0x7;
1556}
1557
1558/// `ENUM_LB` value group
1559#[allow(non_upper_case_globals)]
1560pub mod enum_lb {
1561   /// Further programming and verification disabled.
1562   pub const VAL_0x00: u32 = 0x0;
1563   /// Further programming disabled.
1564   pub const VAL_0x02: u32 = 0x2;
1565   /// No memory lock features enabled.
1566   pub const VAL_0x03: u32 = 0x3;
1567}
1568
1569/// `ENUM_SUT_CKSEL` value group
1570#[allow(non_upper_case_globals)]
1571pub mod enum_sut_cksel {
1572   /// Ext. Clock; Start-up time PWRDWN/RESET: 6 CK/14 CK + 0 ms.
1573   pub const VAL_0x00: u32 = 0x0;
1574   /// Ext. Clock; Start-up time PWRDWN/RESET: 6 CK/14 CK + 4 ms.
1575   pub const VAL_0x10: u32 = 0x10;
1576   /// Ext. Clock; Start-up time PWRDWN/RESET: 6 CK/14 CK + 64 ms.
1577   pub const VAL_0x20: u32 = 0x20;
1578   /// Int. RC Osc. 8 MHz; Start-up time PWRDWN/RESET: 6 CK/14 CK + 0 ms.
1579   pub const VAL_0x02: u32 = 0x2;
1580   /// Int. RC Osc. 8 MHz; Start-up time PWRDWN/RESET: 6 CK/14 CK + 4 ms.
1581   pub const VAL_0x12: u32 = 0x12;
1582   /// Int. RC Osc. 8 MHz; Start-up time PWRDWN/RESET: 6 CK/14 CK + 64 ms.
1583   pub const VAL_0x22: u32 = 0x22;
1584   /// WD. Osc. 128 kHz; Start-up time PWRDWN/RESET: 6 CK/14 CK + 0 ms.
1585   pub const VAL_0x03: u32 = 0x3;
1586   /// WD. Osc. 128 kHz; Start-up time PWRDWN/RESET: 6 CK/14 CK + 4 ms.
1587   pub const VAL_0x13: u32 = 0x13;
1588   /// WD. Osc. 128 kHz; Start-up time PWRDWN/RESET: 6 CK/14 CK + 64 ms.
1589   pub const VAL_0x23: u32 = 0x23;
1590   /// Ext. Low-Freq. Crystal; Start-up time PWRDWN/RESET: 1024 CK 4 ms.
1591   pub const VAL_0x04: u32 = 0x4;
1592   /// Ext. Low-Freq. Crystal; Start-up time PWRDWN/RESET: 1024 CK + 64 ms.
1593   pub const VAL_0x14: u32 = 0x14;
1594   /// Ext. Low-Freq. Crystal; Start-up time PWRDWN/RESET: 32768 CK + 64 ms.
1595   pub const VAL_0x24: u32 = 0x24;
1596   /// Ext. Ceramic Res. 0.4-0.9 MHz; Start-up time PWRDWN/RESET: 258 CK/14 CK + 4.1 ms.
1597   pub const VAL_0x08: u32 = 0x8;
1598   /// Ext. Ceramic Res. 0.4-0.9 MHz; Start-up time PWRDWN/RESET: 258 CK/14 CK + 65 ms.
1599   pub const VAL_0x18: u32 = 0x18;
1600   /// Ext. Ceramic Res. 0.4-0.9 MHz; Start-up time PWRDWN/RESET: 1024 CK /14 CK + 0 ms.
1601   pub const VAL_0x28: u32 = 0x28;
1602   /// Ext. Ceramic Res. 0.4-0.9 MHz; Start-up time PWRDWN/RESET: 1024 CK /14 CK + 4.1 ms.
1603   pub const VAL_0x38: u32 = 0x38;
1604   /// Ext. Ceramic Res. 0.4-0.9 MHz; Start-up time PWRDWN/RESET: 1024 CK /14 CK + 65 ms.
1605   pub const VAL_0x09: u32 = 0x9;
1606   /// Ext. Crystal Osc. 0.4-0.9 MHz; Start-up time PWRDWN/RESET: 16384 CK/14 CK + 0 ms.
1607   pub const VAL_0x19: u32 = 0x19;
1608   /// Ext. Crystal Osc. 0.4-0.9 MHz; Start-up time PWRDWN/RESET: 16384 CK/14 CK + 4.1 ms.
1609   pub const VAL_0x29: u32 = 0x29;
1610   /// Ext. Crystal Osc. 0.4-0.9 MHz; Start-up time PWRDWN/RESET: 16384 CK/14 CK + 65 ms.
1611   pub const VAL_0x39: u32 = 0x39;
1612   /// Ext. Ceramic Res. 0.9-3.0 MHz; Start-up time PWRDWN/RESET: 258 CK/14 CK + 4.1 ms.
1613   pub const VAL_0x0A: u32 = 0xA;
1614   /// Ext. Ceramic Res. 0.9-3.0 MHz; Start-up time PWRDWN/RESET: 258 CK/14 CK + 65 ms.
1615   pub const VAL_0x1A: u32 = 0x1A;
1616   /// Ext. Ceramic Res. 0.9-3.0 MHz; Start-up time PWRDWN/RESET: 1024 CK /14 CK + 0 ms.
1617   pub const VAL_0x2A: u32 = 0x2A;
1618   /// Ext. Ceramic Res. 0.9-3.0 MHz; Start-up time PWRDWN/RESET: 1024 CK /14 CK + 4.1 ms.
1619   pub const VAL_0x3A: u32 = 0x3A;
1620   /// Ext. Ceramic Res. 0.9-3.0 MHz; Start-up time PWRDWN/RESET: 1024 CK /14 CK + 65 ms.
1621   pub const VAL_0x0B: u32 = 0xB;
1622   /// Ext. Crystal Osc. 0.9-3.0 MHz; Start-up time PWRDWN/RESET: 16384 CK/14 CK + 0 ms.
1623   pub const VAL_0x1B: u32 = 0x1B;
1624   /// Ext. Crystal Osc. 0.9-3.0 MHz; Start-up time PWRDWN/RESET: 16384 CK/14 CK + 4.1 ms.
1625   pub const VAL_0x2B: u32 = 0x2B;
1626   /// Ext. Crystal Osc. 0.9-3.0 MHz; Start-up time PWRDWN/RESET: 16384 CK/14 CK + 65 ms.
1627   pub const VAL_0x3B: u32 = 0x3B;
1628   /// Ext. Ceramic Res. 3.0-8.0 MHz; Start-up time PWRDWN/RESET: 258 CK/14 CK + 4.1 ms.
1629   pub const VAL_0x0C: u32 = 0xC;
1630   /// Ext. Ceramic Res. 3.0-8.0 MHz; Start-up time PWRDWN/RESET: 258 CK/14 CK + 65 ms.
1631   pub const VAL_0x1C: u32 = 0x1C;
1632   /// Ext. Ceramic Res. 3.0-8.0 MHz; Start-up time PWRDWN/RESET: 1024 CK /14 CK + 0 ms.
1633   pub const VAL_0x2C: u32 = 0x2C;
1634   /// Ext. Ceramic Res. 3.0-8.0 MHz; Start-up time PWRDWN/RESET: 1024 CK /14 CK + 4.1 ms.
1635   pub const VAL_0x3C: u32 = 0x3C;
1636   /// Ext. Ceramic Res. 3.0-8.0 MHz; Start-up time PWRDWN/RESET: 1024 CK /14 CK + 65 ms.
1637   pub const VAL_0x0D: u32 = 0xD;
1638   /// Ext. Crystal Osc. 3.0-8.0 MHz; Start-up time PWRDWN/RESET: 16384 CK/14 CK + 0 ms.
1639   pub const VAL_0x1D: u32 = 0x1D;
1640   /// Ext. Crystal Osc. 3.0-8.0 MHz; Start-up time PWRDWN/RESET: 16384 CK/14 CK + 4.1 ms.
1641   pub const VAL_0x2D: u32 = 0x2D;
1642   /// Ext. Crystal Osc. 3.0-8.0 MHz; Start-up time PWRDWN/RESET: 16384 CK/14 CK + 65 ms.
1643   pub const VAL_0x3D: u32 = 0x3D;
1644   /// Ext. Ceramic Res. 8.0-16.0 MHz; Start-up time PWRDWN/RESET: 258 CK/14 CK + 4.1 ms.
1645   pub const VAL_0x0E: u32 = 0xE;
1646   /// Ext. Ceramic Res. 8.0-16.0 MHz; Start-up time PWRDWN/RESET: 258 CK/14 CK + 65 ms.
1647   pub const VAL_0x1E: u32 = 0x1E;
1648   /// Ext. Ceramic Res. 8.0-16.0 MHz; Start-up time PWRDWN/RESET: 1024 CK /14 CK + 0 ms.
1649   pub const VAL_0x2E: u32 = 0x2E;
1650   /// Ext. Ceramic Res. 8.0-16.0 MHz; Start-up time PWRDWN/RESET: 1024 CK /14 CK + 4.1 ms.
1651   pub const VAL_0x3E: u32 = 0x3E;
1652   /// Ext. Ceramic Res. 8.0-16.0 MHz; Start-up time PWRDWN/RESET: 1024 CK /14 CK + 65 ms.
1653   pub const VAL_0x0F: u32 = 0xF;
1654   /// Ext. Crystal Osc. 8.0-16.0 MHz; Start-up time PWRDWN/RESET: 16384 CK/14 CK + 0 ms.
1655   pub const VAL_0x1F: u32 = 0x1F;
1656   /// Ext. Crystal Osc. 8.0-16.0 MHz; Start-up time PWRDWN/RESET: 16384 CK/14 CK + 4.1 ms.
1657   pub const VAL_0x2F: u32 = 0x2F;
1658   /// Ext. Crystal Osc. 8.0-16.0 MHz; Start-up time PWRDWN/RESET: 16384 CK/14 CK + 65 ms.
1659   pub const VAL_0x3F: u32 = 0x3F;
1660}
1661
1662/// `INTERRUPT_SENSE_CONTROL2` value group
1663#[allow(non_upper_case_globals)]
1664pub mod interrupt_sense_control2 {
1665   /// Low Level of INTX.
1666   pub const VAL_0x00: u32 = 0x0;
1667   /// Any Logical Change in INTX.
1668   pub const VAL_0x01: u32 = 0x1;
1669   /// Falling Edge of INTX.
1670   pub const VAL_0x02: u32 = 0x2;
1671   /// Rising Edge of INTX.
1672   pub const VAL_0x03: u32 = 0x3;
1673}
1674
1675/// Oscillator Calibration Values
1676#[allow(non_upper_case_globals)]
1677pub mod osccal_value_addresses {
1678   /// 8.0 MHz.
1679   pub const _8_0_MHz: u32 = 0x0;
1680}
1681
1682/// `WDOG_TIMER_PRESCALE_4BITS` value group
1683#[allow(non_upper_case_globals)]
1684pub mod wdog_timer_prescale_4bits {
1685   /// Oscillator Cycles 2K.
1686   pub const VAL_0x00: u32 = 0x0;
1687   /// Oscillator Cycles 4K.
1688   pub const VAL_0x01: u32 = 0x1;
1689   /// Oscillator Cycles 8K.
1690   pub const VAL_0x02: u32 = 0x2;
1691   /// Oscillator Cycles 16K.
1692   pub const VAL_0x03: u32 = 0x3;
1693   /// Oscillator Cycles 32K.
1694   pub const VAL_0x04: u32 = 0x4;
1695   /// Oscillator Cycles 64K.
1696   pub const VAL_0x05: u32 = 0x5;
1697   /// Oscillator Cycles 128K.
1698   pub const VAL_0x06: u32 = 0x6;
1699   /// Oscillator Cycles 256K.
1700   pub const VAL_0x07: u32 = 0x7;
1701   /// Oscillator Cycles 512K.
1702   pub const VAL_0x08: u32 = 0x8;
1703   /// Oscillator Cycles 1024K.
1704   pub const VAL_0x09: u32 = 0x9;
1705}
1706