avrd/gen/
atmega64.rs

1//! The AVR ATmega64 microcontroller
2//!
3//! # Variants
4//! |        | Pinout | Mcu age | Operating temperature | Operating voltage | Max speed |
5//! |--------|--------|---------|-----------------------|-------------------|-----------|
6//! | ATmega64L-8AU | TQFPQFN64 | TQFP64 | -40°C - 85°C | 2.7V - 5.5V | 8 MHz |
7//! | ATmega64L-8MU | TQFPQFN64 | QFN64 | -40°C - 85°C | 2.7V - 5.5V | 8 MHz |
8//! | ATmega64-16AU | TQFPQFN64 | TQFP64 | -40°C - 85°C | 4.5V - 5.5V | 16 MHz |
9//! | ATmega64-16MU | TQFPQFN64 | QFN64 | -40°C - 85°C | 4.5V - 5.5V | 16 MHz |
10//! | ATmega64L-8AN | TQFPQFN64 | TQFP64 | -40°C - 105°C | 2.7V - 5.5V | 8 MHz |
11//! | ATmega64L-8MN | TQFPQFN64 | QFN64 | -40°C - 105°C | 2.7V - 5.5V | 8 MHz |
12//! | ATmega64-16AN | TQFPQFN64 | TQFP64 | -40°C - 105°C | 4.5V - 5.5V | 16 MHz |
13//! | ATmega64-16MN | TQFPQFN64 | QFN64 | -40°C - 105°C | 4.5V - 5.5V | 16 MHz |
14//!
15
16#![allow(non_upper_case_globals)]
17
18/// `LOW` register
19///
20/// Bitfields:
21///
22/// | Name | Mask (binary) |
23/// | ---- | ------------- |
24/// | BODLEVEL | 10000000 |
25/// | BODEN | 1000000 |
26/// | SUT_CKSEL | 111111 |
27pub const LOW: *mut u8 = 0x0 as *mut u8;
28
29/// `LOCKBIT` register
30///
31/// Bitfields:
32///
33/// | Name | Mask (binary) |
34/// | ---- | ------------- |
35/// | BLB0 | 1100 |
36/// | BLB1 | 110000 |
37/// | LB | 11 |
38pub const LOCKBIT: *mut u8 = 0x0 as *mut u8;
39
40/// `HIGH` register
41///
42/// Bitfields:
43///
44/// | Name | Mask (binary) |
45/// | ---- | ------------- |
46/// | EESAVE | 1000 |
47/// | JTAGEN | 1000000 |
48/// | OCDEN | 10000000 |
49/// | BOOTSZ | 110 |
50/// | BOOTRST | 1 |
51/// | SPIEN | 100000 |
52/// | CKOPT | 10000 |
53pub const HIGH: *mut u8 = 0x1 as *mut u8;
54
55/// `EXTENDED` register
56///
57/// Bitfields:
58///
59/// | Name | Mask (binary) |
60/// | ---- | ------------- |
61/// | M103C | 10 |
62/// | WDTON | 1 |
63pub const EXTENDED: *mut u8 = 0x2 as *mut u8;
64
65/// Input Pins, Port F.
66pub const PINF: *mut u8 = 0x20 as *mut u8;
67
68/// Input Pins, Port E.
69pub const PINE: *mut u8 = 0x21 as *mut u8;
70
71/// Data Direction Register, Port E.
72pub const DDRE: *mut u8 = 0x22 as *mut u8;
73
74/// Data Register, Port E.
75pub const PORTE: *mut u8 = 0x23 as *mut u8;
76
77/// ADC Data Register  Bytes low byte.
78pub const ADCL: *mut u8 = 0x24 as *mut u8;
79
80/// ADC Data Register  Bytes.
81pub const ADC: *mut u16 = 0x24 as *mut u16;
82
83/// ADC Data Register  Bytes high byte.
84pub const ADCH: *mut u8 = 0x25 as *mut u8;
85
86/// The ADC Control and Status register A.
87///
88/// Bitfields:
89///
90/// | Name | Mask (binary) |
91/// | ---- | ------------- |
92/// | ADSC | 1000000 |
93/// | ADATE | 100000 |
94/// | ADPS | 111 |
95/// | ADIE | 1000 |
96/// | ADIF | 10000 |
97/// | ADEN | 10000000 |
98pub const ADCSRA: *mut u8 = 0x26 as *mut u8;
99
100/// The ADC multiplexer Selection Register.
101///
102/// Bitfields:
103///
104/// | Name | Mask (binary) |
105/// | ---- | ------------- |
106/// | ADLAR | 100000 |
107/// | MUX | 11111 |
108/// | REFS | 11000000 |
109pub const ADMUX: *mut u8 = 0x27 as *mut u8;
110
111/// Analog Comparator Control And Status Register.
112///
113/// Bitfields:
114///
115/// | Name | Mask (binary) |
116/// | ---- | ------------- |
117/// | ACBG | 1000000 |
118/// | ACD | 10000000 |
119/// | ACIS | 11 |
120/// | ACO | 100000 |
121/// | ACI | 10000 |
122/// | ACIE | 1000 |
123/// | ACIC | 100 |
124pub const ACSR: *mut u8 = 0x28 as *mut u8;
125
126/// USART Baud Rate Register Low Byte.
127pub const UBRR0L: *mut u8 = 0x29 as *mut u8;
128
129/// USART Control and Status Register B.
130///
131/// Bitfields:
132///
133/// | Name | Mask (binary) |
134/// | ---- | ------------- |
135/// | TXCIE0 | 1000000 |
136/// | RXCIE0 | 10000000 |
137/// | UDRIE0 | 100000 |
138/// | RXEN0 | 10000 |
139/// | RXB80 | 10 |
140/// | TXB80 | 1 |
141/// | TXEN0 | 1000 |
142/// | UCSZ02 | 100 |
143pub const UCSR0B: *mut u8 = 0x2A as *mut u8;
144
145/// USART Control and Status Register A.
146///
147/// Bitfields:
148///
149/// | Name | Mask (binary) |
150/// | ---- | ------------- |
151/// | RXC0 | 10000000 |
152/// | UDRE0 | 100000 |
153/// | TXC0 | 1000000 |
154/// | DOR0 | 1000 |
155/// | MPCM0 | 1 |
156/// | UPE0 | 100 |
157/// | FE0 | 10000 |
158/// | U2X0 | 10 |
159pub const UCSR0A: *mut u8 = 0x2B as *mut u8;
160
161/// USART I/O Data Register.
162pub const UDR0: *mut u8 = 0x2C as *mut u8;
163
164/// SPI Control Register.
165///
166/// Bitfields:
167///
168/// | Name | Mask (binary) |
169/// | ---- | ------------- |
170/// | MSTR | 10000 |
171/// | CPHA | 100 |
172/// | SPIE | 10000000 |
173/// | CPOL | 1000 |
174/// | SPE | 1000000 |
175/// | SPR | 11 |
176/// | DORD | 100000 |
177pub const SPCR: *mut u8 = 0x2D as *mut u8;
178
179/// SPI Status Register.
180///
181/// Bitfields:
182///
183/// | Name | Mask (binary) |
184/// | ---- | ------------- |
185/// | SPI2X | 1 |
186/// | WCOL | 1000000 |
187/// | SPIF | 10000000 |
188pub const SPSR: *mut u8 = 0x2E as *mut u8;
189
190/// SPI Data Register.
191pub const SPDR: *mut u8 = 0x2F as *mut u8;
192
193/// Port D Input Pins.
194pub const PIND: *mut u8 = 0x30 as *mut u8;
195
196/// Port D Data Direction Register.
197pub const DDRD: *mut u8 = 0x31 as *mut u8;
198
199/// Port D Data Register.
200pub const PORTD: *mut u8 = 0x32 as *mut u8;
201
202/// Port C Input Pins.
203pub const PINC: *mut u8 = 0x33 as *mut u8;
204
205/// Port C Data Direction Register.
206pub const DDRC: *mut u8 = 0x34 as *mut u8;
207
208/// Port C Data Register.
209pub const PORTC: *mut u8 = 0x35 as *mut u8;
210
211/// Port B Input Pins.
212pub const PINB: *mut u8 = 0x36 as *mut u8;
213
214/// Port B Data Direction Register.
215pub const DDRB: *mut u8 = 0x37 as *mut u8;
216
217/// Port B Data Register.
218pub const PORTB: *mut u8 = 0x38 as *mut u8;
219
220/// Port A Input Pins.
221pub const PINA: *mut u8 = 0x39 as *mut u8;
222
223/// Port A Data Direction Register.
224pub const DDRA: *mut u8 = 0x3A as *mut u8;
225
226/// Port A Data Register.
227pub const PORTA: *mut u8 = 0x3B as *mut u8;
228
229/// EEPROM Control Register.
230///
231/// Bitfields:
232///
233/// | Name | Mask (binary) |
234/// | ---- | ------------- |
235/// | EEWE | 10 |
236/// | EERE | 1 |
237/// | EEMWE | 100 |
238/// | EERIE | 1000 |
239pub const EECR: *mut u8 = 0x3C as *mut u8;
240
241/// EEPROM Data Register.
242pub const EEDR: *mut u8 = 0x3D as *mut u8;
243
244/// EEPROM Read/Write Access  Bytes low byte.
245pub const EEARL: *mut u8 = 0x3E as *mut u8;
246
247/// EEPROM Read/Write Access  Bytes.
248pub const EEAR: *mut u16 = 0x3E as *mut u16;
249
250/// EEPROM Read/Write Access  Bytes high byte.
251pub const EEARH: *mut u8 = 0x3F as *mut u8;
252
253/// Special Function IO Register.
254///
255/// Bitfields:
256///
257/// | Name | Mask (binary) |
258/// | ---- | ------------- |
259/// | PSR321 | 1 |
260/// | TSM | 10000000 |
261pub const SFIOR: *mut u8 = 0x40 as *mut u8;
262
263/// Watchdog Timer Control Register.
264///
265/// Bitfields:
266///
267/// | Name | Mask (binary) |
268/// | ---- | ------------- |
269/// | WDP | 111 |
270/// | WDCE | 10000 |
271/// | WDE | 1000 |
272pub const WDTCR: *mut u8 = 0x41 as *mut u8;
273
274/// On-Chip Debug Related Register in I/O Memory.
275pub const OCDR: *mut u8 = 0x42 as *mut u8;
276
277/// Output Compare Register.
278pub const OCR2: *mut u8 = 0x43 as *mut u8;
279
280/// Timer/Counter Register.
281pub const TCNT2: *mut u8 = 0x44 as *mut u8;
282
283/// Timer/Counter Control Register.
284///
285/// Bitfields:
286///
287/// | Name | Mask (binary) |
288/// | ---- | ------------- |
289/// | COM2 | 110000 |
290/// | WGM21 | 1000 |
291/// | WGM20 | 1000000 |
292/// | CS2 | 111 |
293/// | FOC2 | 10000000 |
294pub const TCCR2: *mut u8 = 0x45 as *mut u8;
295
296/// Timer/Counter1 Input Capture Register  Bytes low byte.
297pub const ICR1L: *mut u8 = 0x46 as *mut u8;
298
299/// Timer/Counter1 Input Capture Register  Bytes.
300pub const ICR1: *mut u16 = 0x46 as *mut u16;
301
302/// Timer/Counter1 Input Capture Register  Bytes high byte.
303pub const ICR1H: *mut u8 = 0x47 as *mut u8;
304
305/// Timer/Counter1 Output Compare Register  Bytes.
306pub const OCR1B: *mut u16 = 0x48 as *mut u16;
307
308/// Timer/Counter1 Output Compare Register  Bytes low byte.
309pub const OCR1BL: *mut u8 = 0x48 as *mut u8;
310
311/// Timer/Counter1 Output Compare Register  Bytes high byte.
312pub const OCR1BH: *mut u8 = 0x49 as *mut u8;
313
314/// Timer/Counter1 Output Compare Register  Bytes.
315pub const OCR1A: *mut u16 = 0x4A as *mut u16;
316
317/// Timer/Counter1 Output Compare Register  Bytes low byte.
318pub const OCR1AL: *mut u8 = 0x4A as *mut u8;
319
320/// Timer/Counter1 Output Compare Register  Bytes high byte.
321pub const OCR1AH: *mut u8 = 0x4B as *mut u8;
322
323/// Timer/Counter1  Bytes.
324pub const TCNT1: *mut u16 = 0x4C as *mut u16;
325
326/// Timer/Counter1  Bytes low byte.
327pub const TCNT1L: *mut u8 = 0x4C as *mut u8;
328
329/// Timer/Counter1  Bytes high byte.
330pub const TCNT1H: *mut u8 = 0x4D as *mut u8;
331
332/// Timer/Counter1 Control Register B.
333///
334/// Bitfields:
335///
336/// | Name | Mask (binary) |
337/// | ---- | ------------- |
338/// | ICES1 | 1000000 |
339/// | CS1 | 111 |
340/// | ICNC1 | 10000000 |
341pub const TCCR1B: *mut u8 = 0x4E as *mut u8;
342
343/// Timer/Counter1 Control Register A.
344///
345/// Bitfields:
346///
347/// | Name | Mask (binary) |
348/// | ---- | ------------- |
349/// | COM1B | 110000 |
350/// | COM1C | 1100 |
351/// | COM1A | 11000000 |
352pub const TCCR1A: *mut u8 = 0x4F as *mut u8;
353
354/// Asynchronus Status Register.
355///
356/// Bitfields:
357///
358/// | Name | Mask (binary) |
359/// | ---- | ------------- |
360/// | OCR0UB | 10 |
361/// | AS0 | 1000 |
362/// | TCR0UB | 1 |
363/// | TCN0UB | 100 |
364pub const ASSR: *mut u8 = 0x50 as *mut u8;
365
366/// Output Compare Register.
367pub const OCR0: *mut u8 = 0x51 as *mut u8;
368
369/// Timer/Counter Register.
370pub const TCNT0: *mut u8 = 0x52 as *mut u8;
371
372/// Timer/Counter Control Register.
373///
374/// Bitfields:
375///
376/// | Name | Mask (binary) |
377/// | ---- | ------------- |
378/// | COM0 | 110000 |
379/// | WGM00 | 1000000 |
380/// | FOC0 | 10000000 |
381/// | WGM01 | 1000 |
382/// | CS0 | 111 |
383pub const TCCR0: *mut u8 = 0x53 as *mut u8;
384
385/// MCU Control And Status Register.
386///
387/// Bitfields:
388///
389/// | Name | Mask (binary) |
390/// | ---- | ------------- |
391/// | JTRF | 10000 |
392/// | JTD | 10000000 |
393pub const MCUCSR: *mut u8 = 0x54 as *mut u8;
394
395/// MCU Control Register.
396///
397/// Bitfields:
398///
399/// | Name | Mask (binary) |
400/// | ---- | ------------- |
401/// | SRE | 10000000 |
402/// | IVCE | 1 |
403/// | SRW10 | 1000000 |
404/// | SM | 11000 |
405/// | IVSEL | 10 |
406/// | SM2 | 100 |
407/// | SE | 100000 |
408pub const MCUCR: *mut u8 = 0x55 as *mut u8;
409
410/// Timer/Counter Interrupt Flag Register.
411///
412/// Bitfields:
413///
414/// | Name | Mask (binary) |
415/// | ---- | ------------- |
416/// | OCF2 | 10000000 |
417/// | TOV2 | 1000000 |
418pub const TIFR: *mut u8 = 0x56 as *mut u8;
419
420/// `TIMSK` register
421///
422/// Bitfields:
423///
424/// | Name | Mask (binary) |
425/// | ---- | ------------- |
426/// | TOIE2 | 1000000 |
427/// | OCIE2 | 10000000 |
428pub const TIMSK: *mut u8 = 0x57 as *mut u8;
429
430/// External Interrupt Flag Register.
431pub const EIFR: *mut u8 = 0x58 as *mut u8;
432
433/// External Interrupt Mask Register.
434pub const EIMSK: *mut u8 = 0x59 as *mut u8;
435
436/// External Interrupt Control Register B.
437///
438/// Bitfields:
439///
440/// | Name | Mask (binary) |
441/// | ---- | ------------- |
442/// | ISC7 | 11000000 |
443/// | ISC4 | 11 |
444/// | ISC5 | 1100 |
445/// | ISC6 | 110000 |
446pub const EICRB: *mut u8 = 0x5A as *mut u8;
447
448/// XTAL Divide Control Register.
449///
450/// Bitfields:
451///
452/// | Name | Mask (binary) |
453/// | ---- | ------------- |
454/// | XDIVEN | 10000000 |
455pub const XDIV: *mut u8 = 0x5C as *mut u8;
456
457/// Stack Pointer.
458pub const SP: *mut u16 = 0x5D as *mut u16;
459
460/// Stack Pointer  low byte.
461pub const SPL: *mut u8 = 0x5D as *mut u8;
462
463/// Stack Pointer  high byte.
464pub const SPH: *mut u8 = 0x5E as *mut u8;
465
466/// Status Register.
467///
468/// Bitfields:
469///
470/// | Name | Mask (binary) |
471/// | ---- | ------------- |
472/// | V | 1000 |
473/// | S | 10000 |
474/// | I | 10000000 |
475/// | N | 100 |
476/// | C | 1 |
477/// | Z | 10 |
478/// | T | 1000000 |
479/// | H | 100000 |
480pub const SREG: *mut u8 = 0x5F as *mut u8;
481
482/// Data Direction Register, Port F.
483pub const DDRF: *mut u8 = 0x61 as *mut u8;
484
485/// Data Register, Port F.
486pub const PORTF: *mut u8 = 0x62 as *mut u8;
487
488/// Input Pins, Port G.
489pub const PING: *mut u8 = 0x63 as *mut u8;
490
491/// Data Direction Register, Port G.
492pub const DDRG: *mut u8 = 0x64 as *mut u8;
493
494/// Data Register, Port G.
495pub const PORTG: *mut u8 = 0x65 as *mut u8;
496
497/// Store Program Memory Control Register.
498///
499/// Bitfields:
500///
501/// | Name | Mask (binary) |
502/// | ---- | ------------- |
503/// | RWWSRE | 10000 |
504/// | SPMIE | 10000000 |
505/// | BLBSET | 1000 |
506/// | RWWSB | 1000000 |
507/// | SPMEN | 1 |
508/// | PGWRT | 100 |
509/// | PGERS | 10 |
510pub const SPMCSR: *mut u8 = 0x68 as *mut u8;
511
512/// External Interrupt Control Register A.
513///
514/// Bitfields:
515///
516/// | Name | Mask (binary) |
517/// | ---- | ------------- |
518/// | ISC1 | 1100 |
519/// | ISC0 | 11 |
520/// | ISC3 | 11000000 |
521/// | ISC2 | 110000 |
522pub const EICRA: *mut u8 = 0x6A as *mut u8;
523
524/// External Memory Control Register B.
525///
526/// Bitfields:
527///
528/// | Name | Mask (binary) |
529/// | ---- | ------------- |
530/// | XMBK | 10000000 |
531/// | XMM | 111 |
532pub const XMCRB: *mut u8 = 0x6C as *mut u8;
533
534/// External Memory Control Register A.
535///
536/// Bitfields:
537///
538/// | Name | Mask (binary) |
539/// | ---- | ------------- |
540/// | SRW11 | 10 |
541/// | SRL | 1110000 |
542/// | SRW0 | 1100 |
543pub const XMCRA: *mut u8 = 0x6D as *mut u8;
544
545/// Oscillator Calibration Value.
546pub const OSCCAL: *mut u8 = 0x6F as *mut u8;
547
548/// TWI Bit Rate register.
549pub const TWBR: *mut u8 = 0x70 as *mut u8;
550
551/// TWI Status Register.
552///
553/// Bitfields:
554///
555/// | Name | Mask (binary) |
556/// | ---- | ------------- |
557/// | TWS | 11111000 |
558/// | TWPS | 11 |
559pub const TWSR: *mut u8 = 0x71 as *mut u8;
560
561/// TWI (Slave) Address register.
562///
563/// Bitfields:
564///
565/// | Name | Mask (binary) |
566/// | ---- | ------------- |
567/// | TWGCE | 1 |
568/// | TWA | 11111110 |
569pub const TWAR: *mut u8 = 0x72 as *mut u8;
570
571/// TWI Data register.
572pub const TWDR: *mut u8 = 0x73 as *mut u8;
573
574/// TWI Control Register.
575///
576/// Bitfields:
577///
578/// | Name | Mask (binary) |
579/// | ---- | ------------- |
580/// | TWWC | 1000 |
581/// | TWIE | 1 |
582/// | TWINT | 10000000 |
583/// | TWSTO | 10000 |
584/// | TWEN | 100 |
585/// | TWSTA | 100000 |
586/// | TWEA | 1000000 |
587pub const TWCR: *mut u8 = 0x74 as *mut u8;
588
589/// Timer/Counter1 Output Compare Register  Bytes low byte.
590pub const OCR1CL: *mut u8 = 0x78 as *mut u8;
591
592/// Timer/Counter1 Output Compare Register  Bytes.
593pub const OCR1C: *mut u16 = 0x78 as *mut u16;
594
595/// Timer/Counter1 Output Compare Register  Bytes high byte.
596pub const OCR1CH: *mut u8 = 0x79 as *mut u8;
597
598/// Timer/Counter1 Control Register C.
599///
600/// Bitfields:
601///
602/// | Name | Mask (binary) |
603/// | ---- | ------------- |
604/// | FOC1B | 1000000 |
605/// | FOC1A | 10000000 |
606/// | FOC1C | 100000 |
607pub const TCCR1C: *mut u8 = 0x7A as *mut u8;
608
609/// Extended Timer/Counter Interrupt Flag register.
610///
611/// Bitfields:
612///
613/// | Name | Mask (binary) |
614/// | ---- | ------------- |
615/// | ICF3 | 100000 |
616/// | OCF3B | 1000 |
617/// | OCF3A | 10000 |
618/// | TOV3 | 100 |
619/// | OCF3C | 10 |
620pub const ETIFR: *mut u8 = 0x7C as *mut u8;
621
622/// Extended Timer/Counter Interrupt Mask Register.
623///
624/// Bitfields:
625///
626/// | Name | Mask (binary) |
627/// | ---- | ------------- |
628/// | OCIE3C | 10 |
629/// | OCIE3B | 1000 |
630/// | OCIE3A | 10000 |
631/// | TICIE3 | 100000 |
632/// | TOIE3 | 100 |
633pub const ETIMSK: *mut u8 = 0x7D as *mut u8;
634
635/// Timer/Counter3 Input Capture Register  Bytes low byte.
636pub const ICR3L: *mut u8 = 0x80 as *mut u8;
637
638/// Timer/Counter3 Input Capture Register  Bytes.
639pub const ICR3: *mut u16 = 0x80 as *mut u16;
640
641/// Timer/Counter3 Input Capture Register  Bytes high byte.
642pub const ICR3H: *mut u8 = 0x81 as *mut u8;
643
644/// Timer/Counter3 Output compare Register C  Bytes.
645pub const OCR3C: *mut u16 = 0x82 as *mut u16;
646
647/// Timer/Counter3 Output compare Register C  Bytes low byte.
648pub const OCR3CL: *mut u8 = 0x82 as *mut u8;
649
650/// Timer/Counter3 Output compare Register C  Bytes high byte.
651pub const OCR3CH: *mut u8 = 0x83 as *mut u8;
652
653/// Timer/Counter3 Output Compare Register B  Bytes.
654pub const OCR3B: *mut u16 = 0x84 as *mut u16;
655
656/// Timer/Counter3 Output Compare Register B  Bytes low byte.
657pub const OCR3BL: *mut u8 = 0x84 as *mut u8;
658
659/// Timer/Counter3 Output Compare Register B  Bytes high byte.
660pub const OCR3BH: *mut u8 = 0x85 as *mut u8;
661
662/// Timer/Counter3 Output Compare Register A  Bytes low byte.
663pub const OCR3AL: *mut u8 = 0x86 as *mut u8;
664
665/// Timer/Counter3 Output Compare Register A  Bytes.
666pub const OCR3A: *mut u16 = 0x86 as *mut u16;
667
668/// Timer/Counter3 Output Compare Register A  Bytes high byte.
669pub const OCR3AH: *mut u8 = 0x87 as *mut u8;
670
671/// Timer/Counter3  Bytes low byte.
672pub const TCNT3L: *mut u8 = 0x88 as *mut u8;
673
674/// Timer/Counter3  Bytes.
675pub const TCNT3: *mut u16 = 0x88 as *mut u16;
676
677/// Timer/Counter3  Bytes high byte.
678pub const TCNT3H: *mut u8 = 0x89 as *mut u8;
679
680/// Timer/Counter3 Control Register B.
681///
682/// Bitfields:
683///
684/// | Name | Mask (binary) |
685/// | ---- | ------------- |
686/// | ICES3 | 1000000 |
687/// | ICNC3 | 10000000 |
688/// | CS3 | 111 |
689pub const TCCR3B: *mut u8 = 0x8A as *mut u8;
690
691/// Timer/Counter3 Control Register A.
692///
693/// Bitfields:
694///
695/// | Name | Mask (binary) |
696/// | ---- | ------------- |
697/// | COM3C | 1100 |
698/// | COM3B | 110000 |
699/// | COM3A | 11000000 |
700pub const TCCR3A: *mut u8 = 0x8B as *mut u8;
701
702/// Timer/Counter3 Control Register C.
703///
704/// Bitfields:
705///
706/// | Name | Mask (binary) |
707/// | ---- | ------------- |
708/// | FOC3A | 10000000 |
709/// | FOC3B | 1000000 |
710/// | FOC3C | 100000 |
711pub const TCCR3C: *mut u8 = 0x8C as *mut u8;
712
713/// The ADC Control and Status register B.
714///
715/// Bitfields:
716///
717/// | Name | Mask (binary) |
718/// | ---- | ------------- |
719/// | ADTS | 111 |
720pub const ADCSRB: *mut u8 = 0x8E as *mut u8;
721
722/// USART Baud Rate Register Hight Byte.
723pub const UBRR0H: *mut u8 = 0x90 as *mut u8;
724
725/// USART Control and Status Register C.
726///
727/// Bitfields:
728///
729/// | Name | Mask (binary) |
730/// | ---- | ------------- |
731/// | UPM0 | 110000 |
732/// | UMSEL0 | 1000000 |
733/// | USBS0 | 1000 |
734/// | UCSZ0 | 110 |
735/// | UCPOL0 | 1 |
736pub const UCSR0C: *mut u8 = 0x95 as *mut u8;
737
738/// USART Baud Rate Register Hight Byte.
739pub const UBRR1H: *mut u8 = 0x98 as *mut u8;
740
741/// USART Baud Rate Register Low Byte.
742pub const UBRR1L: *mut u8 = 0x99 as *mut u8;
743
744/// USART Control and Status Register B.
745///
746/// Bitfields:
747///
748/// | Name | Mask (binary) |
749/// | ---- | ------------- |
750/// | RXCIE1 | 10000000 |
751/// | UCSZ12 | 100 |
752/// | TXCIE1 | 1000000 |
753/// | RXB81 | 10 |
754/// | TXB81 | 1 |
755/// | RXEN1 | 10000 |
756/// | UDRIE1 | 100000 |
757/// | TXEN1 | 1000 |
758pub const UCSR1B: *mut u8 = 0x9A as *mut u8;
759
760/// USART Control and Status Register A.
761///
762/// Bitfields:
763///
764/// | Name | Mask (binary) |
765/// | ---- | ------------- |
766/// | U2X1 | 10 |
767/// | DOR1 | 1000 |
768/// | UDRE1 | 100000 |
769/// | FE1 | 10000 |
770/// | MPCM1 | 1 |
771/// | RXC1 | 10000000 |
772/// | TXC1 | 1000000 |
773/// | UPE1 | 100 |
774pub const UCSR1A: *mut u8 = 0x9B as *mut u8;
775
776/// USART I/O Data Register.
777pub const UDR1: *mut u8 = 0x9C as *mut u8;
778
779/// USART Control and Status Register C.
780///
781/// Bitfields:
782///
783/// | Name | Mask (binary) |
784/// | ---- | ------------- |
785/// | UCSZ1 | 110 |
786/// | UCPOL1 | 1 |
787/// | UPM1 | 110000 |
788/// | UMSEL1 | 1000000 |
789/// | USBS1 | 1000 |
790pub const UCSR1C: *mut u8 = 0x9D as *mut u8;
791
792/// Bitfield on register `ACSR`
793pub const ACBG: *mut u8 = 0x40 as *mut u8;
794
795/// Bitfield on register `ACSR`
796pub const ACD: *mut u8 = 0x80 as *mut u8;
797
798/// Bitfield on register `ACSR`
799pub const ACIS: *mut u8 = 0x3 as *mut u8;
800
801/// Bitfield on register `ACSR`
802pub const ACO: *mut u8 = 0x20 as *mut u8;
803
804/// Bitfield on register `ACSR`
805pub const ACI: *mut u8 = 0x10 as *mut u8;
806
807/// Bitfield on register `ACSR`
808pub const ACIE: *mut u8 = 0x8 as *mut u8;
809
810/// Bitfield on register `ACSR`
811pub const ACIC: *mut u8 = 0x4 as *mut u8;
812
813/// Bitfield on register `ADCSRA`
814pub const ADSC: *mut u8 = 0x40 as *mut u8;
815
816/// Bitfield on register `ADCSRA`
817pub const ADATE: *mut u8 = 0x20 as *mut u8;
818
819/// Bitfield on register `ADCSRA`
820pub const ADPS: *mut u8 = 0x7 as *mut u8;
821
822/// Bitfield on register `ADCSRA`
823pub const ADIE: *mut u8 = 0x8 as *mut u8;
824
825/// Bitfield on register `ADCSRA`
826pub const ADIF: *mut u8 = 0x10 as *mut u8;
827
828/// Bitfield on register `ADCSRA`
829pub const ADEN: *mut u8 = 0x80 as *mut u8;
830
831/// Bitfield on register `ADCSRB`
832pub const ADTS: *mut u8 = 0x7 as *mut u8;
833
834/// Bitfield on register `ADMUX`
835pub const ADLAR: *mut u8 = 0x20 as *mut u8;
836
837/// Bitfield on register `ADMUX`
838pub const MUX: *mut u8 = 0x1F as *mut u8;
839
840/// Bitfield on register `ADMUX`
841pub const REFS: *mut u8 = 0xC0 as *mut u8;
842
843/// Bitfield on register `ASSR`
844pub const OCR0UB: *mut u8 = 0x2 as *mut u8;
845
846/// Bitfield on register `ASSR`
847pub const AS0: *mut u8 = 0x8 as *mut u8;
848
849/// Bitfield on register `ASSR`
850pub const TCR0UB: *mut u8 = 0x1 as *mut u8;
851
852/// Bitfield on register `ASSR`
853pub const TCN0UB: *mut u8 = 0x4 as *mut u8;
854
855/// Bitfield on register `EECR`
856pub const EEWE: *mut u8 = 0x2 as *mut u8;
857
858/// Bitfield on register `EECR`
859pub const EERE: *mut u8 = 0x1 as *mut u8;
860
861/// Bitfield on register `EECR`
862pub const EEMWE: *mut u8 = 0x4 as *mut u8;
863
864/// Bitfield on register `EECR`
865pub const EERIE: *mut u8 = 0x8 as *mut u8;
866
867/// Bitfield on register `EICRA`
868pub const ISC1: *mut u8 = 0xC as *mut u8;
869
870/// Bitfield on register `EICRA`
871pub const ISC0: *mut u8 = 0x3 as *mut u8;
872
873/// Bitfield on register `EICRA`
874pub const ISC3: *mut u8 = 0xC0 as *mut u8;
875
876/// Bitfield on register `EICRA`
877pub const ISC2: *mut u8 = 0x30 as *mut u8;
878
879/// Bitfield on register `EICRB`
880pub const ISC7: *mut u8 = 0xC0 as *mut u8;
881
882/// Bitfield on register `EICRB`
883pub const ISC4: *mut u8 = 0x3 as *mut u8;
884
885/// Bitfield on register `EICRB`
886pub const ISC5: *mut u8 = 0xC as *mut u8;
887
888/// Bitfield on register `EICRB`
889pub const ISC6: *mut u8 = 0x30 as *mut u8;
890
891/// Bitfield on register `ETIFR`
892pub const ICF3: *mut u8 = 0x20 as *mut u8;
893
894/// Bitfield on register `ETIFR`
895pub const OCF3B: *mut u8 = 0x8 as *mut u8;
896
897/// Bitfield on register `ETIFR`
898pub const OCF3A: *mut u8 = 0x10 as *mut u8;
899
900/// Bitfield on register `ETIFR`
901pub const TOV3: *mut u8 = 0x4 as *mut u8;
902
903/// Bitfield on register `ETIFR`
904pub const OCF3C: *mut u8 = 0x2 as *mut u8;
905
906/// Bitfield on register `ETIMSK`
907pub const OCIE3C: *mut u8 = 0x2 as *mut u8;
908
909/// Bitfield on register `ETIMSK`
910pub const OCIE3B: *mut u8 = 0x8 as *mut u8;
911
912/// Bitfield on register `ETIMSK`
913pub const OCIE3A: *mut u8 = 0x10 as *mut u8;
914
915/// Bitfield on register `ETIMSK`
916pub const TICIE3: *mut u8 = 0x20 as *mut u8;
917
918/// Bitfield on register `ETIMSK`
919pub const TOIE3: *mut u8 = 0x4 as *mut u8;
920
921/// Bitfield on register `EXTENDED`
922pub const M103C: *mut u8 = 0x2 as *mut u8;
923
924/// Bitfield on register `EXTENDED`
925pub const WDTON: *mut u8 = 0x1 as *mut u8;
926
927/// Bitfield on register `HIGH`
928pub const EESAVE: *mut u8 = 0x8 as *mut u8;
929
930/// Bitfield on register `HIGH`
931pub const JTAGEN: *mut u8 = 0x40 as *mut u8;
932
933/// Bitfield on register `HIGH`
934pub const OCDEN: *mut u8 = 0x80 as *mut u8;
935
936/// Bitfield on register `HIGH`
937pub const BOOTSZ: *mut u8 = 0x6 as *mut u8;
938
939/// Bitfield on register `HIGH`
940pub const BOOTRST: *mut u8 = 0x1 as *mut u8;
941
942/// Bitfield on register `HIGH`
943pub const SPIEN: *mut u8 = 0x20 as *mut u8;
944
945/// Bitfield on register `HIGH`
946pub const CKOPT: *mut u8 = 0x10 as *mut u8;
947
948/// Bitfield on register `LOCKBIT`
949pub const BLB0: *mut u8 = 0xC as *mut u8;
950
951/// Bitfield on register `LOCKBIT`
952pub const BLB1: *mut u8 = 0x30 as *mut u8;
953
954/// Bitfield on register `LOCKBIT`
955pub const LB: *mut u8 = 0x3 as *mut u8;
956
957/// Bitfield on register `LOW`
958pub const BODLEVEL: *mut u8 = 0x80 as *mut u8;
959
960/// Bitfield on register `LOW`
961pub const BODEN: *mut u8 = 0x40 as *mut u8;
962
963/// Bitfield on register `LOW`
964pub const SUT_CKSEL: *mut u8 = 0x3F as *mut u8;
965
966/// Bitfield on register `MCUCR`
967pub const SRE: *mut u8 = 0x80 as *mut u8;
968
969/// Bitfield on register `MCUCR`
970pub const IVCE: *mut u8 = 0x1 as *mut u8;
971
972/// Bitfield on register `MCUCR`
973pub const SRW10: *mut u8 = 0x40 as *mut u8;
974
975/// Bitfield on register `MCUCR`
976pub const SM: *mut u8 = 0x18 as *mut u8;
977
978/// Bitfield on register `MCUCR`
979pub const IVSEL: *mut u8 = 0x2 as *mut u8;
980
981/// Bitfield on register `MCUCR`
982pub const SM2: *mut u8 = 0x4 as *mut u8;
983
984/// Bitfield on register `MCUCR`
985pub const SE: *mut u8 = 0x20 as *mut u8;
986
987/// Bitfield on register `MCUCSR`
988pub const JTRF: *mut u8 = 0x10 as *mut u8;
989
990/// Bitfield on register `MCUCSR`
991pub const JTD: *mut u8 = 0x80 as *mut u8;
992
993/// Bitfield on register `SFIOR`
994pub const PSR321: *mut u8 = 0x1 as *mut u8;
995
996/// Bitfield on register `SFIOR`
997pub const TSM: *mut u8 = 0x80 as *mut u8;
998
999/// Bitfield on register `SPCR`
1000pub const MSTR: *mut u8 = 0x10 as *mut u8;
1001
1002/// Bitfield on register `SPCR`
1003pub const CPHA: *mut u8 = 0x4 as *mut u8;
1004
1005/// Bitfield on register `SPCR`
1006pub const SPIE: *mut u8 = 0x80 as *mut u8;
1007
1008/// Bitfield on register `SPCR`
1009pub const CPOL: *mut u8 = 0x8 as *mut u8;
1010
1011/// Bitfield on register `SPCR`
1012pub const SPE: *mut u8 = 0x40 as *mut u8;
1013
1014/// Bitfield on register `SPCR`
1015pub const SPR: *mut u8 = 0x3 as *mut u8;
1016
1017/// Bitfield on register `SPCR`
1018pub const DORD: *mut u8 = 0x20 as *mut u8;
1019
1020/// Bitfield on register `SPMCSR`
1021pub const RWWSRE: *mut u8 = 0x10 as *mut u8;
1022
1023/// Bitfield on register `SPMCSR`
1024pub const SPMIE: *mut u8 = 0x80 as *mut u8;
1025
1026/// Bitfield on register `SPMCSR`
1027pub const BLBSET: *mut u8 = 0x8 as *mut u8;
1028
1029/// Bitfield on register `SPMCSR`
1030pub const RWWSB: *mut u8 = 0x40 as *mut u8;
1031
1032/// Bitfield on register `SPMCSR`
1033pub const SPMEN: *mut u8 = 0x1 as *mut u8;
1034
1035/// Bitfield on register `SPMCSR`
1036pub const PGWRT: *mut u8 = 0x4 as *mut u8;
1037
1038/// Bitfield on register `SPMCSR`
1039pub const PGERS: *mut u8 = 0x2 as *mut u8;
1040
1041/// Bitfield on register `SPSR`
1042pub const SPI2X: *mut u8 = 0x1 as *mut u8;
1043
1044/// Bitfield on register `SPSR`
1045pub const WCOL: *mut u8 = 0x40 as *mut u8;
1046
1047/// Bitfield on register `SPSR`
1048pub const SPIF: *mut u8 = 0x80 as *mut u8;
1049
1050/// Bitfield on register `SREG`
1051pub const V: *mut u8 = 0x8 as *mut u8;
1052
1053/// Bitfield on register `SREG`
1054pub const S: *mut u8 = 0x10 as *mut u8;
1055
1056/// Bitfield on register `SREG`
1057pub const I: *mut u8 = 0x80 as *mut u8;
1058
1059/// Bitfield on register `SREG`
1060pub const N: *mut u8 = 0x4 as *mut u8;
1061
1062/// Bitfield on register `SREG`
1063pub const C: *mut u8 = 0x1 as *mut u8;
1064
1065/// Bitfield on register `SREG`
1066pub const Z: *mut u8 = 0x2 as *mut u8;
1067
1068/// Bitfield on register `SREG`
1069pub const T: *mut u8 = 0x40 as *mut u8;
1070
1071/// Bitfield on register `SREG`
1072pub const H: *mut u8 = 0x20 as *mut u8;
1073
1074/// Bitfield on register `TCCR0`
1075pub const COM0: *mut u8 = 0x30 as *mut u8;
1076
1077/// Bitfield on register `TCCR0`
1078pub const WGM00: *mut u8 = 0x40 as *mut u8;
1079
1080/// Bitfield on register `TCCR0`
1081pub const FOC0: *mut u8 = 0x80 as *mut u8;
1082
1083/// Bitfield on register `TCCR0`
1084pub const WGM01: *mut u8 = 0x8 as *mut u8;
1085
1086/// Bitfield on register `TCCR0`
1087pub const CS0: *mut u8 = 0x7 as *mut u8;
1088
1089/// Bitfield on register `TCCR1A`
1090pub const COM1B: *mut u8 = 0x30 as *mut u8;
1091
1092/// Bitfield on register `TCCR1A`
1093pub const COM1C: *mut u8 = 0xC as *mut u8;
1094
1095/// Bitfield on register `TCCR1A`
1096pub const COM1A: *mut u8 = 0xC0 as *mut u8;
1097
1098/// Bitfield on register `TCCR1B`
1099pub const ICES1: *mut u8 = 0x40 as *mut u8;
1100
1101/// Bitfield on register `TCCR1B`
1102pub const CS1: *mut u8 = 0x7 as *mut u8;
1103
1104/// Bitfield on register `TCCR1B`
1105pub const ICNC1: *mut u8 = 0x80 as *mut u8;
1106
1107/// Bitfield on register `TCCR1C`
1108pub const FOC1B: *mut u8 = 0x40 as *mut u8;
1109
1110/// Bitfield on register `TCCR1C`
1111pub const FOC1A: *mut u8 = 0x80 as *mut u8;
1112
1113/// Bitfield on register `TCCR1C`
1114pub const FOC1C: *mut u8 = 0x20 as *mut u8;
1115
1116/// Bitfield on register `TCCR2`
1117pub const COM2: *mut u8 = 0x30 as *mut u8;
1118
1119/// Bitfield on register `TCCR2`
1120pub const WGM21: *mut u8 = 0x8 as *mut u8;
1121
1122/// Bitfield on register `TCCR2`
1123pub const WGM20: *mut u8 = 0x40 as *mut u8;
1124
1125/// Bitfield on register `TCCR2`
1126pub const CS2: *mut u8 = 0x7 as *mut u8;
1127
1128/// Bitfield on register `TCCR2`
1129pub const FOC2: *mut u8 = 0x80 as *mut u8;
1130
1131/// Bitfield on register `TCCR3A`
1132pub const COM3C: *mut u8 = 0xC as *mut u8;
1133
1134/// Bitfield on register `TCCR3A`
1135pub const COM3B: *mut u8 = 0x30 as *mut u8;
1136
1137/// Bitfield on register `TCCR3A`
1138pub const COM3A: *mut u8 = 0xC0 as *mut u8;
1139
1140/// Bitfield on register `TCCR3B`
1141pub const ICES3: *mut u8 = 0x40 as *mut u8;
1142
1143/// Bitfield on register `TCCR3B`
1144pub const ICNC3: *mut u8 = 0x80 as *mut u8;
1145
1146/// Bitfield on register `TCCR3B`
1147pub const CS3: *mut u8 = 0x7 as *mut u8;
1148
1149/// Bitfield on register `TCCR3C`
1150pub const FOC3A: *mut u8 = 0x80 as *mut u8;
1151
1152/// Bitfield on register `TCCR3C`
1153pub const FOC3B: *mut u8 = 0x40 as *mut u8;
1154
1155/// Bitfield on register `TCCR3C`
1156pub const FOC3C: *mut u8 = 0x20 as *mut u8;
1157
1158/// Bitfield on register `TIFR`
1159pub const OCF2: *mut u8 = 0x80 as *mut u8;
1160
1161/// Bitfield on register `TIFR`
1162pub const TOV2: *mut u8 = 0x40 as *mut u8;
1163
1164/// Bitfield on register `TIMSK`
1165pub const TOIE2: *mut u8 = 0x40 as *mut u8;
1166
1167/// Bitfield on register `TIMSK`
1168pub const OCIE2: *mut u8 = 0x80 as *mut u8;
1169
1170/// Bitfield on register `TWAR`
1171pub const TWGCE: *mut u8 = 0x1 as *mut u8;
1172
1173/// Bitfield on register `TWAR`
1174pub const TWA: *mut u8 = 0xFE as *mut u8;
1175
1176/// Bitfield on register `TWCR`
1177pub const TWWC: *mut u8 = 0x8 as *mut u8;
1178
1179/// Bitfield on register `TWCR`
1180pub const TWIE: *mut u8 = 0x1 as *mut u8;
1181
1182/// Bitfield on register `TWCR`
1183pub const TWINT: *mut u8 = 0x80 as *mut u8;
1184
1185/// Bitfield on register `TWCR`
1186pub const TWSTO: *mut u8 = 0x10 as *mut u8;
1187
1188/// Bitfield on register `TWCR`
1189pub const TWEN: *mut u8 = 0x4 as *mut u8;
1190
1191/// Bitfield on register `TWCR`
1192pub const TWSTA: *mut u8 = 0x20 as *mut u8;
1193
1194/// Bitfield on register `TWCR`
1195pub const TWEA: *mut u8 = 0x40 as *mut u8;
1196
1197/// Bitfield on register `TWSR`
1198pub const TWS: *mut u8 = 0xF8 as *mut u8;
1199
1200/// Bitfield on register `TWSR`
1201pub const TWPS: *mut u8 = 0x3 as *mut u8;
1202
1203/// Bitfield on register `UCSR0A`
1204pub const RXC0: *mut u8 = 0x80 as *mut u8;
1205
1206/// Bitfield on register `UCSR0A`
1207pub const UDRE0: *mut u8 = 0x20 as *mut u8;
1208
1209/// Bitfield on register `UCSR0A`
1210pub const TXC0: *mut u8 = 0x40 as *mut u8;
1211
1212/// Bitfield on register `UCSR0A`
1213pub const DOR0: *mut u8 = 0x8 as *mut u8;
1214
1215/// Bitfield on register `UCSR0A`
1216pub const MPCM0: *mut u8 = 0x1 as *mut u8;
1217
1218/// Bitfield on register `UCSR0A`
1219pub const UPE0: *mut u8 = 0x4 as *mut u8;
1220
1221/// Bitfield on register `UCSR0A`
1222pub const FE0: *mut u8 = 0x10 as *mut u8;
1223
1224/// Bitfield on register `UCSR0A`
1225pub const U2X0: *mut u8 = 0x2 as *mut u8;
1226
1227/// Bitfield on register `UCSR0B`
1228pub const TXCIE0: *mut u8 = 0x40 as *mut u8;
1229
1230/// Bitfield on register `UCSR0B`
1231pub const RXCIE0: *mut u8 = 0x80 as *mut u8;
1232
1233/// Bitfield on register `UCSR0B`
1234pub const UDRIE0: *mut u8 = 0x20 as *mut u8;
1235
1236/// Bitfield on register `UCSR0B`
1237pub const RXEN0: *mut u8 = 0x10 as *mut u8;
1238
1239/// Bitfield on register `UCSR0B`
1240pub const RXB80: *mut u8 = 0x2 as *mut u8;
1241
1242/// Bitfield on register `UCSR0B`
1243pub const TXB80: *mut u8 = 0x1 as *mut u8;
1244
1245/// Bitfield on register `UCSR0B`
1246pub const TXEN0: *mut u8 = 0x8 as *mut u8;
1247
1248/// Bitfield on register `UCSR0B`
1249pub const UCSZ02: *mut u8 = 0x4 as *mut u8;
1250
1251/// Bitfield on register `UCSR0C`
1252pub const UPM0: *mut u8 = 0x30 as *mut u8;
1253
1254/// Bitfield on register `UCSR0C`
1255pub const UMSEL0: *mut u8 = 0x40 as *mut u8;
1256
1257/// Bitfield on register `UCSR0C`
1258pub const USBS0: *mut u8 = 0x8 as *mut u8;
1259
1260/// Bitfield on register `UCSR0C`
1261pub const UCSZ0: *mut u8 = 0x6 as *mut u8;
1262
1263/// Bitfield on register `UCSR0C`
1264pub const UCPOL0: *mut u8 = 0x1 as *mut u8;
1265
1266/// Bitfield on register `UCSR1A`
1267pub const U2X1: *mut u8 = 0x2 as *mut u8;
1268
1269/// Bitfield on register `UCSR1A`
1270pub const DOR1: *mut u8 = 0x8 as *mut u8;
1271
1272/// Bitfield on register `UCSR1A`
1273pub const UDRE1: *mut u8 = 0x20 as *mut u8;
1274
1275/// Bitfield on register `UCSR1A`
1276pub const FE1: *mut u8 = 0x10 as *mut u8;
1277
1278/// Bitfield on register `UCSR1A`
1279pub const MPCM1: *mut u8 = 0x1 as *mut u8;
1280
1281/// Bitfield on register `UCSR1A`
1282pub const RXC1: *mut u8 = 0x80 as *mut u8;
1283
1284/// Bitfield on register `UCSR1A`
1285pub const TXC1: *mut u8 = 0x40 as *mut u8;
1286
1287/// Bitfield on register `UCSR1A`
1288pub const UPE1: *mut u8 = 0x4 as *mut u8;
1289
1290/// Bitfield on register `UCSR1B`
1291pub const RXCIE1: *mut u8 = 0x80 as *mut u8;
1292
1293/// Bitfield on register `UCSR1B`
1294pub const UCSZ12: *mut u8 = 0x4 as *mut u8;
1295
1296/// Bitfield on register `UCSR1B`
1297pub const TXCIE1: *mut u8 = 0x40 as *mut u8;
1298
1299/// Bitfield on register `UCSR1B`
1300pub const RXB81: *mut u8 = 0x2 as *mut u8;
1301
1302/// Bitfield on register `UCSR1B`
1303pub const TXB81: *mut u8 = 0x1 as *mut u8;
1304
1305/// Bitfield on register `UCSR1B`
1306pub const RXEN1: *mut u8 = 0x10 as *mut u8;
1307
1308/// Bitfield on register `UCSR1B`
1309pub const UDRIE1: *mut u8 = 0x20 as *mut u8;
1310
1311/// Bitfield on register `UCSR1B`
1312pub const TXEN1: *mut u8 = 0x8 as *mut u8;
1313
1314/// Bitfield on register `UCSR1C`
1315pub const UCSZ1: *mut u8 = 0x6 as *mut u8;
1316
1317/// Bitfield on register `UCSR1C`
1318pub const UCPOL1: *mut u8 = 0x1 as *mut u8;
1319
1320/// Bitfield on register `UCSR1C`
1321pub const UPM1: *mut u8 = 0x30 as *mut u8;
1322
1323/// Bitfield on register `UCSR1C`
1324pub const UMSEL1: *mut u8 = 0x40 as *mut u8;
1325
1326/// Bitfield on register `UCSR1C`
1327pub const USBS1: *mut u8 = 0x8 as *mut u8;
1328
1329/// Bitfield on register `WDTCR`
1330pub const WDP: *mut u8 = 0x7 as *mut u8;
1331
1332/// Bitfield on register `WDTCR`
1333pub const WDCE: *mut u8 = 0x10 as *mut u8;
1334
1335/// Bitfield on register `WDTCR`
1336pub const WDE: *mut u8 = 0x8 as *mut u8;
1337
1338/// Bitfield on register `XDIV`
1339pub const XDIVEN: *mut u8 = 0x80 as *mut u8;
1340
1341/// Bitfield on register `XMCRA`
1342pub const SRW11: *mut u8 = 0x2 as *mut u8;
1343
1344/// Bitfield on register `XMCRA`
1345pub const SRL: *mut u8 = 0x70 as *mut u8;
1346
1347/// Bitfield on register `XMCRA`
1348pub const SRW0: *mut u8 = 0xC as *mut u8;
1349
1350/// Bitfield on register `XMCRB`
1351pub const XMBK: *mut u8 = 0x80 as *mut u8;
1352
1353/// Bitfield on register `XMCRB`
1354pub const XMM: *mut u8 = 0x7 as *mut u8;
1355
1356/// `ANALOG_ADC_AUTO_TRIGGER` value group
1357#[allow(non_upper_case_globals)]
1358pub mod analog_adc_auto_trigger {
1359   /// Free Running mode.
1360   pub const VAL_0x00: u32 = 0x0;
1361   /// Analog Comparator.
1362   pub const VAL_0x01: u32 = 0x1;
1363   /// External Interrupt Request 0.
1364   pub const VAL_0x02: u32 = 0x2;
1365   /// Timer/Counter0 Compare Match A.
1366   pub const VAL_0x03: u32 = 0x3;
1367   /// Timer/Counter0 Overflow.
1368   pub const VAL_0x04: u32 = 0x4;
1369   /// Timer/Counter1 Compare Match B.
1370   pub const VAL_0x05: u32 = 0x5;
1371   /// Timer/Counter1 Overflow.
1372   pub const VAL_0x06: u32 = 0x6;
1373   /// Timer/Counter1 Capture Event.
1374   pub const VAL_0x07: u32 = 0x7;
1375}
1376
1377/// `ANALOG_ADC_PRESCALER` value group
1378#[allow(non_upper_case_globals)]
1379pub mod analog_adc_prescaler {
1380   /// 2.
1381   pub const VAL_0x00: u32 = 0x0;
1382   /// 2.
1383   pub const VAL_0x01: u32 = 0x1;
1384   /// 4.
1385   pub const VAL_0x02: u32 = 0x2;
1386   /// 8.
1387   pub const VAL_0x03: u32 = 0x3;
1388   /// 16.
1389   pub const VAL_0x04: u32 = 0x4;
1390   /// 32.
1391   pub const VAL_0x05: u32 = 0x5;
1392   /// 64.
1393   pub const VAL_0x06: u32 = 0x6;
1394   /// 128.
1395   pub const VAL_0x07: u32 = 0x7;
1396}
1397
1398/// `ANALOG_ADC_V_REF2` value group
1399#[allow(non_upper_case_globals)]
1400pub mod analog_adc_v_ref2 {
1401   /// AREF, Internal Vref turned off.
1402   pub const VAL_0x00: u32 = 0x0;
1403   /// AVCC with external capacitor at AREF pin.
1404   pub const VAL_0x01: u32 = 0x1;
1405   /// Reserved.
1406   pub const VAL_0x02: u32 = 0x2;
1407   /// Internal 2.56V Voltage Reference with external capacitor at AREF pin.
1408   pub const VAL_0x03: u32 = 0x3;
1409}
1410
1411/// `ANALOG_COMP_INTERRUPT` value group
1412#[allow(non_upper_case_globals)]
1413pub mod analog_comp_interrupt {
1414   /// Interrupt on Toggle.
1415   pub const VAL_0x00: u32 = 0x0;
1416   /// Reserved.
1417   pub const VAL_0x01: u32 = 0x1;
1418   /// Interrupt on Falling Edge.
1419   pub const VAL_0x02: u32 = 0x2;
1420   /// Interrupt on Rising Edge.
1421   pub const VAL_0x03: u32 = 0x3;
1422}
1423
1424/// `CLK_SEL_3BIT` value group
1425#[allow(non_upper_case_globals)]
1426pub mod clk_sel_3bit {
1427   /// No Clock Source (Stopped).
1428   pub const VAL_0x00: u32 = 0x0;
1429   /// Running, No Prescaling.
1430   pub const VAL_0x01: u32 = 0x1;
1431   /// Running, CLK/8.
1432   pub const VAL_0x02: u32 = 0x2;
1433   /// Running, CLK/32.
1434   pub const VAL_0x03: u32 = 0x3;
1435   /// Running, CLK/64.
1436   pub const VAL_0x04: u32 = 0x4;
1437   /// Running, CLK/128.
1438   pub const VAL_0x05: u32 = 0x5;
1439   /// Running, CLK/256.
1440   pub const VAL_0x06: u32 = 0x6;
1441   /// Running, CLK/1024.
1442   pub const VAL_0x07: u32 = 0x7;
1443}
1444
1445/// `CLK_SEL_3BIT_EXT` value group
1446#[allow(non_upper_case_globals)]
1447pub mod clk_sel_3bit_ext {
1448   /// No Clock Source (Stopped).
1449   pub const VAL_0x00: u32 = 0x0;
1450   /// Running, No Prescaling.
1451   pub const VAL_0x01: u32 = 0x1;
1452   /// Running, CLK/8.
1453   pub const VAL_0x02: u32 = 0x2;
1454   /// Running, CLK/64.
1455   pub const VAL_0x03: u32 = 0x3;
1456   /// Running, CLK/256.
1457   pub const VAL_0x04: u32 = 0x4;
1458   /// Running, CLK/1024.
1459   pub const VAL_0x05: u32 = 0x5;
1460   /// Running, ExtClk Tx Falling Edge.
1461   pub const VAL_0x06: u32 = 0x6;
1462   /// Running, ExtClk Tx Rising Edge.
1463   pub const VAL_0x07: u32 = 0x7;
1464}
1465
1466/// `COMM_SCK_RATE_3BIT` value group
1467#[allow(non_upper_case_globals)]
1468pub mod comm_sck_rate_3bit {
1469   /// fosc/4.
1470   pub const VAL_0x00: u32 = 0x0;
1471   /// fosc/16.
1472   pub const VAL_0x01: u32 = 0x1;
1473   /// fosc/64.
1474   pub const VAL_0x02: u32 = 0x2;
1475   /// fosc/128.
1476   pub const VAL_0x03: u32 = 0x3;
1477   /// fosc/2.
1478   pub const VAL_0x04: u32 = 0x4;
1479   /// fosc/8.
1480   pub const VAL_0x05: u32 = 0x5;
1481   /// fosc/32.
1482   pub const VAL_0x06: u32 = 0x6;
1483   /// fosc/64.
1484   pub const VAL_0x07: u32 = 0x7;
1485}
1486
1487/// `COMM_STOP_BIT_SEL` value group
1488#[allow(non_upper_case_globals)]
1489pub mod comm_stop_bit_sel {
1490   /// 1-bit.
1491   pub const VAL_0x00: u32 = 0x0;
1492   /// 2-bit.
1493   pub const VAL_0x01: u32 = 0x1;
1494}
1495
1496/// `COMM_TWI_PRESACLE` value group
1497#[allow(non_upper_case_globals)]
1498pub mod comm_twi_presacle {
1499   /// 1.
1500   pub const VAL_0x00: u32 = 0x0;
1501   /// 4.
1502   pub const VAL_0x01: u32 = 0x1;
1503   /// 16.
1504   pub const VAL_0x02: u32 = 0x2;
1505   /// 64.
1506   pub const VAL_0x03: u32 = 0x3;
1507}
1508
1509/// `COMM_UPM_PARITY_MODE` value group
1510#[allow(non_upper_case_globals)]
1511pub mod comm_upm_parity_mode {
1512   /// Disabled.
1513   pub const VAL_0x00: u32 = 0x0;
1514   /// Reserved.
1515   pub const VAL_0x01: u32 = 0x1;
1516   /// Enabled, Even Parity.
1517   pub const VAL_0x02: u32 = 0x2;
1518   /// Enabled, Odd Parity.
1519   pub const VAL_0x03: u32 = 0x3;
1520}
1521
1522/// `COMM_USART_MODE` value group
1523#[allow(non_upper_case_globals)]
1524pub mod comm_usart_mode {
1525   /// Asynchronous Operation.
1526   pub const VAL_0x00: u32 = 0x0;
1527   /// Synchronous Operation.
1528   pub const VAL_0x01: u32 = 0x1;
1529}
1530
1531/// `CPU_SECTOR_LIMITS` value group
1532#[allow(non_upper_case_globals)]
1533pub mod cpu_sector_limits {
1534   /// LS = N/A, US = 0x1100 - 0xFFFF.
1535   pub const VAL_0x00: u32 = 0x0;
1536   /// LS = 0x1100 - 0x1FFF, US = 0x2000 - 0xFFFF.
1537   pub const VAL_0x01: u32 = 0x1;
1538   /// LS = 0x1100 - 0x3FFF, US = 0x4000 - 0xFFFF.
1539   pub const VAL_0x02: u32 = 0x2;
1540   /// LS = 0x1100 - 0x5FFF, US = 0x6000 - 0xFFFF.
1541   pub const VAL_0x03: u32 = 0x3;
1542   /// LS = 0x1100 - 0x7FFF, US = 0x8000 - 0xFFFF.
1543   pub const VAL_0x04: u32 = 0x4;
1544   /// LS = 0x1100 - 0x9FFF, US = 0xA000 - 0xFFFF.
1545   pub const VAL_0x05: u32 = 0x5;
1546   /// LS = 0x1100 - 0xBFFF, US = 0xC000 - 0xFFFF.
1547   pub const VAL_0x06: u32 = 0x6;
1548   /// LS = 0x1100 - 0xDFFF, US = 0xE000 - 0xFFFF.
1549   pub const VAL_0x07: u32 = 0x7;
1550}
1551
1552/// `CPU_SLEEP_MODE_2BITS1` value group
1553#[allow(non_upper_case_globals)]
1554pub mod cpu_sleep_mode_2bits1 {
1555   /// Idle.
1556   pub const IDLE: u32 = 0x0;
1557   /// ADC Noise Reduction (If Available).
1558   pub const ADC: u32 = 0x2;
1559   /// Power Down.
1560   pub const PDOWN: u32 = 0x4;
1561   /// Power Save.
1562   pub const PSAVE: u32 = 0x6;
1563   /// Standby.
1564   pub const STDBY: u32 = 0x5;
1565   /// Extended Standby.
1566   pub const ESTDBY: u32 = 0x7;
1567}
1568
1569/// `CPU_WAIT_STATES` value group
1570#[allow(non_upper_case_globals)]
1571pub mod cpu_wait_states {
1572   /// No wait-states.
1573   pub const VAL_0x00: u32 = 0x0;
1574   /// Wait one cycle during read/write strobe.
1575   pub const VAL_0x01: u32 = 0x1;
1576   /// Wait two cycles during read/write strobe.
1577   pub const VAL_0x02: u32 = 0x2;
1578   /// Wait two cycles during read/write and wait one cycle before driving out new address.
1579   pub const VAL_0x03: u32 = 0x3;
1580}
1581
1582/// `ENUM_BLB` value group
1583#[allow(non_upper_case_globals)]
1584pub mod enum_blb {
1585   /// LPM and SPM prohibited in Application Section.
1586   pub const LPM_SPM_DISABLE: u32 = 0x0;
1587   /// LPM prohibited in Application Section.
1588   pub const LPM_DISABLE: u32 = 0x1;
1589   /// SPM prohibited in Application Section.
1590   pub const SPM_DISABLE: u32 = 0x2;
1591   /// No lock on SPM and LPM in Application Section.
1592   pub const NO_LOCK: u32 = 0x3;
1593}
1594
1595/// `ENUM_BLB2` value group
1596#[allow(non_upper_case_globals)]
1597pub mod enum_blb2 {
1598   /// LPM and SPM prohibited in Boot Section.
1599   pub const LPM_SPM_DISABLE: u32 = 0x0;
1600   /// LPM prohibited in Boot Section.
1601   pub const LPM_DISABLE: u32 = 0x1;
1602   /// SPM prohibited in Boot Section.
1603   pub const SPM_DISABLE: u32 = 0x2;
1604   /// No lock on SPM and LPM in Boot Section.
1605   pub const NO_LOCK: u32 = 0x3;
1606}
1607
1608/// `ENUM_BODLEVEL` value group
1609#[allow(non_upper_case_globals)]
1610pub mod enum_bodlevel {
1611   /// Brown-out detection at VCC=4.0 V.
1612   pub const _4V0: u32 = 0x0;
1613   /// Brown-out detection at VCC=2.7 V.
1614   pub const _2V7: u32 = 0x1;
1615}
1616
1617/// `ENUM_BOOTSZ` value group
1618#[allow(non_upper_case_globals)]
1619pub mod enum_bootsz {
1620   /// Boot Flash size=512 words Boot address=$7E00.
1621   pub const _512W_7E00: u32 = 0x3;
1622   /// Boot Flash size=1024 words Boot address=$7C00.
1623   pub const _1024W_7C00: u32 = 0x2;
1624   /// Boot Flash size=2048 words Boot address=$7800.
1625   pub const _2048W_7800: u32 = 0x1;
1626   /// Boot Flash size=4096 words Boot address=$7000.
1627   pub const _4096W_7000: u32 = 0x0;
1628}
1629
1630/// `ENUM_LB` value group
1631#[allow(non_upper_case_globals)]
1632pub mod enum_lb {
1633   /// Further programming and verification disabled.
1634   pub const PROG_VER_DISABLED: u32 = 0x0;
1635   /// Further programming disabled.
1636   pub const PROG_DISABLED: u32 = 0x2;
1637   /// No memory lock features enabled.
1638   pub const NO_LOCK: u32 = 0x3;
1639}
1640
1641/// `ENUM_SUT_CKSEL` value group
1642#[allow(non_upper_case_globals)]
1643pub mod enum_sut_cksel {
1644   /// Ext. Clock; Start-up time: 6 CK + 0 ms.
1645   pub const EXTCLK_6CK_0MS: u32 = 0x0;
1646   /// Ext. Clock; Start-up time: 6 CK + 4 ms.
1647   pub const EXTCLK_6CK_4MS: u32 = 0x10;
1648   /// Ext. Clock; Start-up time: 6 CK + 64 ms.
1649   pub const EXTCLK_6CK_64MS: u32 = 0x20;
1650   /// Int. RC Osc. 1 MHz; Start-up time: 6 CK + 0 ms.
1651   pub const INTRCOSC_1MHZ_6CK_0MS: u32 = 0x1;
1652   /// Int. RC Osc. 1 MHz; Start-up time: 6 CK + 4 ms.
1653   pub const INTRCOSC_1MHZ_6CK_4MS: u32 = 0x11;
1654   /// Int. RC Osc. 1 MHz; Start-up time: 6 CK + 64 ms.
1655   pub const INTRCOSC_1MHZ_6CK_64MS: u32 = 0x21;
1656   /// Int. RC Osc. 2 MHz; Start-up time: 6 CK + 0 ms.
1657   pub const INTRCOSC_2MHZ_6CK_0MS: u32 = 0x2;
1658   /// Int. RC Osc. 2 MHz; Start-up time: 6 CK + 4 ms.
1659   pub const INTRCOSC_2MHZ_6CK_4MS: u32 = 0x12;
1660   /// Int. RC Osc. 2 MHz; Start-up time: 6 CK + 64 ms.
1661   pub const INTRCOSC_2MHZ_6CK_64MS: u32 = 0x22;
1662   /// Int. RC Osc. 4 MHz; Start-up time: 6 CK + 0 ms.
1663   pub const INTRCOSC_4MHZ_6CK_0MS: u32 = 0x3;
1664   /// Int. RC Osc. 4 MHz; Start-up time: 6 CK + 4 ms.
1665   pub const INTRCOSC_4MHZ_6CK_4MS: u32 = 0x13;
1666   /// Int. RC Osc. 4 MHz; Start-up time: 6 CK + 64 ms.
1667   pub const INTRCOSC_4MHZ_6CK_64MS: u32 = 0x23;
1668   /// Int. RC Osc. 8 MHz; Start-up time: 6 CK + 0 ms.
1669   pub const INTRCOSC_8MHZ_6CK_0MS: u32 = 0x4;
1670   /// Int. RC Osc. 8 MHz; Start-up time: 6 CK + 4 ms.
1671   pub const INTRCOSC_8MHZ_6CK_4MS: u32 = 0x14;
1672   /// Int. RC Osc. 8 MHz; Start-up time: 6 CK + 64 ms.
1673   pub const INTRCOSC_8MHZ_6CK_64MS: u32 = 0x24;
1674   /// Ext. RC Osc.         -  0.9 MHz; Start-up time: 18 CK + 0 ms.
1675   pub const EXTRCOSC_XX_0MHZ9_18CK_0MS: u32 = 0x5;
1676   /// Ext. RC Osc.         -  0.9 MHz; Start-up time: 18 CK + 4 ms.
1677   pub const EXTRCOSC_XX_0MHZ9_18CK_4MS: u32 = 0x15;
1678   /// Ext. RC Osc.         -  0.9 MHz; Start-up time: 18 CK + 64 ms.
1679   pub const EXTRCOSC_XX_0MHZ9_18CK_64MS: u32 = 0x25;
1680   /// Ext. RC Osc.         -  0.9 MHz; Start-up time: 6 CK + 4 ms.
1681   pub const EXTRCOSC_XX_0MHZ9_6CK_4MS: u32 = 0x35;
1682   /// Ext. RC Osc. 0.9 MHz -  3.0 MHz; Start-up time: 18 CK + 0 ms.
1683   pub const EXTRCOSC_0MHZ9_3MHZ_18CK_0MS: u32 = 0x6;
1684   /// Ext. RC Osc. 0.9 MHz -  3.0 MHz; Start-up time: 18 CK + 4 ms.
1685   pub const EXTRCOSC_0MHZ9_3MHZ_18CK_4MS: u32 = 0x16;
1686   /// Ext. RC Osc. 0.9 MHz -  3.0 MHz; Start-up time: 18 CK + 64 ms.
1687   pub const EXTRCOSC_0MHZ9_3MHZ_18CK_64MS: u32 = 0x26;
1688   /// Ext. RC Osc. 0.9 MHz -  3.0 MHz; Start-up time: 6 CK + 4 ms.
1689   pub const EXTRCOSC_0MHZ9_3MHZ_6CK_4MS: u32 = 0x36;
1690   /// Ext. RC Osc. 3.0 MHz -  8.0 MHz; Start-up time: 18 CK + 0 ms.
1691   pub const EXTRCOSC_3MHZ_8MHZ_18CK_0MS: u32 = 0x7;
1692   /// Ext. RC Osc. 3.0 MHz -  8.0 MHz; Start-up time: 18 CK + 4 ms.
1693   pub const EXTRCOSC_3MHZ_8MHZ_18CK_4MS: u32 = 0x17;
1694   /// Ext. RC Osc. 3.0 MHz -  8.0 MHz; Start-up time: 18 CK + 64 ms.
1695   pub const EXTRCOSC_3MHZ_8MHZ_18CK_64MS: u32 = 0x27;
1696   /// Ext. RC Osc. 3.0 MHz -  8.0 MHz; Start-up time: 6 CK + 4 ms.
1697   pub const EXTRCOSC_3MHZ_8MHZ_6CK_4MS: u32 = 0x37;
1698   /// Ext. RC Osc. 8.0 MHz - 12.0 MHz; Start-up time: 18 CK + 0 ms.
1699   pub const EXTRCOSC_8MHZ_12MHZ_18CK_0MS: u32 = 0x8;
1700   /// Ext. RC Osc. 8.0 MHz - 12.0 MHz; Start-up time: 18 CK + 4 ms.
1701   pub const EXTRCOSC_8MHZ_12MHZ_18CK_4MS: u32 = 0x18;
1702   /// Ext. RC Osc. 8.0 MHz - 12.0 MHz; Start-up time: 18 CK + 64 ms.
1703   pub const EXTRCOSC_8MHZ_12MHZ_18CK_64MS: u32 = 0x28;
1704   /// Ext. RC Osc. 8.0 MHz - 12.0 MHz; Start-up time: 6 CK + 4 ms.
1705   pub const EXTRCOSC_8MHZ_12MHZ_6CK_4MS: u32 = 0x38;
1706   /// Ext. Low-Freq. Crystal; Start-up time: 1K CK + 4 ms.
1707   pub const EXTLOFXTAL_1KCK_4MS: u32 = 0x9;
1708   /// Ext. Low-Freq. Crystal; Start-up time: 1K CK + 64 ms.
1709   pub const EXTLOFXTAL_1KCK_64MS: u32 = 0x19;
1710   /// Ext. Low-Freq. Crystal; Start-up time: 32K CK + 64 ms.
1711   pub const EXTLOFXTAL_32KCK_64MS: u32 = 0x29;
1712   /// Ext. Crystal/Resonator Low Freq.; Start-up time: 258 CK + 4 ms.
1713   pub const EXTLOFXTALRES_258CK_4MS: u32 = 0xA;
1714   /// Ext. Crystal/Resonator Low Freq.; Start-up time: 258 CK + 64 ms.
1715   pub const EXTLOFXTALRES_258CK_64MS: u32 = 0x1A;
1716   /// Ext. Crystal/Resonator Low Freq.; Start-up time: 1K CK + 0 ms.
1717   pub const EXTLOFXTALRES_1KCK_0MS: u32 = 0x2A;
1718   /// Ext. Crystal/Resonator Low Freq.; Start-up time: 1K CK + 4 ms.
1719   pub const EXTLOFXTALRES_1KCK_4MS: u32 = 0x3A;
1720   /// Ext. Crystal/Resonator Low Freq.; Start-up time: 1K CK + 64 ms.
1721   pub const EXTLOFXTALRES_1KCK_64MS: u32 = 0xB;
1722   /// Ext. Crystal/Resonator Low Freq.; Start-up time: 16K CK + 0 ms.
1723   pub const EXTLOFXTALRES_16KCK_0MS: u32 = 0x1B;
1724   /// Ext. Crystal/Resonator Low Freq.; Start-up time: 16K CK + 4 ms.
1725   pub const EXTLOFXTALRES_16KCK_4MS: u32 = 0x2B;
1726   /// Ext. Crystal/Resonator Low Freq.; Start-up time: 16K CK + 64 ms.
1727   pub const EXTLOFXTALRES_16KCK_64MS: u32 = 0x3B;
1728   /// Ext. Crystal/Resonator Medium Freq.; Start-up time: 258 CK + 4 ms.
1729   pub const EXTMEDFXTALRES_258CK_4MS: u32 = 0xC;
1730   /// Ext. Crystal/Resonator Medium Freq.; Start-up time: 258 CK + 64 ms.
1731   pub const EXTMEDFXTALRES_258CK_64MS: u32 = 0x1C;
1732   /// Ext. Crystal/Resonator Medium Freq.; Start-up time: 1K CK + 0 ms.
1733   pub const EXTMEDFXTALRES_1KCK_0MS: u32 = 0x2C;
1734   /// Ext. Crystal/Resonator Medium Freq.; Start-up time: 1K CK + 4 ms.
1735   pub const EXTMEDFXTALRES_1KCK_4MS: u32 = 0x3C;
1736   /// Ext. Crystal/Resonator Medium Freq.; Start-up time: 1K CK + 64 ms.
1737   pub const EXTMEDFXTALRES_1KCK_64MS: u32 = 0xD;
1738   /// Ext. Crystal/Resonator Medium Freq.; Start-up time: 16K CK + 0 ms.
1739   pub const EXTMEDFXTALRES_16KCK_0MS: u32 = 0x1D;
1740   /// Ext. Crystal/Resonator Medium Freq.; Start-up time: 16K CK + 4 ms.
1741   pub const EXTMEDFXTALRES_16KCK_4MS: u32 = 0x2D;
1742   /// Ext. Crystal/Resonator Medium Freq.; Start-up time: 16K CK + 64 ms.
1743   pub const EXTMEDFXTALRES_16KCK_64MS: u32 = 0x3D;
1744   /// Ext. Crystal/Resonator High Freq.; Start-up time: 258 CK + 4 ms.
1745   pub const EXTHIFXTALRES_258CK_4MS: u32 = 0xE;
1746   /// Ext. Crystal/Resonator High Freq.; Start-up time: 258 CK + 64 ms.
1747   pub const EXTHIFXTALRES_258CK_64MS: u32 = 0x1E;
1748   /// Ext. Crystal/Resonator High Freq.; Start-up time: 1K CK + 0 ms.
1749   pub const EXTHIFXTALRES_1KCK_0MS: u32 = 0x2E;
1750   /// Ext. Crystal/Resonator High Freq.; Start-up time: 1K CK + 4 ms.
1751   pub const EXTHIFXTALRES_1KCK_4MS: u32 = 0x3E;
1752   /// Ext. Crystal/Resonator High Freq.; Start-up time: 1K CK + 64 ms.
1753   pub const EXTHIFXTALRES_1KCK_64MS: u32 = 0xF;
1754   /// Ext. Crystal/Resonator High Freq.; Start-up time: 16K CK + 0 ms.
1755   pub const EXTHIFXTALRES_16KCK_0MS: u32 = 0x1F;
1756   /// Ext. Crystal/Resonator High Freq.; Start-up time: 16K CK + 4 ms.
1757   pub const EXTHIFXTALRES_16KCK_4MS: u32 = 0x2F;
1758   /// Ext. Crystal/Resonator High Freq.; Start-up time: 16K CK + 64 ms.
1759   pub const EXTHIFXTALRES_16KCK_64MS: u32 = 0x3F;
1760}
1761
1762/// Interrupt Sense Control
1763#[allow(non_upper_case_globals)]
1764pub mod interrupt_sense_control {
1765   /// Low Level of INTX.
1766   pub const VAL_0x00: u32 = 0x0;
1767   /// Any Logical Change of INTX.
1768   pub const VAL_0x01: u32 = 0x1;
1769   /// Falling Edge of INTX.
1770   pub const VAL_0x02: u32 = 0x2;
1771   /// Rising Edge of INTX.
1772   pub const VAL_0x03: u32 = 0x3;
1773}
1774
1775/// Oscillator Calibration Values
1776#[allow(non_upper_case_globals)]
1777pub mod osccal_value_addresses {
1778   /// 1.0 MHz.
1779   pub const _1_0_MHz_: u32 = 0x0;
1780   /// 2.0 MHz.
1781   pub const _2_0_MHz_: u32 = 0x1;
1782   /// 4.0 MHz.
1783   pub const _4_0_MHz_: u32 = 0x2;
1784   /// 8.0 MHz.
1785   pub const _8_0_MHz: u32 = 0x3;
1786}
1787
1788/// `WAVEFORM_GEN_MODE` value group
1789#[allow(non_upper_case_globals)]
1790pub mod waveform_gen_mode {
1791   /// Normal.
1792   pub const VAL_0x00: u32 = 0x0;
1793   /// PWM, Phase Correct.
1794   pub const VAL_0x02: u32 = 0x2;
1795   /// CTC.
1796   pub const VAL_0x01: u32 = 0x1;
1797   /// Fast PWM.
1798   pub const VAL_0x03: u32 = 0x3;
1799}
1800
1801/// `WDOG_TIMER_PRESCALE_3BITS` value group
1802#[allow(non_upper_case_globals)]
1803pub mod wdog_timer_prescale_3bits {
1804   /// Oscillator Cycles 16K.
1805   pub const VAL_0x00: u32 = 0x0;
1806   /// Oscillator Cycles 32K.
1807   pub const VAL_0x01: u32 = 0x1;
1808   /// Oscillator Cycles 64K.
1809   pub const VAL_0x02: u32 = 0x2;
1810   /// Oscillator Cycles 128K.
1811   pub const VAL_0x03: u32 = 0x3;
1812   /// Oscillator Cycles 256K.
1813   pub const VAL_0x04: u32 = 0x4;
1814   /// Oscillator Cycles 512K.
1815   pub const VAL_0x05: u32 = 0x5;
1816   /// Oscillator Cycles 1024K.
1817   pub const VAL_0x06: u32 = 0x6;
1818   /// Oscillator Cycles 2048K.
1819   pub const VAL_0x07: u32 = 0x7;
1820}
1821