Author: jaguarondi
Date: 2008-08-20 18:57:53 +0200 (Wed, 20 Aug 2008)
New Revision: 1561
Modified:
firmware/rf/trunk/defines.h
firmware/rf/trunk/init.c
firmware/rf/trunk/prot.c
firmware/rf/trunk/rf_ctrl.c
Log:
* With frequency hopping working, need to add the adaptative part now.
Modified: firmware/rf/trunk/defines.h
===================================================================
--- firmware/rf/trunk/defines.h 2008-08-20 16:51:17 UTC (rev 1560)
+++ firmware/rf/trunk/defines.h 2008-08-20 16:57:53 UTC (rev 1561)
@@ -27,13 +27,21 @@
#include <avr/interrupt.h>
#include <avr/pgmspace.h>
-//**Define the used HOPPING SCHEME**//
-//#define HOPPING
-#define NOHOPP
-#define TRX_CHANNEL 0
+/*
+ * Define the used Hopping Scheme
+ */
+#define HOPPING
+//#define NOHOPP
//#define CYCHOPP
-//**Define the used HOPPING SCHEME**//
+/* Current transmit frequency channel */
+#define TRX_CHANNEL 0
+
+/* When adaptative frequency hopping, replace the noisy channel with one up of
+ * this number */
+#define CHANNEL_JUMP 13
+
+
/* Address in EEPROM of GFCS */
#define EE_GFCS (uint8_t*)0
Modified: firmware/rf/trunk/init.c
===================================================================
--- firmware/rf/trunk/init.c 2008-08-20 16:51:17 UTC (rev 1560)
+++ firmware/rf/trunk/init.c 2008-08-20 16:57:53 UTC (rev 1561)
@@ -88,42 +88,30 @@
}
}
-//*****************************************************************************
-//* Project: RF-Firmware for ISM *
-//* Function: init_varis *
-//* Parameters: NONE *
-//* Returns: NONE *
-//* Action: init of the global variables *
-//* Duration: tbd *
-//* Size: tbd *
-//* Date: 31.01.06 *
-//* Description: global variables are init with their default values *
-//*****************************************************************************
void init_varis(void)
{
-//*****************************************************************************
-// SETUP of RF_BUFFER_TX: *
-// 0 - 5 -> Preamble *
-// 6 - 7 -> Sync *
-// 8 - 11 -> SOF *
-// 12 -> LEN *
-// 13 -> Command *
-// 14 - 30 -> Payload *
-// 31 -> Checksum *
-//*****************************************************************************
- //Default setup of the rf_buffer_tx//
- rf_buffer_tx[0] = rf_buffer_tx[1] = rf_buffer_tx[2] = 0x55 ^
SCRAMBLE_BYTE;
- rf_buffer_tx[3] = rf_buffer_tx[4] = rf_buffer_tx[5] = 0x55 ^
SCRAMBLE_BYTE;
- rf_buffer_tx[6] = rf_buffer_tx[7] = 0xFF ^ SCRAMBLE_BYTE;
- //Default setup of the rf_buffer_tx//
- /* XXX to be cleaned */
- /* TODO sof_ary can be a pointer to rf_buffer_tx[8] */
- sof_ary[0] = TRX_CHANNEL;
- sof_ary[1] = 0x56;
- sof_ary[2] = 0xFF;
- sof_ary[3] = 0x56;
- rf_buffer_tx[8]=channel;
- rf_buffer_tx[9]=sof_ary[1];
- rf_buffer_tx[10]=sof_ary[2];
- rf_buffer_tx[11]=sof_ary[3];
+/*
+ * Setup of rf_buffer_tx:
+ * 0 - 5 -> Preamble
+ * 6 - 7 -> Sync
+ * 8 - 11 -> SOF (Start Of Frame)
+ * 12 -> LEN
+ * 13 -> Command
+ * 14 - 30 -> Payload
+ * 31 -> Checksum
+ */
+ /* Preamble */
+ rf_buffer_tx[0] = rf_buffer_tx[1] = rf_buffer_tx[2] = 0x55 ^ SCRAMBLE_BYTE;
+ rf_buffer_tx[3] = rf_buffer_tx[4] = rf_buffer_tx[5] = 0x55 ^ SCRAMBLE_BYTE;
+ /* Sync */
+ rf_buffer_tx[6] = rf_buffer_tx[7] = 0xFF ^ SCRAMBLE_BYTE;
+ /* SOF (Start Of Frame) */
+ sof_ary[0] = TRX_CHANNEL;
+ sof_ary[1] = 0x56;
+ sof_ary[2] = 0xFF;
+ sof_ary[3] = 0x56;
+ rf_buffer_tx[8]=channel;
+ rf_buffer_tx[9]=sof_ary[1];
+ rf_buffer_tx[10]=sof_ary[2];
+ rf_buffer_tx[11]=sof_ary[3];
}
Modified: firmware/rf/trunk/prot.c
===================================================================
--- firmware/rf/trunk/prot.c 2008-08-20 16:51:17 UTC (rev 1560)
+++ firmware/rf/trunk/prot.c 2008-08-20 16:57:53 UTC (rev 1561)
@@ -91,16 +91,17 @@
pwr_up_atr2406();//apply power to ATR2406
wait_n_10us(4);//wait for 40us
+
//scan channel 0 for 89*2*slottime = 200ms
//scan channel 40 for 89*2*slottime = 200ms
//scan channel 80 for 89*2*slottime = 200ms
-#ifdef NOHOPP
+//#ifdef NOHOPP /* XXX think we don't need this hopping here */
channel = TRX_CHANNEL;
sof_ary[0] = TRX_CHANNEL;
-#elif
- channel = 0x00+(i*40);
- sof_ary[0] = TRX_CHANNEL;
-#endif
+//#else
+ //channel = 0x00 + i*40;
+ //sof_ary[0] = TRX_CHANNEL;
+//#endif
init_atr2406(channel,RXEN);//configure ATR2406 to desired channel
DDRD &= 0xEF;//XCK PIN set to input!!
wait_n_10us(37);//wait for 370us
Modified: firmware/rf/trunk/rf_ctrl.c
===================================================================
--- firmware/rf/trunk/rf_ctrl.c 2008-08-20 16:51:17 UTC (rev 1560)
+++ firmware/rf/trunk/rf_ctrl.c 2008-08-20 16:57:53 UTC (rev 1561)
@@ -99,7 +99,7 @@
channel = TRX_CHANNEL;
#endif
#ifdef HOPPING
- channel += channel_width;
+ channel += CHANNEL_JUMP;
if(channel > 88)
{
channel -= 89;
@@ -164,7 +164,7 @@
channel = TRX_CHANNEL;
#endif
#ifdef HOPPING
- channel += channel_width;
+ channel += CHANNEL_JUMP;
if(channel > 88)
{
channel -= 89;
@@ -184,13 +184,13 @@
OCR1A = OCR1A+T_LOOP_RX;
//PIN configuration for input or output
DDRD = DDRD&0xEF;//XCK PIN set to input!!
+ //Setup SOFs!!
+ sof_ary[0] = channel;
break;
case 0x03:
/* Start receiving. */
OCR1A = OCR1A+T_RX_ON;
set_rxon();//power up RF-Chip in receive mode
- //Setup SOFs!!
- sof_ary[0] = channel;
break;
case 0x04:
/* Used to resync probably. */
@@ -216,6 +216,7 @@
TCCR1B = 0x02; /* sys_clk/8 ==> 1 click = 578,704ns */
TIFR1 = 0x02; /* Clear all flags */
TIMSK1 = 0x02; /* Enable compare A IRQ */
+ rf_state = 0;
}
static void stop_rf_timer(void)
@@ -244,6 +245,7 @@
TIFR1 = 0x02;
TIMSK1 = 0x00;
TCCR1B = 0x03;//divide by defined prescaler
+ rf_state = 0;
}
//*****************************************************************************
//* Project: RF-Firmware for ISM *
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Tux-droid-svn mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/tux-droid-svn