Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion sdk/bsp/radio.c
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ signed short cdr_tau_history[11] = {0};

//=========================== definition ======================================

// #define DIV_ON
#define DIV_ON

#define MAXLENGTH_TRX_BUFFER 128 // 1B length, 125B data, 2B CRC
#define NUM_CHANNELS 16
Expand Down
3 changes: 3 additions & 0 deletions sdk/bsp/scm3c_hw_interface.c
Original file line number Diff line number Diff line change
Expand Up @@ -1056,6 +1056,9 @@ void initialize_mote() {
radio_init_tx();
#endif

// activate divider
radio_init_divider(2000);

// Set initial IF ADC clock frequency
set_IF_clock_frequency(scm3c_hw_interface_vars.IF_coarse,
scm3c_hw_interface_vars.IF_fine, 0);
Expand Down
41 changes: 33 additions & 8 deletions sdk/samples/radio_example_rx/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -7,19 +7,44 @@
#include "radio.h"
#include "rftimer.h"
#include "scm3c_hw_interface.h"
#include "scum.h"

// Number of for loop cycles between Hello World messages.
// 700000 for loop cycles roughly correspond to 1 second.
#define NUM_CYCLES_BETWEEN_TX (1000000UL)
static uint8_t packet[125] = {0};
static uint8_t packet_len = 125;
static int8_t rxpk_rssi = 0;
static uint8_t rxpk_lqi = 0;

static void rx_endframe_callback(uint32_t timestamp);

int main(void) {

LC_FREQCHANGE(0,0,0);
radio_txEnable();
printf("Radio Receiver Example\n");

radio_init();
LC_FREQCHANGE(0,20,15);
radio_setEndFrameRxCb(rx_endframe_callback);
radio_rxEnable();
radio_rxNow();

uint32_t g_tx_counter = 0;
while (1) {
printf("Hello World! %lu\n", g_tx_counter++);
busy_wait_cycles(NUM_CYCLES_BETWEEN_TX);
__WFE();
}
}

void rx_endframe_callback(uint32_t timestamp) {

radio_getReceivedFrame( &(packet[0]),
&packet_len,
sizeof(packet),
&rxpk_rssi,
&rxpk_lqi );

for (uint8_t i = 0; i < packet_len - 2; i++) {
printf("%d ", packet[i]);
}
printf("\n");

radio_rxEnable();
radio_rxNow();

}
14 changes: 7 additions & 7 deletions sdk/samples/radio_example_tx/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -7,18 +7,20 @@
#include "radio.h"
#include "rftimer.h"
#include "scm3c_hw_interface.h"
#include "scum.h"

// Number of for loop cycles between Hello World messages.
// 700000 for loop cycles roughly correspond to 1 second.
#define NUM_CYCLES_BETWEEN_TX (1000000UL)
#define NUM_CYCLES_BETWEEN_PACKET (100UL)
#define NUM_CYCLES_BETWEEN_PACKET (1000UL)
#define TX_PACKET_LEN (64UL)

void tx_endframe_callback(uint32_t timestamp);

uint8_t packet[TX_PACKET_LEN] = {0};
static void tx_endframe_callback(uint32_t timestamp);
static uint8_t packet[TX_PACKET_LEN] = {0};

int main(void) {

printf("Radio Transmitter Example\n");
radio_init();
LC_FREQCHANGE(0,0,0);
radio_setEndFrameTxCb(tx_endframe_callback);
Expand All @@ -27,10 +29,8 @@ int main(void) {
busy_wait_cycles(NUM_CYCLES_BETWEEN_PACKET);
radio_txNow();

uint32_t g_tx_counter = 0;
while (1) {
printf("Hello World! %lu\n", g_tx_counter++);
busy_wait_cycles(NUM_CYCLES_BETWEEN_TX);
__WFE();
}
}

Expand Down
Loading