Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependents: Measure_system Quadcopter_copy
RF12B.h
- Committer:
- harryeakins
- Date:
- 2011-03-11
- Revision:
- 6:98da0571ec31
- Parent:
- 5:a92c3f6d1711
- Child:
- 7:9f9e2a63a8a2
File content as of revision 6:98da0571ec31:
#ifndef _RF12B_H
#define _RF12B_H
#include "mbed.h"
#include <queue>
#define PACKET_LEN 16
enum rfmode_t{RX, TX};
class RF12B {
public:
/* Constructor */
RF12B(PinName SDI,
PinName SDO,
PinName SCK,
PinName NCS,
PinName NIRQ);
/* Reads a byte of data from the receive buffer
Returns 0xFF if there is no data */
unsigned char read();
/* Transmits a packet of data */
void write(unsigned char * data, unsigned char length);
/* Transmits a 1-byte packet of data */
void write(unsigned char data);
/* Returns true if data is available in the receive buffer*/
bool available();
protected:
/* Receive FIFO buffer */
queue<unsigned char> fifo;
/* SPI module */
SPI spi;
/* Other digital pins */
DigitalOut NCS;
InterruptIn NIRQ;
DigitalIn NIRQ_in;
DigitalOut rfled;
/* Initialises the RF12B module */
void init();
/* Write a command to the RF Module */
unsigned int writeCmd(unsigned int cmd);
/* Sends a byte of data across RF */
void send(unsigned char data);
/* Switch module between receive and transmit modes */
void changeMode(rfmode_t mode);
/* Interrupt routine for data reception */
void rxISR();
/* Tell the RF Module this packet is received and wait for the next */
void resetRX();
/* Return the RF Module Status word */
unsigned int status();
/* Calculate CRC8 */
unsigned char crc8(unsigned char crc, unsigned char data);
};
#endif /* _RF12B_H */