72 lines
1.7 KiB
C
72 lines
1.7 KiB
C
/**
|
|
* @brief Module/Interface for editing AVR registers
|
|
* @details This file is an interface to AVR registers or the avr/io.h
|
|
* @author Jake G
|
|
* @date 2024
|
|
* @copyright None
|
|
* @file RegEdit.h
|
|
*/
|
|
|
|
#ifndef REGEDIT_H
|
|
#define REGEDIT_H
|
|
|
|
#include <stdint.h>
|
|
#include <stdbool.h>
|
|
|
|
|
|
/**
|
|
* @brief Sets the value of the register to 0xFF.
|
|
* @param reg A pointer to a register
|
|
*/
|
|
void RegEdit_SetRegister(void *reg);
|
|
|
|
/**
|
|
* @brief Sets the value of the register to 0x00.
|
|
* @param reg A pointer to a register
|
|
*/
|
|
void RegEdit_ClearRegister(void *reg);
|
|
|
|
/**
|
|
* @brief Sets a single bit in the register.
|
|
* @param reg A pointer to a register
|
|
* @param The bit's index or number in the register
|
|
*/
|
|
void RegEdit_SetBit(void *reg, uint8_t bit_num);
|
|
|
|
/**
|
|
* @brief Clears a single bit in the register.
|
|
* @param reg A pointer to a register
|
|
* @param The bit's index or number in the register
|
|
*/
|
|
void RegEdit_ClearBit(void *reg, uint8_t bit_num);
|
|
|
|
/**
|
|
* @brief Checks if a single bit is set in the register.
|
|
* @param reg A pointer to a register
|
|
* @param The bit's index or number in the register
|
|
*/
|
|
bool RegEdit_IsBitSet(void *reg, uint8_t bit_num);
|
|
|
|
/**
|
|
* @brief Preforms logical OR Equals with the passed num.
|
|
* @param reg A pointer to a register
|
|
* @param The bit's index or number in the register
|
|
*/
|
|
void RegEdit_OR_Num(void *reg, uint8_t num);
|
|
|
|
/**
|
|
* @brief Preforms logical AND Equals with the passed num.
|
|
* @param reg A pointer to a register
|
|
* @param The bit's index or number in the register
|
|
*/
|
|
void RegEdit_AND_Num(void *reg, uint8_t num);
|
|
|
|
/**
|
|
* @brief Sets the register to the passed number value.
|
|
* @param reg A pointer to a register
|
|
* @param The bit's index or number in the register
|
|
*/
|
|
void RegEdit_SetNum(void *reg, uint8_t num);
|
|
|
|
#endif //REGEDIT_H
|