firmware  v0.1.2
Chromation Spectrometer Dev-Kit
ReadWriteBits.h
1 #ifndef _READWRITEBITS_H
2 #define _READWRITEBITS_H
3 #include <stdint.h>
4 #include <stdbool.h>
5 
6 typedef uint8_t volatile * const register_address;
7 typedef uint8_t const bit_index;
8 // Write bits
9 inline void SetBit(register_address reg_addr, bit_index bit)
10 {
14  *reg_addr |= 1<<bit;
15 }
16 inline void ClearBit(register_address reg_addr, bit_index bit)
17 {
21  *reg_addr &= ~(1<<bit);
22 }
23 // Read bits
24 inline bool BitIsSet(register_address reg_addr, bit_index bit)
25 {
26  return *reg_addr & 1<<bit;
27 }
28 inline bool BitIsClear(register_address reg_addr, bit_index bit)
29 {
30  return !(*reg_addr & 1<<bit);
31 }
32 
33 #endif // _READWRITEBITS_H