Commit b47295e3 authored by Daniel Friesel's avatar Daniel Friesel
Browse files

more radio tests

parent a426c8d5
Loading
Loading
Loading
Loading
+16 −6
Original line number Diff line number Diff line
@@ -81,6 +81,16 @@ private:
      gpio.write(NRF24L01_CS_PIN, 0);
      arch.delay_us(5);
   }
   inline void ceHigh()
   {
      gpio.write(NRF24L01_EN_PIN, 1);
      arch.delay_us(5);
   }
   inline void ceLow()
   {
      gpio.write(NRF24L01_EN_PIN, 0);
      arch.delay_us(5);
   }
   inline void beginTransaction()
   {
      csnLow();
+6 −3
Original line number Diff line number Diff line
@@ -33,6 +33,9 @@ void loop(void)
	if (status & 0x01) {
		kout << " TX_FULL";
	}
	if ((status & 0x0e) < 0x0d) {
		kout << " @" << (status & 0x0e)/2;
	}
	kout << endl;

#ifdef MULTIPASS_ARCH_msp430fr5969lp
@@ -65,11 +68,11 @@ int main(void)

	kout << "nrf24l01 configure ...";
    unsigned char addr[5] = {0, 'D', 'E', 'R', 'F'};
	//nrf24l01.setAutoAck(1);
	nrf24l01.setAutoAck(1);
	//nrf24l01.enableAckPayload();
	nrf24l01.setDynamicPayloads(true);
	nrf24l01.setDynamicPayloads(false);
	nrf24l01.setPALevel(Nrf24l01::RF24_PA_MAX);
	nrf24l01.setChannel(25);
	nrf24l01.setChannel(110);
	nrf24l01.setDataRate(Nrf24l01::RF24_2MBPS);
#ifdef MULTIPASS_ARCH_msp430fr5994lp
	nrf24l01.openReadingPipe(1, addr);
+6 −6
Original line number Diff line number Diff line
@@ -131,7 +131,7 @@ void Nrf24l01::powerUp(void)

void Nrf24l01::powerDown(void)
{
	gpio.write(NRF24L01_EN_PIN, 0);
	ceLow();
	writeRegister(NRF_CONFIG, readRegister(NRF_CONFIG) & ~(1 << PWR_UP));
}

@@ -234,18 +234,18 @@ uint8_t Nrf24l01::write(const void *buf, uint8_t len, bool await_ack, bool block
{
	writePayload(buf, len, await_ack ? W_TX_PAYLOAD : W_TX_PAYLOAD_NO_ACK);

	gpio.write(NRF24L01_EN_PIN, 1);
	ceHigh();

	if (!blocking)
	{
		arch.delay_us(10);
		gpio.write(NRF24L01_EN_PIN, 0);
		ceLow();
		return 0;
	}

	while (!(getStatus() & ((1 << TX_DS) | (1 << MAX_RT))))
		;
	gpio.write(NRF24L01_EN_PIN, 1);
	ceLow();
	uint8_t status = writeRegister(NRF_STATUS, ((1 << TX_DS) | (1 << MAX_RT)));

	if (status & (1 << MAX_RT))
@@ -260,7 +260,7 @@ void Nrf24l01::startListening(void)
{
	writeRegister(NRF_CONFIG, readRegister(NRF_CONFIG) | (1 << PRIM_RX));
	writeRegister(NRF_STATUS, (1 << RX_DR) | (1 << TX_DS) | (1 << MAX_RT));
	gpio.write(NRF24L01_EN_PIN, 1);
	ceHigh();

	// Restore the pipe0 adddress, if exists
	if (pipe0_reading_address[0] > 0)
@@ -280,7 +280,7 @@ void Nrf24l01::startListening(void)

void Nrf24l01::stopListening(void)
{
	gpio.write(NRF24L01_EN_PIN, 0);
	ceLow();

	arch.delay_us(txRxDelay);