Browse Source

Merge pull request #2 from dustin/master

Use a fixed RSSI percentage range.
readerror67 9 years ago
parent
commit
bc040e46d4
1 changed files with 15 additions and 19 deletions
  1. 15
    19
      frsky_arduino_rx_complete.ino

+ 15
- 19
frsky_arduino_rx_complete.ino View File

13
 #include <EEPROM.h>
13
 #include <EEPROM.h>
14
 #include "iface_cc2500.h"
14
 #include "iface_cc2500.h"
15
 //#define DEBUG
15
 //#define DEBUG
16
+//#define DEBUG_RSSI
16
 //#define DEBUG0
17
 //#define DEBUG0
17
 //#define DEBUG1
18
 //#define DEBUG1
18
 //#define DEBUG2
19
 //#define DEBUG2
30
 
31
 
31
 // Used for RSSI_OVER_PPM
32
 // Used for RSSI_OVER_PPM
32
 int rssi;
33
 int rssi;
33
-int rssi_min = -114;
34
-int rssi_max = -79;
34
+const int rssi_offset = 71;
35
+const int rssi_min = -103;
36
+const int rssi_max = -96;
35
 
37
 
36
 #define chanel_number 8  //set the number of chanels
38
 #define chanel_number 8  //set the number of chanels
37
 #define SEEK_CHANSKIP   13
39
 #define SEEK_CHANSKIP   13
192
 
194
 
193
 void updateRSSI() {
195
 void updateRSSI() {
194
 #if defined(RSSI_OVER_PPM)
196
 #if defined(RSSI_OVER_PPM)
195
-    rssi = cc2500_readReg(CC2500_34_RSSI | CC2500_READ_BURST);
196
-    if (rssi < 128) {
197
-        rssi = ((rssi / 2) - 74) & 0x7f;
197
+    int rssi_dec = cc2500_readReg(CC2500_34_RSSI | CC2500_READ_BURST);
198
+    if (rssi_dec < 128) {
199
+        rssi = ((rssi_dec / 2) - rssi_offset) & 0x7f;
198
     } else {
200
     } else {
199
-        rssi = (((rssi - 256) / 2)) - 74;
200
-    }
201
-    int old_rssi_min = rssi_min;
202
-    int old_rssi_max = rssi_max;
203
-    rssi_min = min(rssi_min, rssi);
204
-    rssi_max = max(rssi_max, rssi);
205
-  #if defined(DEBUG)
206
-    if (rssi_min != old_rssi_min || rssi_max != old_rssi_max) {
207
-        Serial.print("RSSI: ");
208
-        Serial.print(rssi);
209
-        Serial.print(", min=");
210
-        Serial.print(rssi_min);
211
-        Serial.print(", max=");
212
-        Serial.println(rssi_max);
201
+        rssi = (((rssi_dec - 256) / 2)) - rssi_offset;
213
     }
202
     }
203
+
204
+  #if defined(DEBUG_RSSI2)
205
+    Serial.print(millis());
206
+    Serial.print("\t");
207
+    Serial.println(rssi);
214
   #endif
208
   #endif
209
+
210
+    rssi = constrain(rssi, rssi_min, rssi_max);
215
 #endif
211
 #endif
216
 }
212
 }
217
 
213
 

Loading…
Cancel
Save