From 8bba67a8aeb9e40bb81ba2749710b9fef660d689 Mon Sep 17 00:00:00 2001 From: travisutk Date: Wed, 19 May 2010 20:27:23 +0000 Subject: [PATCH] Nordic RF register peeks, pokes now work in the firmware. git-svn-id: https://svn.code.sf.net/p/goodfet/code/trunk@526 12e2690d-a6be-4b82-a7b7-67c4a43b65c8 --- firmware/apps/radios/nrf.c | 32 +++++++++++++++++++++++++------- 1 file changed, 25 insertions(+), 7 deletions(-) diff --git a/firmware/apps/radios/nrf.c b/firmware/apps/radios/nrf.c index 90fc1a9..f65d2e5 100644 --- a/firmware/apps/radios/nrf.c +++ b/firmware/apps/radios/nrf.c @@ -34,16 +34,13 @@ void nrfsetup(){ P5DIR|=MOSI+SCK+SS; - /* //Begin a new transaction. P5OUT&=~SS; P5OUT|=SS; - */ } - //! Read and write an NRF byte. -unsigned char nrftrans8(unsigned char byte){ +u8 nrftrans8(u8 byte){ register unsigned int bit; //This function came from the NRF Wikipedia article. //Minor alterations. @@ -67,6 +64,27 @@ unsigned char nrftrans8(unsigned char byte){ } +//! Writes a register +u8 nrf_regwrite(u8 reg, const u8 *buf, int len){ + P5OUT&=~SS; + + reg=nrftrans8(reg); + while(len--) + nrftrans8(*buf++); + + P5OUT|=SS; +} +//! Reads a register +u8 nrf_regread(u8 reg, u8 *buf, int len){ + P5OUT&=~SS; + + reg=nrftrans8(reg); + while(len--) + *buf++=nrftrans8(0); + + P5OUT|=SS; +} + //! Handles a Nordic RF command. void nrfhandle(unsigned char app, unsigned char verb, @@ -79,7 +97,7 @@ void nrfhandle(unsigned char app, switch(verb){ //PEEK and POKE might come later. - case READ: + case READ: case WRITE: P5OUT&=~SS; //Drop !SS to begin transaction. for(i=0;i