Final Beacon code for testing

Dependencies:   mbed

Revision:
2:44b63c859531
Parent:
1:8b18c140a710
--- a/main.cpp	Mon Oct 05 17:15:24 2015 +0000
+++ b/main.cpp	Thu Oct 22 04:47:07 2015 +0000
@@ -6,6 +6,7 @@
 SPI spi(D11, D12, D13);              // mosi, miso, sclk
 DigitalOut cs(D10);                //slave select or chip select
 
+int once = 1;
 Timer t;
 
 void P_BCN_INIT()
@@ -32,7 +33,8 @@
         {
             pc.printf("line 33");
             //Measure and store BCN temperature in BCN_TS_BUFFER
-            BCN_TS_BUFFER = ((check_Temperature())*0.5) - 64;
+            BCN_TS_BUFFER = check_Temperature();
+            pc.printf("\n\ntemperature = %d\n\n",BCN_TS_BUFFER);
             pc.printf("line 36");
             //Get BCN_HK data from BCN HW(SPI) //Store BCN_HK data in BCN_HK_BUFFER
             if(BCN_STANDBY == 1 )
@@ -48,12 +50,13 @@
                 //pc.printf("in BCN_TX_STANDBY != 1\r\n");
                 pc.printf("line 49");
                     t.start();
-                    int begin = t.read();
-                    pc.printf("line 52");
+                    int begin = t.read_us();
+                    //pc.printf("line 52");
                     SHORT_BCN_TX();
                     LONG_BCN_TX();
-                    pc.printf("line 55");
-                    int end = t.read();
+                    //pc.printf("line 55");
+                    t.stop();
+                    int end = t.read_us();
                     pc.printf("The time required for short and long is %d seconds\r\n", end-begin);
                     pc.printf("Short and Long packets sent\r\n");
                     //include LONG_BCN_TX also
@@ -95,19 +98,16 @@
 }
 
 int check_Temperature()
-{
+{   
     int temperature;
-    while((readreg(RF22_REG_0F_ADC_CONFIGURATION) && 0x80) == 0x0)
-    {
-        writereg(RF22_REG_0F_ADC_CONFIGURATION,128);            //128 = 10000000
-        writereg(RF22_REG_12_Temperature_Sensor_Calibration,32); //160 == 10100000 32 == 00100000
-        wait(1);
-        temperature = readreg(RF22_REG_11_ADC_Value);
-        //pc.printf("Temperature: %d\r\n", temperature);
-    }
+    //P_BCN_INIT();
+    writereg(RF22_REG_0F_ADC_CONFIGURATION,0x80);            //128 = 10000000
+    writereg(RF22_REG_12_Temperature_Sensor_Calibration,0x20); //160 == 10100000 32 == 00100000
+    wait(1);
+    temperature = readreg(RF22_REG_11_ADC_Value);
+    temperature = (float)temperature*0.5 - 64;
     return temperature;
 }
-
 void SHORT_BCN_TX()
 {
     writereg(RF22_REG_6E_TX_DATA_RATE,0x01);
@@ -151,10 +151,8 @@
     pc.printf("line 151");
     for (int byte_counter = 0; byte_counter <15 ; byte_counter++)
     {
-        pc.printf("%d byte counter\n", byte_counter);
         for(int j = 3; j >= 0 ; j--)
         {
-            pc.printf("%d j \n", j);
             if((short_beacon[byte_counter] & (uint8_t) pow(2.0,(j*2+1)))!= pow(2.0,(j*2+1)))
             {
                 byte=0x00;
@@ -254,31 +252,20 @@
     writereg(RF22_REG_08_OPERATING_MODE2,0x01);
     writereg(RF22_REG_08_OPERATING_MODE2,0x00);
 }
-void clearRxBuf()
-{
-    writereg(RF22_REG_08_OPERATING_MODE2,0x02);
-    writereg(RF22_REG_08_OPERATING_MODE2,0x00);
-}
-int setFrequency(float centre,float afcPullInRange)
+int setFrequency(double centre)
 {
     //freq setting begins 
     uint8_t fbsel = 0x40;
-    uint8_t afclimiter;
     if (centre >= 480.0)
     {
         centre /= 2;
         fbsel |= 0x20;
-        afclimiter = afcPullInRange * 1000000.0 / 1250.0;
     }
     else
-    {
-        if (afcPullInRange < 0.0 || afcPullInRange > 0.159375)
-            return false;
-        afclimiter = afcPullInRange * 1000000.0 / 625.0;
-    }
+    return false;
     centre /= 10.0;
-    float integerPart = floor(centre);
-    float fractionalPart = centre - integerPart;
+    double integerPart = floor(centre);
+    double fractionalPart = centre - integerPart;
  
     uint8_t fb = (uint8_t)integerPart - 24; // Range 0 to 23
     fbsel |= fb;
@@ -288,7 +275,6 @@
     writereg(RF22_REG_75_FREQUENCY_BAND_SELECT, fbsel);
     writereg(RF22_REG_76_NOMINAL_CARRIER_FREQUENCY1, fc >> 8);
     writereg(RF22_REG_77_NOMINAL_CARRIER_FREQUENCY0, fc & 0xff);
-    writereg(RF22_REG_2A_AFC_LIMITER, afclimiter);
     return 0;
 }
 
@@ -310,9 +296,7 @@
     writereg(RF22_REG_07_OPERATING_MODE1,0x80);        //sw_reset
     wait(1);                    //takes time to reset                                  
 
-    clearTxBuf();                                                             
-    
-    clearRxBuf();//may not be required                                                             
+    clearTxBuf();                                                                                                                         
     
     //txfifoalmostempty
     writereg(RF22_REG_7D_TX_FIFO_CONTROL2,10);
@@ -332,7 +316,7 @@
     // spiWrite(RF22_REG_05_INTERRUPT_ENABLE1, RF22_ENTXFFAEM |RF22_ENRXFFAFULL | RF22_ENPKSENT |RF22_ENPKVALID| RF22_ENCRCERROR);
     // spiWrite(RF22_REG_06_INTERRUPT_ENABLE2, RF22_ENPREAVAL);
 
-    setFrequency(435.0, 0.05);
+    setFrequency(435.0);
 
     //This may not be required
     if((readreg(RF22_REG_02_DEVICE_STATUS)& 0x08)!= 0x00)
@@ -411,15 +395,21 @@
         
     P_BCN_FEN();
     
+    
     P_BCN_TX_MAIN();
     
+    
     t.stop();
+    
+    
     while(1)
     {
-    
-    temp = check_Temperature();
-    final_temp = (float)temp*0.5 - 64;
-    pc.printf("final temp = %d\r\n", final_temp);}
+    P_BCN_TX_MAIN();
+    //temp = check_Temperature();
+//    final_temp = (float)temp*0.5 - 64;
+//    P_BCN_INIT();
+//    pc.printf("final temp = %d\r\n", final_temp); 
+    }
     //while(1)
 //    {
 //        temp = check_Temperature();