Пт май 30, 2014 22:56:05
Сб май 31, 2014 00:56:40
Сб май 31, 2014 11:58:57
Чт июн 26, 2014 15:20:58
Пт июн 27, 2014 20:15:34
#include "Arduino.h"
#include <rfm73.h>
pins::uc_pin ce( 8 ), csn( 10 ), mosi( 11 ), miso( 12 ), sck( 13 ), ce1( 7 ), csn1( 9 );
pins::uc_pin led_tx( 5 ), led_rx( 6 );
rfm73 radio( sck, mosi, miso, csn, ce );
rfm73 radio1( sck, mosi, miso, csn1, ce1 );
unsigned char receive_led = 0, reg_st = 0;
const unsigned char tx_buf[17]={
0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,0x78};
void setup()
{
pinMode(3, INPUT);
digitalWrite(3, HIGH);
Serial.begin(9600);
attachInterrupt(1, blink2, CHANGE);
}
void blink2()
{
receive_led = 60;
reg_st = radio1.register_read(RFM73_REG_CONFIG);
radio1.register_write(RFM73_REG_CONFIG, reg_st);
Serial.print("Interrupt 1 \r\n");
}
void loop() {
led_tx.direction_set_output();
led_rx.direction_set_output();
radio.init(); radio1.init();
radio.channel( 10 ); radio1.channel( 10 );
if(!radio.is_present() || !radio1.is_present())
{
for(;;)
{
delay( 300 );
led_rx.set( 0 );
led_tx.set( 1 );
delay( 300 );
led_rx.set( 1 );
led_tx.set( 0 );
}
}
unsigned char len, i, chksum, n = 0;
unsigned char rx_buf[ RFM73_MAX_PACKET_LEN ];
unsigned char transmit_led = 0;
for(;;)
{
delay( 4 );
led_tx.set( transmit_led > 0 );
if( transmit_led > 0 )
{
transmit_led--;
}
led_rx.set(receive_led > 0);
if( receive_led > 0 )
{
receive_led--;
}
if( ++n > 250 )
{
radio.mode_transmit();
radio1.mode_receive();
transmit_led = 20;
radio.buffer_write( RFM73_CMD_W_TX_PAYLOAD_NOACK, tx_buf, 17 );
delay( 1 );
n = 0;
}
if( ! radio1.receive_fifo_empty() )
{
Serial.print("FIFO is not empty\r\n");
len = radio1.register_read( RFM73_CMD_R_RX_PL_WID );
if( len <= RFM73_MAX_PACKET_LEN )
{
Serial.print("Normal length\r\n");
radio1.buffer_read( RFM73_CMD_R_RX_PAYLOAD, rx_buf, len);
chksum = 0;
for(i = 0; i < 16; i++)
{
chksum += rx_buf[i];
}
if (chksum == rx_buf[16] && rx_buf[0] == 0x30)
{
receive_led = 20;
Serial.print("Checksumm\r\n");
}
}
radio1.register_write( RFM73_CMD_FLUSH_RX,0 );
}
}
}
RFM73 testing
Init module 1
Init module 2
Module 1 is present
Module 2 is present
Packages lost: 0
Packages retransmit: 0
Sending
Packages lost: 1
Packages retransmit: 15
Sending
Packages lost: 2
Packages retransmit: 15
Sending
Packages lost: 3
Packages retransmit: 15
Sending
Packages lost: 4
Packages retransmit: 15
Sending
Packages lost: 5
Packages retransmit: 15
Sending
Packages lost: 6
Packages retransmit: 15
Sending
Packages lost: 7
Packages retransmit: 15
Sending
Packages lost: 8
Packages retransmit: 15
Sending
Packages lost: 9
Packages retransmit: 15
Sending
Packages lost: 10
Packages retransmit: 15
Sending
Packages lost: 11
Packages retransmit: 15
Sending
Packages lost: 12
Packages retransmit: 15
Sending
Packages lost: 13
Packages retransmit: 15
Sending
Packages lost: 14
Packages retransmit: 15
Sending
Packages lost: 15
Packages retransmit: 15
И т.д.
#include "Arduino.h"
#include <rfm73.h>
pins::uc_pin ce( 8 ), csn( 10 ), mosi( 11 ), miso( 12 ), sck( 13 ), ce1( 7 ), csn1( 9 );
pins::uc_pin led_tx( 5 ), led_rx( 6 );
rfm73 radio( sck, mosi, miso, csn, ce );
rfm73 radio1( sck, mosi, miso, csn1, ce1 );
unsigned char receive_led = 0, reg_st = 0;
const unsigned char Address[]={ 0x11, 0x19, 0x19, 0x12, 0x17 };
const unsigned char tx_buf[17]={
0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,0x78};
void setup()
{
Serial.begin(9600);
Serial.print("RFM73 testing\r\n");
}
void loop() {
led_tx.direction_set_output();
led_rx.direction_set_output();
Serial.print("Init module 1\r\n");
radio.init();
radio.channel( 19 );
radio.pipe_enable(0, true);
radio.pipe_enable(1, false);
radio.receive_address_p0(Address);
radio.transmit_address(Address);
radio.pipe_autoack(0, true);
radio.mode_receive();
delay( 2 );
Serial.print("Init module 2\r\n");
delay( 4 );
radio1.init();
radio1.channel( 19 );
radio1.pipe_enable(0, true);
radio1.pipe_enable(1, false);
radio1.receive_address_p0(Address);
radio1.transmit_address(Address);
radio.pipe_autoack(1, true);
radio1.mode_transmit();
delay( 4 );
if(!radio.is_present())
{
for(;;)
{
delay( 300 );
led_rx.set( 0 );
led_tx.set( 1 );
delay( 300 );
led_rx.set( 1 );
led_tx.set( 0 );
}
}
delay( 2 );
Serial.print("Module 1 is present\r\n");
delay( 2 );
if(!radio1.is_present())
{
for(;;)
{
delay( 300 );
led_rx.set( 0 );
led_tx.set( 1 );
delay( 300 );
led_rx.set( 1 );
led_tx.set( 0 );
}
}
delay( 2 );
Serial.print("Module 2 is present\r\n");
delay( 2 );
unsigned char len, i, chksum, n = 0;
unsigned char rx_buf[ RFM73_MAX_PACKET_LEN ];
unsigned char transmit_led = 0;
delay( 10 );
for(;;)
{
delay( 4 );
led_tx.set( transmit_led > 0 );
if( transmit_led > 0 )
{
transmit_led--;
}
led_rx.set(receive_led > 0);
if( receive_led > 0 )
{
receive_led--;
}
if( ++n > 250 )
{
Serial.print("Packages lost: ");
Serial.print(radio1.lost_packets_count());
Serial.print("\r\n");
Serial.print("Packages retransmit: ");
Serial.print(radio1.retransmit_count());
Serial.print("\r\n");
radio1.mode_transmit();
delay(1);
transmit_led = 20;
ce1.set(0);
delay(1);
Serial.print("Sending\r\n");
// radio1.buffer_write( RFM73_CMD_W_TX_PAYLOAD, tx_buf, 17 );
radio1.transmit_message(tx_buf, 17);
delay(1);
ce1.set(1);
delay( 1 );
// clear interrupt status
reg_st = radio1.register_read( RFM73_REG_STATUS );
radio1.register_write( RFM73_REG_STATUS ,reg_st );
ce1.set(0);
// radio1.mode_receive();
n = 0;
}
if( ! radio.receive_fifo_empty() )
{
Serial.print("FIFO is not empty\r\n");
len = radio.register_read( RFM73_CMD_R_RX_PL_WID );
if( len <= RFM73_MAX_PACKET_LEN )
{
Serial.print("Normal length\r\n");
radio.buffer_read( RFM73_CMD_R_RX_PAYLOAD, rx_buf, len);
chksum = 0;
for(i = 0; i < 16; i++)
{
chksum += rx_buf[i];
}
if (chksum == rx_buf[16] && rx_buf[0] == 0x30)
{
receive_led = 20;
Serial.print("Checksumm\r\n");
}
}
radio.register_write(RFM73_CMD_FLUSH_RX, 0);
}
}
}
Вт авг 26, 2014 22:14:49
Ср окт 01, 2014 14:51:04
Ср окт 01, 2014 15:28:57
Ср окт 01, 2014 16:16:50
rfm70_address_length(5);
rfm70_transmit_address(sdata.local_addr); //Адрес даного модуля.
rfm70_receive_address_p0(sdata.local_addr); //сюда приходят подтверждения от БС
//REG_EN_AA
rfm70_pipe_autoack(1, 1);
rfm70_receive_address_p1(sdata.remote_addr);//сюда приходят данные от БС.
//EN_RXADDR
rfm70_pipe_enable(0, 1);
rfm70_pipe_enable(1, 1);
rfm70_pipe_enable(2, 0);
rfm70_pipe_enable(3, 0);
rfm70_pipe_enable(4, 0);
rfm70_pipe_enable(5, 0);
Сб июн 13, 2015 19:54:44
DATA_INIT_BANK0:
.db Com_WrReg+EN_AA,0x01,Com_WrReg+EN_RXADDR,0x01,Com_WrReg+SETUP_AW,0x03,Com_WrReg+SETUP_RETR,0xFF
.db Com_WrReg+RF_CH,28,Com_WrReg+RF_SETUP,0x07,Com_WrReg+DYNPD,0x01,Com_WrReg+FEATURE,0x07
.db Com_WrReg+RX_ADDR_P2,0xC3,Com_WrReg+RX_ADDR_P3,0xC4,Com_WrReg+RX_ADDR_P4,0xC5,Com_WrReg+RX_ADDR_P5,0xC6
.db Com_WrReg+RX_PW_P0,0x20,Com_WrReg+RX_PW_P1,0x21,Com_WrReg+RX_PW_P2,0x21,Com_WrReg+RX_PW_P3,0x21
.db Com_WrReg+RX_PW_P4,0x21,Com_WrReg+RX_PW_P5,0x21,Com_WrReg+CONFIG,0x0F
//0 Config - reflect RX_DR\TX_DS\MAX_RT,Enable CRC ,2byte,POWER UP,PRX
//1 EN_AA - Enable auto acknowledgement data pipe 0
//2 EN_RXADDR - Enable RX Addresses pipe 0
//3 SETUP_AW - RX/TX address field width 5byte
//4 SETUP_RETR - Auto retransmission delay (4000us),auto retransmission count(15)
//5 RF_CH - channel
//6 RF_SETUP - Air data rate-1M,out power 0dbm,setup LNA gain \bit4 must set up to 0
//7 DYNPD - Enable dynamic payload length
//8 FEATURE - Enables Dynamic Payload Length,Enables Payload with ACK
;|*************************************************
ADDRESS_PRX_PTX:
.db Com_WrReg+RX_ADDR_P0,0xCE,0xCD,0xC0,0xCB,0xD3,Com_WrReg+RX_ADDR_P1,0xDF
.db 0xDC,0xCB,0xC8,0xC2,Com_WrReg+TX_ADDR,0xCE,0xCD,0xC0,0xCB,0xD3
;|*************************************************
DATA_INIT_BANK1:
.db 0x20,0x40,0x4B,0x01,0x2E,0x21,0xC0,0x4B
.db 0x00,0x00,0x22,0xD0,0xFC,0x8C,0x02,0x23
.db 0x99,0x00,0x39,0x41,0x24,0xD9,0x96,0x82
.db 0x1B,0x25,0x24,0x06,0x7F,0xA6,0x26,0x00
.db 0x00,0x00,0x00,0x27,0x00,0x00,0x00,0x00
.db 0x29,0x00,0x00,0x00,0x00,0x2A,0x00,0x00
.db 0x00,0x00,0x2B,0x00,0x00,0x00,0x00,0x2C
.db 0x00,0x12,0x73,0x00,0x2D,0x36,0xB4,0x80
.db 0x00,0x2E,0x41,0x20,0x08,0x04,0x81,0x20
.db 0xCF,0xF7,0xFE,0xFF,0xFF,0
Toggle_REG4:
.db 0x24,0xDF,0x96,0x82,0x1B,0x24,0xD9,0x96
.db 0x82,0x1B
Пн июл 31, 2017 15:43:53
Ср авг 16, 2017 16:44:32