static u16 frsky_cb() { if (state < FRSKY_BIND_DONE) { build_bind_packet_1way(); CC2500_Strobe(CC2500_SIDLE); CC2500_WriteReg(CC2500_0A_CHANNR, 0x00); CC2500_WriteData(packet, packet[0]+1); state++; return 53460; } if (state == FRSKY_BIND_DONE) { state++; PROTOCOL_SetBindState(0); } if (state >= FRSKY_DATA1) { u8 chan = calc_channel(); CC2500_Strobe(CC2500_SIDLE); CC2500_WriteReg(CC2500_0A_CHANNR, chan * 5 + 6); build_data_packet_1way(); CC2500_WriteData(packet, packet[0]+1); state++; if (state > FRSKY_DATA5) state = FRSKY_DATA1; return 9006; } return 0; }
MODULE_CALLTYPE static u16 corona_cb() { // Tune frequency if it has been changed if (fine != (s8)Model.proto_opts[PROTO_OPTS_FREQFINE]) { fine = (s8)Model.proto_opts[PROTO_OPTS_FREQFINE]; CC2500_WriteReg(CC2500_0C_FSCTRL0, fine); } if (bind_counter) { if (bind_counter-- == 0) PROTOCOL_SetBindState(0); packet_period = CORONA_build_bind_pkt(); } else { packet_period = CORONA_build_packet(); } // Send packet CC2500_WriteData(packet, packet[0]+2); return packet_period; }