From 181a70cb1f3df3075e721ea783cbc3571a80502e Mon Sep 17 00:00:00 2001 From: pascallanger Date: Tue, 16 Aug 2016 11:06:24 +0200 Subject: [PATCH] SFHSS fix? --- Multiprotocol/SFHSS_cc2500.ino | 38 +++++++++++++++++----------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/Multiprotocol/SFHSS_cc2500.ino b/Multiprotocol/SFHSS_cc2500.ino index 3984c04..b0cb911 100644 --- a/Multiprotocol/SFHSS_cc2500.ino +++ b/Multiprotocol/SFHSS_cc2500.ino @@ -27,11 +27,11 @@ uint8_t fhss_code; // 0-27 enum { - SFHSS_START = 0x101, - SFHSS_CAL = 0x102, - SFHSS_TUNE = 0x103, - SFHSS_DATA1 = 0x02, - SFHSS_DATA2 = 0x0b + SFHSS_START = 0x00, + SFHSS_CAL = 0x01, + SFHSS_DATA1 = 0x02, // do not change + SFHSS_DATA2 = 0x0B, // do not change + SFHSS_TUNE = 0x0F }; #define SFHSS_FREQ0_VAL 0xC4 @@ -82,7 +82,7 @@ static void __attribute__((unused)) SFHSS_rf_init() for (uint8_t i = 0; i < 39; ++i) CC2500_WriteReg(i, pgm_read_byte_near(&SFHSS_init_values[i])); - prev_option = option+1; + prev_option = 0; //CC2500_WriteReg(CC2500_0C_FSCTRL0, option); CC2500_SetTxRxMode(TX_EN); @@ -101,7 +101,7 @@ static void __attribute__((unused)) SFHSS_tune_chan_fast() CC2500_Strobe(CC2500_SIDLE); CC2500_WriteReg(CC2500_0A_CHANNR, rf_ch_num*6+16); CC2500_WriteRegisterMulti(CC2500_23_FSCAL3, calData[rf_ch_num], 3); - delayMicroseconds(6); + delayMicroseconds(100); //6); } #ifdef SFHSS_USE_TUNE_FREQ @@ -139,7 +139,7 @@ static void __attribute__((unused)) SFHSS_build_data_packet() { #define spacer1 0x02 //0b10 #define spacer2 (spacer1 << 4) - uint8_t ch_offset = state == SFHSS_DATA1 ? 0 : 4; + uint8_t ch_offset = phase == SFHSS_DATA1 ? 0 : 4; uint16_t ch1 = SFHSS_convert_channel(CH_AETR[ch_offset+0]); uint16_t ch2 = SFHSS_convert_channel(CH_AETR[ch_offset+1]); uint16_t ch3 = SFHSS_convert_channel(CH_AETR[ch_offset+2]); @@ -157,7 +157,7 @@ static void __attribute__((unused)) SFHSS_build_data_packet() packet[9] = (ch3 >> 1); packet[10] = (ch3 << 7) | spacer2 | ((ch4 >> 5) & 0x1F /*0b11111*/); packet[11] = (ch4 << 3) | ((fhss_code >> 2) & 0x07 /*0b111 */); - packet[12] = (fhss_code << 6) | state; + packet[12] = (fhss_code << 6) | phase; } static void __attribute__((unused)) SFHSS_send_packet() @@ -168,12 +168,12 @@ static void __attribute__((unused)) SFHSS_send_packet() uint16_t ReadSFHSS() { - switch(state) + switch(phase) { case SFHSS_START: rf_ch_num = 0; SFHSS_tune_chan(); - state = SFHSS_CAL; + phase = SFHSS_CAL; return 2000; case SFHSS_CAL: CC2500_ReadRegisterMulti(CC2500_23_FSCAL3, calData[rf_ch_num], 3); @@ -182,7 +182,7 @@ uint16_t ReadSFHSS() else { rf_ch_num = 0; - state = SFHSS_DATA1; + phase = SFHSS_DATA1; } return 2000; @@ -190,38 +190,38 @@ uint16_t ReadSFHSS() case SFHSS_DATA1: SFHSS_build_data_packet(); SFHSS_send_packet(); - state = SFHSS_DATA2; + phase = SFHSS_DATA2; return 1650; case SFHSS_DATA2: SFHSS_build_data_packet(); SFHSS_send_packet(); SFHSS_calc_next_chan(); - state = SFHSS_TUNE; + phase = SFHSS_TUNE; return 2000; case SFHSS_TUNE: #ifdef SFHSS_USE_TUNE_FREQ SFHSS_tune_freq(); #endif CC2500_SetPower(); - state = SFHSS_DATA1; + phase = SFHSS_DATA1; return 3150; /* case SFHSS_DATA1: SFHSS_build_data_packet(); SFHSS_send_packet(); - state = SFHSS_DATA2; + phase = SFHSS_DATA2; return 1650; case SFHSS_DATA2: SFHSS_build_data_packet(); SFHSS_send_packet(); - state = SFHSS_CAL2; + phase = SFHSS_CAL2; return 500; case SFHSS_CAL2: SFHSS_tune_freq(); // CC2500_SetPower(); SFHSS_calc_next_chan(); SFHSS_tune_chan(); - state = SFHSS_DATA1; + phase = SFHSS_DATA1; return 4650; */ } @@ -266,7 +266,7 @@ uint16_t initSFHSS() fhss_code=rx_tx_addr[2]%28; // Initialize it to random 0-27 inclusive SFHSS_rf_init(); - state = SFHSS_START; + phase = SFHSS_START; return 10000; }