![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
Repository for final Beacon code of IITMSAT
Diff: BCN.cpp
- Revision:
- 23:a864d57f10c4
- Parent:
- 22:5bac883a0372
- Child:
- 24:ca96cddf25d0
--- a/BCN.cpp Sun Nov 01 08:30:56 2015 +0000 +++ b/BCN.cpp Mon Nov 02 14:09:45 2015 +0000 @@ -58,7 +58,7 @@ { //transmit short beacon and long beacon SHORT_BCN_TX(); - //LONG_BCN_TX(); + LONG_BCN_TX(); if(Check_ACK_RECEIVED() == 1) { @@ -164,7 +164,7 @@ cs = 1; //Set to Tx mode - writereg(RF22_REG_07_OPERATING_MODE1,0x09); + writereg(RF22_REG_07_OPERATING_MODE1,0x08); wait(0.1); //Check for fifoThresh while(timeout_count--)if((readreg(RF22_REG_03_INTERRUPT_STATUS1) & 0x20) == 0x20)break; @@ -193,12 +193,7 @@ { Long_beacon[i] = 0xA0; } - - - - //setModeIdle(); - writereg(RF22_REG_07_OPERATING_MODE1,0x01); //ready mode clearTxBuf(); //writing data first time cs = 0; @@ -210,7 +205,7 @@ cs = 1; //Set to Tx mode - writereg(RF22_REG_07_OPERATING_MODE1,0x09); + writereg(RF22_REG_07_OPERATING_MODE1,0x08); wait(0.1); //Check for fifoThresh @@ -271,19 +266,13 @@ writereg(RF22_REG_08_OPERATING_MODE2,0x01); writereg(RF22_REG_08_OPERATING_MODE2,0x00); } -uint8_t setFrequency(double centre,float afcPullInRange) +uint8_t setFrequency(double centre) { 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; - } + } centre /= 10.0; double integerPart = floor(centre); double fractionalPart = centre - integerPart; @@ -296,7 +285,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; } @@ -336,7 +324,7 @@ writereg(RF22_REG_0B_GPIO_CONFIGURATION0,0x15); // TX state writereg(RF22_REG_0C_GPIO_CONFIGURATION1,0x12); // RX state - setFrequency(435.0,0.05); + setFrequency(435.0); if((readreg(RF22_REG_02_DEVICE_STATUS)& 0x08)!= 0x00) { @@ -345,19 +333,7 @@ } //set Modem Configuration - writereg(RF22_REG_1C_IF_FILTER_BANDWIDTH,0xdf); - writereg(RF22_REG_1F_CLOCK_RECOVERY_GEARSHIFT_OVERRIDE,0x03); - writereg(RF22_REG_20_CLOCK_RECOVERY_OVERSAMPLING_RATE,0x39); - writereg(RF22_REG_21_CLOCK_RECOVERY_OFFSET2,0x20); - writereg(RF22_REG_22_CLOCK_RECOVERY_OFFSET1,0x68); //updated 20 to 25 reg values from excel sheet for 1.2 Khz freq. deviation,fsk - writereg(RF22_REG_23_CLOCK_RECOVERY_OFFSET0,0xdc); - writereg(RF22_REG_24_CLOCK_RECOVERY_TIMING_LOOP_GAIN1,0x00); - writereg(RF22_REG_25_CLOCK_RECOVERY_TIMING_LOOP_GAIN0,0x6B); - writereg(RF22_REG_2C_OOK_COUNTER_VALUE_1,0x2C); - writereg(RF22_REG_2D_OOK_COUNTER_VALUE_2,0x11); //not required for fsk (OOK counter value) - writereg(RF22_REG_2E_SLICER_PEAK_HOLD,0x2A); //?? writereg(RF22_REG_58,0x80); - writereg(RF22_REG_69_AGC_OVERRIDE1,0x60); //Data rate set later