pic_rf_24l01.c File Reference

#include "pic_rf_24l01.h"
#include "pic_serial.h"
#include <stdlib.h>

Include dependency graph for pic_rf_24l01.c:

Go to the source code of this file.

Functions

uns8 pic_rf_handle_irq_receive (uns8 *data, uns8 bytes_to_receive)
void pic_rf_init (rf_config *my_config)
 Initialise nrf2401a chip with config.
void pic_rf_quick_init (char *my_config, uns8 my_channel, bit my_receive_on)
 Initialise nrf2401a chip with quick config.
uns8 pic_rf_read_register (uns8 cmd, uns8 *data, uns8 data_len)
uns8 pic_rf_read_register_int (uns8 cmd, uns8 *data, uns8 data_len)
uns8 pic_rf_send_byte (uns8 b)
 Internal routine to send a byte to nrf2401a.
uns8 pic_rf_send_byte_int (uns8 b)
void pic_rf_send_bytes (char *bytes, uns8 num_bytes)
 Internal routine to send bytes to nrf2401a.
uns8 pic_rf_send_command (uns8 cmd, uns8 *data, uns8 data_len)
void pic_rf_set_channel (uns8 channel)
 Change channel on the nrf2401a.
void pic_rf_set_mode (uns8 requested_mode)
 Set rf mode to transmit or receive.
void pic_rf_setup ()
 Setup ports and pins for communication with nrf2401a.
void pic_rf_transmit (uns8 *data, uns8 bytes_to_transmit)


Function Documentation

uns8 pic_rf_handle_irq_receive ( uns8 *  data,
uns8  bytes_to_receive 
)

Definition at line 5 of file pic_rf_24l01.c.

References clear_pin, pic_rf_read_register_inline(), pic_rf_send_command_inline(), RF_R_RX_PAYLOAD, RF_RD_REG_FIFO_STATUS, RF_WR_REG_STATUS, set_pin, and uns8.

Here is the call graph for this function:

void pic_rf_init ( rf_config my_config  ) 

void pic_rf_quick_init ( char *  my_config,
uns8  my_channel,
bit  my_receive_on 
)

While the usual pic_rf_init() routine is excellent when you want to programatically change the 2401a config, if you're only doing this once (at the start) then it's likely you're burning a lot of instructions (154 words on a PIC16 device) just to send some bytes of config out to the 2401a. If you know your config in advance, then you can just send the byte-stream config using this routine. Use the nrf2401a_config.pl script in the tools directory to generate this string.

Definition at line 133 of file pic_rf_24l01.c.

References clear_pin, make_output, pic_rf_chip_enable, pic_rf_chip_select, pic_rf_send_byte(), rf_current_channel, rf_current_mode_receive, and uns8.

Here is the call graph for this function:

uns8 pic_rf_read_register ( uns8  cmd,
uns8 *  data,
uns8  data_len 
)

Definition at line 45 of file pic_rf_24l01.c.

References clear_pin, pic_rf_send_byte(), set_pin, and uns8.

Referenced by pic_rf_set_mode().

Here is the call graph for this function:

Here is the caller graph for this function:

uns8 pic_rf_read_register_int ( uns8  cmd,
uns8 *  data,
uns8  data_len 
)

Definition at line 65 of file pic_rf_24l01.c.

References clear_pin, pic_rf_send_byte_int(), set_pin, and uns8.

Here is the call graph for this function:

uns8 pic_rf_send_byte ( uns8  b  ) 

Internal routine to send a byte to the nrf2401a. Generally you shouldn't need to use this, see pic_rf_transmit instead

See also:
pic_rf_transmit

Definition at line 88 of file pic_rf_24l01.c.

References change_pin, clear_pin, set_pin, test_pin, and uns8.

uns8 pic_rf_send_byte_int ( uns8  b  ) 

Definition at line 108 of file pic_rf_24l01.c.

References change_pin, clear_pin, set_pin, test_pin, and uns8.

Referenced by pic_rf_read_register_inline(), pic_rf_read_register_int(), and pic_rf_send_command_inline().

Here is the caller graph for this function:

void pic_rf_send_bytes ( char *  bytes,
uns8  num_bytes 
)

Internal routine to send bytes to the nrf2401a. Generally you shouldn't need to use this, see pic_rf_transmit instead

See also:
pic_rf_transmit

Definition at line 125 of file pic_rf_24l01.c.

References pic_rf_send_byte(), and uns8.

Here is the call graph for this function:

uns8 pic_rf_send_command ( uns8  cmd,
uns8 *  data,
uns8  data_len 
)

Definition at line 26 of file pic_rf_24l01.c.

References clear_pin, pic_rf_send_byte(), set_pin, and uns8.

Referenced by pic_rf_init(), pic_rf_set_channel(), pic_rf_set_mode(), and pic_rf_transmit().

Here is the call graph for this function:

Here is the caller graph for this function:

void pic_rf_set_channel ( uns8  channel  ) 

Reclocks the essential config to change the current channel used by the nrf2401a.

Definition at line 258 of file pic_rf_24l01.c.

References clear_pin, end_crit_sec, kill_interrupts, pic_rf_chip_enable, pic_rf_chip_select, pic_rf_send_byte(), pic_rf_send_command(), PORTA, rf_current_channel, rf_current_mode_receive, RF_WR_REG_RF_CH, set_pin, and start_crit_sec.

Here is the call graph for this function:

void pic_rf_set_mode ( uns8  mode  ) 

Pass RECEIVE_MODE or TRANSMIT_MODE to change current mode. Generally, you shouldn't need to call this routine. The library assumes you want to receive until you transmit, in which case it switches automatically to transmit mode and back to receive afterwards.

Definition at line 231 of file pic_rf_24l01.c.

References change_pin, clear_pin, CONF_PRIM_RX, end_crit_sec, kill_interrupts, make_output, pic_rf_chip_enable, pic_rf_chip_select, pic_rf_read_register(), pic_rf_send_command(), RECEIVE_MODE, rf_current_mode_receive, RF_RD_REG_CONFIG_REG, RF_WR_REG_CONFIG_REG, set_pin, start_crit_sec, TRANSMIT_MODE, and uns8.

Here is the call graph for this function:

void pic_rf_setup (  ) 

Set up ports and pins to correct input/output for communication with Nordif nrf2401a

Definition at line 273 of file pic_rf_24l01.c.

References clear_pin, make_input, make_output, and set_pin.

void pic_rf_transmit ( uns8 *  data,
uns8  bytes_to_transmit 
)


Generated on Fri May 16 12:19:11 2008 for Pic Pack by  doxygen 1.5.5