diff --git a/src/energenie/drv/hrf69.c b/src/energenie/drv/hrf69.c index 3c032bd..ea138ac 100644 --- a/src/energenie/drv/hrf69.c +++ b/src/energenie/drv/hrf69.c @@ -5,8 +5,7 @@ #include "system.h" #include "hrf69.h" - -//import spi +#include "spi.h" //def warning(msg): // print("warning:" + str(msg)) @@ -34,17 +33,16 @@ // spi.deselect() } - +// Read an 8 bit value from a register uint8_t HRF_readreg(uint8_t addr) { -//def HRF_readreg(addr): -// """Read an 8 bit value from a register""" -// buf = [addr, 0x00] -// spi.select() -// res = spi.frame(buf) -// spi.deselect() -// return res[1] # all registers are 8 bit - return 0; // TODO + uint8_t result; + + spi_select(); + spi_byte(addr); + result = spi_byte(0x00); + spi_deselect(); + return result; } diff --git a/src/energenie/drv/hrf69_test.c b/src/energenie/drv/hrf69_test.c index 508a093..b45f1f2 100644 --- a/src/energenie/drv/hrf69_test.c +++ b/src/energenie/drv/hrf69_test.c @@ -69,6 +69,9 @@ } +extern void gpio_mock_set_in(uint8_t g, uint8_t v); + + void hrf_test_connect(void) { uint8_t result; @@ -76,8 +79,11 @@ // can we reset the HRF, and read a register from it? reset(); + gpio_mock_set_in(MISO, 1); // force return bus high to test + + result = HRF_readreg(0x00); - printf("result:%02X", (unsigned int) result); + printf("result:0x%02X\n", (unsigned int) result); spi_finished(); }