-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathnRF24L01_dbg.c
62 lines (53 loc) · 1.44 KB
/
nRF24L01_dbg.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#include <stdio.h>
#include <drv/usart0.h>
#include "nRF24L01.h"
void nRF24L01_dump(nRF24L01_t *dev)
{
const char *lookup[] =
{
"0000", "0001", "0010", "0011",
"0100", "0101", "0110", "0111",
"1000", "1001", "1010", "1011",
"1100", "1101", "1110", "1111"
};
uint8_t addr[] =
{
nRF24L01_ADDR_config,
nRF24L01_ADDR_en_aa,
nRF24L01_ADDR_en_rxaddr,
nRF24L01_ADDR_setup_aw,
nRF24L01_ADDR_setup_retr,
nRF24L01_ADDR_rf_ch,
nRF24L01_ADDR_rf_setup,
nRF24L01_ADDR_status,
nRF24L01_ADDR_observe_tx,
nRF24L01_ADDR_rpd,
nRF24L01_ADDR_rx_pw_p0,
nRF24L01_ADDR_rx_pw_p1,
nRF24L01_ADDR_rx_pw_p2,
nRF24L01_ADDR_rx_pw_p3,
nRF24L01_ADDR_rx_pw_p4,
nRF24L01_ADDR_rx_pw_p5,
nRF24L01_ADDR_fifo_status
};
uint8_t reg[sizeof(addr)];
for(uint8_t i = 0; i < sizeof(addr); ++i)
{
uint8_t xdata[] =
{
nRF24L01_R_REGISTER(addr[i]),
nRF24L01_NOP
};
dev->spi_xchg(xdata, xdata + sizeof(xdata));
reg[i] = xdata[1];
}
for(uint8_t i = 0; i < sizeof(addr); ++i)
{
char str[16];
sprintf(str, "[%" PRIx8 "] 0x%" PRIx8 " ", addr[i], reg[i]);
usart0_send_str(str);
usart0_send_str(lookup[(reg[i] >> 4) & 0xF]);
usart0_send_str(lookup[reg[i] & 0xF]);
usart0_send_str("\r\n");
}
}