int setRFBeeMode() { // CCx_MCSM1 is configured to have TX and RX return to proper state on completion or timeout switch (config_get(CONFIG_RFBEE_MODE)) { case TRANSMIT_MODE: ccx_strobe(CCx_SIDLE); _delay_ms(1); ccx_write(CCx_MCSM1, 0x00); //TXOFF_MODE->stay in IDLE ccx_strobe(CCx_SFTX); break; case RECEIVE_MODE: ccx_strobe(CCx_SIDLE); _delay_ms(1); ccx_write(CCx_MCSM1, 0x0C); //RXOFF_MODE->stay in RX ccx_strobe(CCx_SFRX); ccx_strobe(CCx_SRX); break; case TRANSCEIVE_MODE: ccx_strobe(CCx_SIDLE); _delay_ms(1); ccx_write(CCx_MCSM1, 0x0F); //RXOFF_MODE and TXOFF_MODE stay in RX ccx_strobe(CCx_SFTX); ccx_strobe(CCx_SFRX); ccx_strobe(CCx_SRX); break; case LOWPOWER_MODE: ccx_strobe(CCx_SIDLE); break; default: break; } return OK; }
void ccx_set_pa(uint8_t configId,uint8_t paIndex) { uint8_t PAval; PAval = pgm_read_byte(&CCx_paTable[configId][paIndex]); ccx_write(CCx_PATABLE, PAval); }
int setMyAddress() { uint8_t addr; addr = config_get(CONFIG_MY_ADDR); tx_packet.frame[1] = addr; ccx_write(CCx_ADDR, addr); return OK; }
//configure registers of cc1100 making it work in specific mode void ccx_setup(uint8_t configId) { uint8_t reg; uint8_t val; uint8_t temp; (void)temp; if (configId < CCX_NR_OF_CONFIGS) { for(uint8_t i = 0; i< CCX_NR_OF_REGISTERS; i++) { reg = pgm_read_byte(&CCx_registers[i]); val = pgm_read_byte(&CCx_registerSettings[configId][i]);//read flash data no problem temp = ccx_write(reg, val); } } }
int setAddressCheck() { ccx_write(CCx_PKTCTRL1, config_get(CONFIG_ADDR_CHECK) | 0x04); return OK; }