46 lines
1.6 KiB
C++
46 lines
1.6 KiB
C++
#include "reg.h"
|
|
|
|
static uint8_t regs[REG_ID_LAST];
|
|
|
|
uint8_t reg_get_value(enum reg_id reg)
|
|
{
|
|
return regs[reg];
|
|
}
|
|
|
|
void reg_set_value(enum reg_id reg, uint8_t value)
|
|
{
|
|
regs[reg] = value;
|
|
}
|
|
|
|
bool reg_is_bit_set(enum reg_id reg, uint8_t bit)
|
|
{
|
|
return regs[reg] & bit;
|
|
}
|
|
|
|
void reg_set_bit(enum reg_id reg, uint8_t bit)
|
|
{
|
|
regs[reg] |= bit;
|
|
}
|
|
|
|
/*
|
|
* | Bit | Name | Description |
|
|
| ------ |:----------------:| ------------------------------------------------------------------:|
|
|
| 7 | CFG_USE_MODS | Should Alt, Sym and the Shift keys modify the keys being reported. |
|
|
| 6 | CFG_REPORT_MODS | Should Alt, Sym and the Shift keys be reported as well. |
|
|
| 5 | CFG_PANIC_INT | Currently not implemented. |
|
|
| 4 | CFG_KEY_INT | Should an interrupt be generated when a key is pressed. |
|
|
| 3 | CFG_NUMLOCK_INT | Should an interrupt be generated when Num Lock is toggled. |
|
|
| 2 | CFG_CAPSLOCK_INT | Should an interrupt be generated when Caps Lock is toggled. |
|
|
| 1 | CFG_OVERFLOW_INT | Should an interrupt be generated when a FIFO overflow happens. |
|
|
| 0 | CFG_OVERFLOW_ON | When a FIFO overflow happens, should the new entry still be pushed, overwriting the oldest one. If 0 then new entry is lost. |
|
|
*/
|
|
void reg_init(void)
|
|
{
|
|
regs[REG_ID_CFG] = CFG_OVERFLOW_INT | CFG_KEY_INT | CFG_USE_MODS|CFG_REPORT_MODS ;
|
|
regs[REG_ID_DEB] = 10;
|
|
regs[REG_ID_FRQ] = 5;
|
|
regs[REG_ID_BKL] = 255;//100%duty
|
|
regs[REG_ID_BK2] = 0;
|
|
regs[REG_ID_BAT] = 0xff; //default .no battery
|
|
}
|