FuSa 8-Bit Libraries Safety Framework
Loading...
Searching...
No Matches
driver_nvmctrl.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_ccp_asm.h>
28#include <driver_nvmctrl.h>
29
30// Device-specific Includes
31#include <xc.h>
32
33void NVMCTRL_ModifyControlC(uint8_t groupMask, uint8_t groupConfig)
34{
35 const uint8_t currentValue = NVMCTRL.CTRLC;
36 const uint8_t clearedConfig = currentValue & (uint8_t)(~groupMask);
37 const uint8_t newConfig = groupConfig & groupMask;
38 const uint8_t updatedValue = clearedConfig | newConfig;
39
40 ASM_WriteCcp8(&NVMCTRL.CTRLC, updatedValue);
41}
42
43void NVMCTRL_SetControlD(uint8_t bitmask)
44{
45 const uint8_t currentValue = NVMCTRL.CTRLD;
46 const uint8_t updatedValue = currentValue | bitmask;
47 ASM_WriteCcp8(&NVMCTRL.CTRLD, updatedValue);
48}
49
51{
52 return NVMCTRL.INTFLAGSB;
53}
54
55void NVMCTRL_WriteIntFlagsB(uint8_t value)
56{
57 ASM_WriteCcp8(&NVMCTRL.INTFLAGSB, value);
58}
59
60uint8_t NVMCTRL_ReadStatus(void)
61{
62 return NVMCTRL.STATUS;
63}
void ASM_WriteCcp8(register8_t *regAddr, uint8_t value)
Writes value to a Configuration Change Protected (CCP) 8-bit register.
void NVMCTRL_SetControlD(uint8_t bitmask)
Sets specific bits in the CTRLD register.
uint8_t NVMCTRL_ReadStatus(void)
Reads the STATUS register value.
uint8_t NVMCTRL_ReadIntFlagsB(void)
Reads the INTFLAGSB register value.
void NVMCTRL_WriteIntFlagsB(uint8_t value)
Overwrites the INTFLAGSB register value.
void NVMCTRL_ModifyControlC(uint8_t groupMask, uint8_t groupConfig)
Modifies specific bit field(s) in the CTRLC register.