summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Pointner <equinox@spreadspace.org>2015-03-02 23:47:17 +0100
committerChristian Pointner <equinox@spreadspace.org>2015-03-02 23:47:17 +0100
commit93fd9ad895fc2331c2f0c5861ab3087b1f8ee0a7 (patch)
tree4b7599669160fdc5ac21a9dff6758367d29d8d5d
parentadded minimal version of cc1101 lib from mur.sat (diff)
using burst read for config register dump, fixed address check error
-rw-r--r--lib/cc1101.c9
-rw-r--r--lib/cc1101_defines.h2
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