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

Reply via email to