diff options
-rw-r--r-- | lib/cc1101.c | 9 | ||||
-rw-r--r-- | lib/cc1101_defines.h | 2 |
2 files changed, 7 insertions, 4 deletions
diff --git a/lib/cc1101.c b/lib/cc1101.c index 20a2bda..1a4e9cc 100644 --- a/lib/cc1101.c +++ b/lib/cc1101.c @@ -74,7 +74,7 @@ static uint8_t cc1101_spi_strobe_command(const uint8_t cmd) static uint8_t cc1101_spi_read_register(const uint8_t addr) { - if(addr > CC1101_ADDR_MAX || (addr >= CC1101_CMD_MIN && addr <= CC1101_CMD_MAX)) + if(addr > CC1101_ADDR_MAX) return 0xFF; uint8_t hdr = addr; @@ -835,9 +835,10 @@ void cc1101_dump_register(void) int i; printf(" config (read/write) register:\r\n"); - for(i=0; i<=CC1101_REG_RW_MAX; ++i) { - uint8_t data = cc1101_spi_read_register(i); // TODO: use burst mode... - printf(" 0x%02X (%s): 0x%02X\r\n", i, cc1101_config_reg_to_string(i), data); + uint8_t data[(CC1101_REG_RW_MAX-CC1101_REG_RW_MIN) + 1]; + uint8_t l = cc1101_spi_read_register_burst(CC1101_REG_RW_MIN, data, sizeof(data)); + for(i=0; i<l; ++i) { + printf(" 0x%02X (%s): 0x%02X\r\n", i, cc1101_config_reg_to_string(i), data[i]); } printf("\r\n"); diff --git a/lib/cc1101_defines.h b/lib/cc1101_defines.h index 6018e60..6130fd6 100644 --- a/lib/cc1101_defines.h +++ b/lib/cc1101_defines.h @@ -79,6 +79,7 @@ #define CC1101_REG_RW_TEST1 0x2D #define CC1101_REG_RW_TEST0 0x2E +#define CC1101_REG_RW_MIN 0x00 #define CC1101_REG_RW_MAX 0x2E //read-only status registers: @@ -166,6 +167,7 @@ #define CC1101_MARCSTATE_RXTX_SWITCH 0x15 #define CC1101_MARCSTATE_TXFIFO_UNDERFLOW 0x16 + #define CC1101_GDO_CFG_3STATE 0x2E |