Example #1
0
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;
}
Example #2
0
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);
}
Example #3
0
int setMyAddress() {
	uint8_t addr;

	addr = config_get(CONFIG_MY_ADDR);
	tx_packet.frame[1] = addr;
	ccx_write(CCx_ADDR, addr);
	return OK;
}
Example #4
0
//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);
		}
	}
}
Example #5
0
int setAddressCheck() {
	ccx_write(CCx_PKTCTRL1, config_get(CONFIG_ADDR_CHECK) | 0x04);
	return OK;
}