HoTT: added support for 16 channels (previously 12)

This commit is contained in:
Pascal Langer 2020-12-13 22:56:47 +01:00
parent 5f0ed395ba
commit 37a06c050d
2 changed files with 12 additions and 6 deletions

View File

@ -172,10 +172,11 @@ static void __attribute__((unused)) HOTT_init()
static void __attribute__((unused)) HOTT_prep_data_packet() static void __attribute__((unused)) HOTT_prep_data_packet()
{ {
static uint8_t upper=0;
packet[2] = hopping_frequency_no; packet[2] = hopping_frequency_no;
packet[3] = 0x00; // used for failsafe but may also be used for additional channels packet[3] = upper; // used for failsafe and upper channels (only supporting 16 channels)
#ifdef FAILSAFE_ENABLE #ifdef FAILSAFE_ENABLE
static uint8_t failsafe_count=0; static uint8_t failsafe_count=0;
if(IS_FAILSAFE_VALUES_on && IS_BIND_DONE) if(IS_FAILSAFE_VALUES_on && IS_BIND_DONE)
@ -195,13 +196,16 @@ static void __attribute__((unused)) HOTT_prep_data_packet()
uint16_t val; uint16_t val;
for(uint8_t i=4;i<28;i+=2) for(uint8_t i=4;i<28;i+=2)
{ {
val=Channel_data[(i-4)>>1]; uint8_t ch=(i-4)>>1;
if(upper && ch >= 8)
ch+=4; // when upper swap CH9..CH12 by CH13..16
val=Channel_data[ch];
val=(((val<<2)+val)>>2)+860*2; // value range 860<->2140 *2 <-> -125%<->+125% val=(((val<<2)+val)>>2)+860*2; // value range 860<->2140 *2 <-> -125%<->+125%
#ifdef FAILSAFE_ENABLE #ifdef FAILSAFE_ENABLE
if(failsafe_count==1) if(failsafe_count==1)
{ // first failsafe packet { // first failsafe packet
packet[3]=0x40; packet[3] |= 0x40;
uint16_t fs=Failsafe_data[(i-4)>>1]; uint16_t fs=Failsafe_data[ch];
if( fs == FAILSAFE_CHANNEL_HOLD || fs == FAILSAFE_CHANNEL_NOPULSES) if( fs == FAILSAFE_CHANNEL_HOLD || fs == FAILSAFE_CHANNEL_NOPULSES)
val|=0x8000; // channel hold flag val|=0x8000; // channel hold flag
else else
@ -212,7 +216,7 @@ static void __attribute__((unused)) HOTT_prep_data_packet()
} }
else if(failsafe_count==2) else if(failsafe_count==2)
{ // second failsafe packet=timing? { // second failsafe packet=timing?
packet[3]=0x50; packet[3] |= 0x50;
if(i==4) if(i==4)
val=2; val=2;
else else
@ -222,6 +226,8 @@ static void __attribute__((unused)) HOTT_prep_data_packet()
packet[i] = val; packet[i] = val;
packet[i+1] = val>>8; packet[i+1] = val>>8;
} }
upper ^= 0x01; // toggle between CH9..CH12 and CH13..16
#ifdef HOTT_FW_TELEMETRY #ifdef HOTT_FW_TELEMETRY
if(IS_BIND_DONE) if(IS_BIND_DONE)
{ {

View File

@ -19,7 +19,7 @@
#define VERSION_MAJOR 1 #define VERSION_MAJOR 1
#define VERSION_MINOR 3 #define VERSION_MINOR 3
#define VERSION_REVISION 1 #define VERSION_REVISION 1
#define VERSION_PATCH_LEVEL 81 #define VERSION_PATCH_LEVEL 82
//****************** //******************
// Protocols // Protocols