FuSa 8-Bit Libraries Safety Framework
Loading...
Searching...
No Matches
driver_gpr.c
Go to the documentation of this file.
1
22
23// Standard Library Includes
24#include <stdint.h>
25
26// Framework Includes
27#include <driver_gpr.h>
28
29// Device-specific Includes
30#include <xc.h>
31
32uint8_t GPR_ReadRegister0(void)
33{
34 return GPR.GPR0;
35}
36
37void GPR_WriteRegister0(uint8_t value)
38{
39 GPR.GPR0 = value;
40}
41
42uint8_t GPR_ReadRegister1(void)
43{
44 return GPR.GPR1;
45}
46
47void GPR_WriteRegister1(uint8_t value)
48{
49 GPR.GPR1 = value;
50}
51
52void GPR_ModifyRegister1(uint8_t groupMask, uint8_t groupConfig)
53{
54 const uint8_t currentValue = GPR.GPR1;
55 const uint8_t clearedConfig = currentValue & (uint8_t)(~groupMask);
56 const uint8_t newConfig = groupConfig & groupMask;
57 const uint8_t updatedValue = clearedConfig | newConfig;
58
59 GPR.GPR1 = updatedValue;
60}
61
62uint8_t GPR_ReadRegister2(void)
63{
64 return GPR.GPR2;
65}
66
67void GPR_WriteRegister2(uint8_t value)
68{
69 GPR.GPR2 = value;
70}
71
72void GPR_SetRegister2(uint8_t bitmask)
73{
74 GPR.GPR2 |= bitmask;
75}
76
77void GPR_ClearRegister2(uint8_t bitmask)
78{
79 GPR.GPR2 &= (uint8_t)(~bitmask);
80}
81
82void GPR_ModifyRegister2(uint8_t groupMask, uint8_t groupConfig)
83{
84 const uint8_t currentValue = GPR.GPR2;
85 const uint8_t clearedConfig = currentValue & (uint8_t)(~groupMask);
86 const uint8_t newConfig = groupConfig & groupMask;
87 const uint8_t updatedValue = clearedConfig | newConfig;
88
89 GPR.GPR2 = updatedValue;
90}
91
92uint8_t GPR_ReadRegister3(void)
93{
94 return GPR.GPR3;
95}
96
97void GPR_WriteRegister3(uint8_t value)
98{
99 GPR.GPR3 = value;
100}
101
102void GPR_SetRegister3(uint8_t bitmask)
103{
104 GPR.GPR3 |= bitmask;
105}
106
107void GPR_ClearRegister3(uint8_t bitmask)
108{
109 GPR.GPR3 &= (uint8_t)(~bitmask);
110}
uint8_t GPR_ReadRegister2(void)
Reads the GPR2 register value.
Definition driver_gpr.c:62
void GPR_ModifyRegister1(uint8_t groupMask, uint8_t groupConfig)
Modifies specific bit field(s) in the GPR1 register.
Definition driver_gpr.c:52
void GPR_ClearRegister2(uint8_t bitmask)
Clears specific bits in the GPR2 register.
Definition driver_gpr.c:77
void GPR_ModifyRegister2(uint8_t groupMask, uint8_t groupConfig)
Modifies specific bit field(s) in the GPR2 register.
Definition driver_gpr.c:82
uint8_t GPR_ReadRegister1(void)
Reads the GPR1 register value.
Definition driver_gpr.c:42
void GPR_WriteRegister0(uint8_t value)
Overwrites the GPR0 register value.
Definition driver_gpr.c:37
void GPR_ClearRegister3(uint8_t bitmask)
Clears specific bits in the GPR3 register.
Definition driver_gpr.c:107
void GPR_WriteRegister3(uint8_t value)
Overwrites the GPR3 register value.
Definition driver_gpr.c:97
void GPR_SetRegister2(uint8_t bitmask)
Sets specific bits in the GPR2 register.
Definition driver_gpr.c:72
void GPR_WriteRegister2(uint8_t value)
Overwrites the GPR2 register value.
Definition driver_gpr.c:67
uint8_t GPR_ReadRegister3(void)
Reads the GPR3 register value.
Definition driver_gpr.c:92
uint8_t GPR_ReadRegister0(void)
Reads the GPR0 register value.
Definition driver_gpr.c:32
void GPR_SetRegister3(uint8_t bitmask)
Sets specific bits in the GPR3 register.
Definition driver_gpr.c:102
void GPR_WriteRegister1(uint8_t value)
Overwrites the GPR1 register value.
Definition driver_gpr.c:47