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