Patches from R Larsson
This commit is contained in:
parent
013c3ac2f8
commit
5b8e62ef4f
2 changed files with 17 additions and 15 deletions
|
@ -81,7 +81,7 @@
|
||||||
#define HAL_TRX_CMD_FR (0x20) /**< Frame Receive Mode (long mode). */
|
#define HAL_TRX_CMD_FR (0x20) /**< Frame Receive Mode (long mode). */
|
||||||
#define HAL_TRX_CMD_SW (0x40) /**< SRAM Write. */
|
#define HAL_TRX_CMD_SW (0x40) /**< SRAM Write. */
|
||||||
#define HAL_TRX_CMD_SR (0x00) /**< SRAM Read. */
|
#define HAL_TRX_CMD_SR (0x00) /**< SRAM Read. */
|
||||||
#define HAL_TRX_CMD_RADDRM (0x7F) /**< Register Address Mask. */
|
#define HAL_TRX_CMD_RADDRM (0x3F) /**< Register Address Mask. */
|
||||||
|
|
||||||
#define HAL_CALCULATED_CRC_OK (0) /**< CRC calculated over the frame including the CRC field should be 0. */
|
#define HAL_CALCULATED_CRC_OK (0) /**< CRC calculated over the frame including the CRC field should be 0. */
|
||||||
/*============================ TYPDEFS =======================================*/
|
/*============================ TYPDEFS =======================================*/
|
||||||
|
@ -185,9 +185,10 @@ inline uint8_t spiWrite(uint8_t byte)
|
||||||
else
|
else
|
||||||
HAL_PORT_MOSI &= ~(1 << HAL_MOSI_PIN); //call MOSI.clr();
|
HAL_PORT_MOSI &= ~(1 << HAL_MOSI_PIN); //call MOSI.clr();
|
||||||
|
|
||||||
HAL_PORT_SCK &= ~(1 << HAL_SCK_PIN); //call SCLK.clr();
|
|
||||||
if( (HAL_PORT_MISO & (1 << HAL_MISO_PIN)) > 0) //call MISO.get() )
|
if( (HAL_PORT_MISO & (1 << HAL_MISO_PIN)) > 0) //call MISO.get() )
|
||||||
data |= mask;
|
data |= mask;
|
||||||
|
|
||||||
|
HAL_PORT_SCK &= ~(1 << HAL_SCK_PIN); //call SCLK.clr();
|
||||||
HAL_PORT_SCK |= (1 << HAL_SCK_PIN); //call SCLK.set();
|
HAL_PORT_SCK |= (1 << HAL_SCK_PIN); //call SCLK.set();
|
||||||
} while( (mask >>= 1) != 0 );
|
} while( (mask >>= 1) != 0 );
|
||||||
return data;
|
return data;
|
||||||
|
@ -253,7 +254,7 @@ hal_init(void)
|
||||||
|
|
||||||
/* Set SS */
|
/* Set SS */
|
||||||
HAL_PORT_SS |= (1 << HAL_SS_PIN); // HAL_SS_HIGH()
|
HAL_PORT_SS |= (1 << HAL_SS_PIN); // HAL_SS_HIGH()
|
||||||
HAL_PORT_SCK |= (1 << HAL_SCK_PIN);
|
HAL_PORT_SCK &= ~(1 << HAL_SCK_PIN); // SCLK.clr()
|
||||||
|
|
||||||
/*TIMER Specific Initialization.*/
|
/*TIMER Specific Initialization.*/
|
||||||
// Init count source (Timer B3)
|
// Init count source (Timer B3)
|
||||||
|
|
|
@ -28,7 +28,7 @@
|
||||||
*
|
*
|
||||||
* This file is part of the Contiki operating system.
|
* This file is part of the Contiki operating system.
|
||||||
*
|
*
|
||||||
* @(#)$Id: rf230bb.c,v 1.23 2010/12/21 04:25:15 dak664 Exp $
|
* @(#)$Id: rf230bb.c,v 1.24 2010/12/22 20:10:00 dak664 Exp $
|
||||||
*/
|
*/
|
||||||
/*
|
/*
|
||||||
* This code is almost device independent and should be easy to port.
|
* This code is almost device independent and should be easy to port.
|
||||||
|
@ -71,6 +71,7 @@
|
||||||
/* Nonzero FOOTER_LEN has not been tested */
|
/* Nonzero FOOTER_LEN has not been tested */
|
||||||
#define FOOTER_LEN 0
|
#define FOOTER_LEN 0
|
||||||
|
|
||||||
|
/* RF230_CONF_CHECKSUM=0 for automatic hardware checksum */
|
||||||
#ifndef RF230_CONF_CHECKSUM
|
#ifndef RF230_CONF_CHECKSUM
|
||||||
#define RF230_CONF_CHECKSUM 0
|
#define RF230_CONF_CHECKSUM 0
|
||||||
#endif /* RF230_CONF_CHECKSUM */
|
#endif /* RF230_CONF_CHECKSUM */
|
||||||
|
@ -610,9 +611,6 @@ rf230_transmit(unsigned short payload_len)
|
||||||
#if RF230_CONF_TIMESTAMPS
|
#if RF230_CONF_TIMESTAMPS
|
||||||
struct timestamp timestamp;
|
struct timestamp timestamp;
|
||||||
#endif /* RF230_CONF_TIMESTAMPS */
|
#endif /* RF230_CONF_TIMESTAMPS */
|
||||||
#if RF230_CONF_CHECKSUM
|
|
||||||
uint16_t checksum;
|
|
||||||
#endif /* RF230_CONF_CHECKSUM */
|
|
||||||
|
|
||||||
GET_LOCK();
|
GET_LOCK();
|
||||||
// DEBUGFLOW('T');
|
// DEBUGFLOW('T');
|
||||||
|
@ -659,14 +657,14 @@ rf230_transmit(unsigned short payload_len)
|
||||||
|
|
||||||
PRINTF("rf230_transmit:\n");
|
PRINTF("rf230_transmit:\n");
|
||||||
#if DEBUG>1
|
#if DEBUG>1
|
||||||
/* Note the dumped packet will have a zero checksum since we don't know what it should be */
|
/* Note the dumped packet will have a zero checksum unless compiled with RF230_CONF_CHECKSUM
|
||||||
|
* since we don't know what it will be if calculated by the hardware.
|
||||||
|
*/
|
||||||
{
|
{
|
||||||
uint8_t i;
|
uint8_t i;
|
||||||
PRINTF("0000"); //Start a new wireshark packet
|
PRINTF("0000"); //Start a new wireshark packet
|
||||||
// PRINTF("%02x%02x ", wireshark_offset>>8, wireshark_offset & 0xff);
|
for (i=0;i<total_len;i++) PRINTF(" %02x",buffer[i]);
|
||||||
for (i=0;i<total_len-CHECKSUM_LEN;i++) PRINTF(" %02x",buffer[i]);
|
PRINTF("\n");
|
||||||
PRINTF(" 00 00\n"); //Checksum
|
|
||||||
// wireshark_offset += total_len;
|
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -1096,9 +1094,7 @@ if (RF230_receive_on) {
|
||||||
{
|
{
|
||||||
uint8_t i;
|
uint8_t i;
|
||||||
PRINTF("0000");
|
PRINTF("0000");
|
||||||
// PRINTF("%02x%02x ", wireshark_offset>>8, wireshark_offset & 0xff);
|
|
||||||
for (i=0;i<rxframe.length;i++) PRINTF(" %02x",rxframe.data[i]);
|
for (i=0;i<rxframe.length;i++) PRINTF(" %02x",rxframe.data[i]);
|
||||||
// wireshark_offset += rxframe.length;
|
|
||||||
PRINTF("\n");
|
PRINTF("\n");
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@ -1157,8 +1153,10 @@ if (RF230_receive_on) {
|
||||||
PRINTF("checksum failed 0x%04x != 0x%04x\n",
|
PRINTF("checksum failed 0x%04x != 0x%04x\n",
|
||||||
checksum, crc16_data(buf, len - AUX_LEN, 0));
|
checksum, crc16_data(buf, len - AUX_LEN, 0));
|
||||||
}
|
}
|
||||||
|
#if FOOTER_LEN
|
||||||
if(footer[1] & FOOTER1_CRC_OK &&
|
if(footer[1] & FOOTER1_CRC_OK &&
|
||||||
checksum == crc16_data(buf, len - AUX_LEN, 0)) {
|
checksum == crc16_data(buf, len - AUX_LEN, 0)) {
|
||||||
|
#endif
|
||||||
#endif /* RF230_CONF_CHECKSUM */
|
#endif /* RF230_CONF_CHECKSUM */
|
||||||
|
|
||||||
/* Get the received signal strength for the packet, 0-84 dB above rx threshold */
|
/* Get the received signal strength for the packet, 0-84 dB above rx threshold */
|
||||||
|
@ -1191,6 +1189,7 @@ if (RF230_receive_on) {
|
||||||
#endif /* RF230_CONF_TIMESTAMPS */
|
#endif /* RF230_CONF_TIMESTAMPS */
|
||||||
|
|
||||||
#if RF230_CONF_CHECKSUM
|
#if RF230_CONF_CHECKSUM
|
||||||
|
#if FOOTER_LEN
|
||||||
} else {
|
} else {
|
||||||
DEBUGFLOW('X');
|
DEBUGFLOW('X');
|
||||||
PRINTF("bad crc");
|
PRINTF("bad crc");
|
||||||
|
@ -1198,6 +1197,7 @@ if (RF230_receive_on) {
|
||||||
len = AUX_LEN;
|
len = AUX_LEN;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef RF230BB_HOOK_RX_PACKET
|
#ifdef RF230BB_HOOK_RX_PACKET
|
||||||
RF230BB_HOOK_RX_PACKET(buf,len);
|
RF230BB_HOOK_RX_PACKET(buf,len);
|
||||||
|
@ -1254,9 +1254,10 @@ rf230_get_raw_rssi(void)
|
||||||
rssi = hal_subregister_read(SR_ED_LEVEL); //0-84, resolution 1 dB
|
rssi = hal_subregister_read(SR_ED_LEVEL); //0-84, resolution 1 dB
|
||||||
} else {
|
} else {
|
||||||
#if 0 // 3-clock shift and add is faster on machines with no hardware multiply
|
#if 0 // 3-clock shift and add is faster on machines with no hardware multiply
|
||||||
|
/* avr-gcc may have an -Os bug that uses the general subroutine for multiplying by 3 */
|
||||||
rssi = hal_subregister_read(SR_RSSI); //0-28, resolution 3 dB
|
rssi = hal_subregister_read(SR_RSSI); //0-28, resolution 3 dB
|
||||||
rssi = (rssi << 1) + rssi; //*3
|
rssi = (rssi << 1) + rssi; //*3
|
||||||
#else // Faster with 1-clock multiply. Raven and Jackdaw have 2-clock multiply so same speed while saving 2 bytes of program memory
|
#else // 1 or 2 clock multiply, or compiler with correct optimization
|
||||||
rssi = 3 * hal_subregister_read(SR_RSSI);
|
rssi = 3 * hal_subregister_read(SR_RSSI);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue