#2894 - Crossfire (inverted serial) sent on S.PORT pin in the module bay (ported from master f7044a20ec)

16 channels sent every 2.5ms now @ 200KBauds with CRC
This commit is contained in:
Damjan Adamic
2015-12-20 17:10:32 +01:00
parent e8983250ca
commit 91e80d446a
31 changed files with 435 additions and 92 deletions
+27
View File
@@ -98,6 +98,11 @@ void setupPulses(unsigned int port)
}
}
break;
#endif
#if defined(PCBTARANIS) && defined(CROSSFIRE)
case MODULE_TYPE_CROSSFIRE:
required_protocol = PROTO_CROSSFIRE;
break;
#endif
default:
required_protocol = PROTO_NONE;
@@ -129,6 +134,11 @@ void setupPulses(unsigned int port)
case PROTO_DSM2_DSMX:
disable_dsm2(port);
break;
#endif
#if defined(CROSSFIRE)
case PROTO_CROSSFIRE:
disable_crossfire(port);
break;
#endif
case PROTO_PPM:
disable_ppm(port);
@@ -150,10 +160,16 @@ void setupPulses(unsigned int port)
case PROTO_DSM2_DSMX:
init_dsm2(port);
break;
#endif
#if defined(CROSSFIRE)
case PROTO_CROSSFIRE:
init_crossfire(port);
break;
#endif
case PROTO_PPM:
init_ppm(port);
break;
default:
init_no_pulses(port);
break;
@@ -171,6 +187,17 @@ void setupPulses(unsigned int port)
case PROTO_DSM2_DSMX:
setupPulsesDSM2(port);
break;
#endif
#if defined(CROSSFIRE)
case PROTO_CROSSFIRE:
{
if (telemetryProtocol == PROTOCOL_PULSES_CROSSFIRE) {
uint8_t * crossfire = modulePulsesData[port].crossfire.pulses;
createCrossfireFrame(crossfire, &channelOutputs[g_model.moduleData[port].channelsStart]);
sportSendBuffer(crossfire, CROSSFIRE_FRAME_LEN);
}
break;
}
#endif
case PROTO_PPM:
setupPulsesPPM(port);