#include "rf24.h" #include "nRF24L01.h" #include "../ard/pins.h" // FIXME for testing, remove later #include const unsigned char RF24_POWER_DOWN = 1; const unsigned char RF24_STANDBY_1 = 2; const unsigned char RF24_STANDBY_2 = 3; const unsigned char RF24_TX = 4; const unsigned char RF24_RX = 5; unsigned char _ce, _csn, _sck, _mo, _mi, _irq, _payload_len; void rf24_serial_transmit(unsigned char*, unsigned char); unsigned char rf24_serial_write(unsigned char); void rf24_init(unsigned char ce, unsigned char csn, unsigned char sck, unsigned char mo, unsigned char mi, unsigned char irq){ pin_mode(ce, OUTPUT); digital_write(ce, LOW); // disable pin_mode(csn, OUTPUT); digital_write(csn, HIGH); // disable pin_mode(sck, OUTPUT); pin_mode(mo, OUTPUT); pin_mode(mi, INPUT); pin_mode(irq, OUTPUT); _ce = ce; _csn = csn; _sck = sck; _mo = mo; _mi = mi; _irq = irq; //rf24_mode(RF24_POWER_DOWN); } // channel in 1Mhz steps void rf24_config(unsigned char channel, unsigned char payload_len){ _payload_len = payload_len; rf24_config_register(RF_CH, channel&RF_CH_MASK); // 2.4Ghz + channel*1Mhz rf24_config_register(RX_PW_P0, 0x00); // auto ACK rf24_config_register(RX_PW_P1, payload_len&RX_PW_MASK); // data rf24_config_register(RX_PW_P2, 0x00); // unused... rf24_config_register(RX_PW_P3, 0x00); rf24_config_register(RX_PW_P4, 0x00); rf24_config_register(RX_PW_P5, 0x00); // low transmission rate, 0dBm rf24_config_register(RF_SETUP, (1<