How do you read nrf24L01 registers?
lardom
Posts: 1,659
in Accessories
I tried to write a simple test to see if I was writing to an internal register of the nrf24l01+ module. Arduino users have a large library but it's not common among Propeller users. I'm hoping I don't 'have' to learn to read Arduino code.
The test returns '0'. I should get '$02'.
The test returns '0'. I should get '$02'.
CON 'test reading internal registers nrf24L01 _clkmode = xtal1 + pll16x _xinfreq = 5_000_000 'Pins SPI_SCK = 5 SPI_MISO = 7 SPI_MOSI = 6 SPI_CSN = 4 SPI_CE = 3 OBJ SER : "FullDuplexSerialPlus" VAR long mystery_var, talk_back PUB Configure_TX SER.start(31, 30, 0, 57600) waitcnt(clkfreq * 2 + cnt) dira[SPI_MOSI]~~ 'master out slave in dira[SPI_MISO]~ 'master in slave out dira[SPI_SCK]~~ 'serial clock dira[SPI_CSN]~~ 'chip select NOT dira[SPI_CE]~~ 'chip enable outa[SPI_SCK]~ outa[SPI_CSN]~~ SPI_Write($20) 'write to config register $00 SPI_Write($02) 'power up PTX SPI_Write($00) 'read config register command Read_Register 'looking for return data PRI SPI_Write(n) | idx 'mode 0 'I want to read data in register $00 talk_back~ outa[SPI_CSN]~ repeat idx from 7 to 0 'MSB 1st outa[SPI_SCK]~~ outa[SPI_MOSI] := n >> (idx) talk_back += outa[SPI_MOSI] << (idx) mystery_var += outa[SPI_MISO] << (idx) outa[SPI_SCK]~ outa[SPI_CSN]~~ SER.bin(talk_back, 8) SER.tx(SER#CR) SER.bin(mystery_var, 9) SER.tx(SER#CR) PRI Read_Register | idx repeat 2 outa[SPI_CSN]~ repeat idx from 7 to 0 'MSB 1st outa[SPI_SCK]~~ ' talk_back += outa[SPI_MOSI] << (idx) mystery_var += outa[SPI_MISO] << (idx) outa[SPI_SCK]~ outa[SPI_CSN]~~ SER.bin(mystery_var, 12) SER.tx(SER#CR)