ATmega328p
Hardware definitions
Loading...
Searching...
No Matches
CPU.h
Go to the documentation of this file.
1
5
6#ifndef ATMEGA328P_DEFINITIONS_CPU_H
7#define ATMEGA328P_DEFINITIONS_CPU_H
8
9#include <stdint.h>
10#include "Config.h"
11
13namespace atmega328p
14{
16 namespace cpu
17 {
19 enum class GeneralPurposeRegister : uint8_t
20 {
21 R0 = 0,
22 R1 = 1,
23 R2 = 2,
24 R3 = 3,
25 R4 = 4,
26 R5 = 5,
27 R6 = 6,
28 R7 = 7,
29 R8 = 8,
30 R9 = 9,
31 R10 = 10,
32 R11 = 11,
33 R12 = 12,
34 R13 = 13,
35 R14 = 14,
36 R15 = 15,
37 R16 = 16,
38 R17 = 17,
39 R18 = 18,
40 R19 = 19,
41 R20 = 20,
42 R21 = 21,
43 R22 = 22,
44 R23 = 23,
45 R24 = 24,
46 R25 = 25,
47 R26 = 26,
48 R27 = 27,
49 R28 = 28,
50 R29 = 29,
51 R30 = 30,
52 R31 = 31,
53 };
54
56 enum class PointerRegister : uint8_t
57 {
58 X = 0,
59 Y = 1,
60 Z = 2,
61 };
62
64 enum class StatusFlag : uint8_t
65 {
66 Carry = 0,
67 Zero = 1,
70 Sign = 4,
74 };
75
76 enum : uint8_t
77 {
84 };
85
86 enum : uint8_t
87 {
96 };
97 }
98}
99
100#endif
Selects the ATmega328P package and operating grade.
CPU register and status flag definitions.
Definition CPU.h:17
PointerRegister
16-bit pointer-register pairs.
Definition CPU.h:57
@ X
0 - R27:R26 pointer pair.
Definition CPU.h:58
@ Z
2 - R31:R30 pointer pair.
Definition CPU.h:60
@ Y
1 - R29:R28 pointer pair.
Definition CPU.h:59
GeneralPurposeRegister
CPU general-purpose registers.
Definition CPU.h:20
@ R20
20 - CPU register R20.
Definition CPU.h:41
@ R14
14 - CPU register R14.
Definition CPU.h:35
@ R25
25 - CPU register R25.
Definition CPU.h:46
@ R12
12 - CPU register R12.
Definition CPU.h:33
@ R26
26 - CPU register R26.
Definition CPU.h:47
@ R17
17 - CPU register R17.
Definition CPU.h:38
@ R21
21 - CPU register R21.
Definition CPU.h:42
@ R0
0 - CPU register R0.
Definition CPU.h:21
@ R15
15 - CPU register R15.
Definition CPU.h:36
@ R10
10 - CPU register R10.
Definition CPU.h:31
@ R13
13 - CPU register R13.
Definition CPU.h:34
@ R30
30 - CPU register R30.
Definition CPU.h:51
@ R3
3 - CPU register R3.
Definition CPU.h:24
@ R24
24 - CPU register R24.
Definition CPU.h:45
@ R11
11 - CPU register R11.
Definition CPU.h:32
@ R4
4 - CPU register R4.
Definition CPU.h:25
@ R2
2 - CPU register R2.
Definition CPU.h:23
@ R9
9 - CPU register R9.
Definition CPU.h:30
@ R27
27 - CPU register R27.
Definition CPU.h:48
@ R16
16 - CPU register R16.
Definition CPU.h:37
@ R28
28 - CPU register R28.
Definition CPU.h:49
@ R19
19 - CPU register R19.
Definition CPU.h:40
@ R7
7 - CPU register R7.
Definition CPU.h:28
@ R29
29 - CPU register R29.
Definition CPU.h:50
@ R1
1 - CPU register R1.
Definition CPU.h:22
@ R8
8 - CPU register R8.
Definition CPU.h:29
@ R22
22 - CPU register R22.
Definition CPU.h:43
@ R5
5 - CPU register R5.
Definition CPU.h:26
@ R31
31 - CPU register R31.
Definition CPU.h:52
@ R18
18 - CPU register R18.
Definition CPU.h:39
@ R6
6 - CPU register R6.
Definition CPU.h:27
@ R23
23 - CPU register R23.
Definition CPU.h:44
@ status_flag_sign
Status flag sign.
Definition CPU.h:92
@ status_flag_half_carry
Status flag half carry.
Definition CPU.h:93
@ status_flag_zero
Status flag zero.
Definition CPU.h:89
@ status_flag_carry
Status flag carry.
Definition CPU.h:88
@ status_flag_global_interrupt
Status flag global interrupt.
Definition CPU.h:95
@ status_flag_transfer
Status flag transfer.
Definition CPU.h:94
@ status_flag_negative
Status flag negative.
Definition CPU.h:90
@ status_flag_overflow
Status flag overflow.
Definition CPU.h:91
StatusFlag
Status-register flags.
Definition CPU.h:65
@ Overflow
3 - Two's-complement overflow flag (V).
Definition CPU.h:69
@ Sign
4 - Sign flag (S).
Definition CPU.h:70
@ Transfer
6 - Bit-copy flag (T).
Definition CPU.h:72
@ GlobalInterrupt
7 - Global interrupt enable (I).
Definition CPU.h:73
@ Carry
0 - Carry flag (C).
Definition CPU.h:66
@ Zero
1 - Zero flag (Z).
Definition CPU.h:67
@ HalfCarry
5 - Half-carry flag (H).
Definition CPU.h:71
@ Negative
2 - Negative flag (N).
Definition CPU.h:68
@ x_high_register
X high register.
Definition CPU.h:79
@ y_high_register
Y high register.
Definition CPU.h:81
@ z_low_register
Z low register.
Definition CPU.h:82
@ y_low_register
Y low register.
Definition CPU.h:80
@ x_low_register
X low register.
Definition CPU.h:78
@ z_high_register
Z high register.
Definition CPU.h:83
Device-specific definitions for the ATmega328P.
Definition ADC.h:14