mirror of
https://github.com/betaflight/betaflight.git
synced 2025-07-19 14:25:20 +03:00
Cherry-pick 0e6e19c
(without fc_msp.c)
This commit is contained in:
parent
d8ff795327
commit
72e67a882c
4 changed files with 13 additions and 9 deletions
|
@ -151,7 +151,7 @@ void transponderIrHardwareInit(ioTag_t ioTag, transponder_t *transponder)
|
|||
DMA_ITConfig(dmaRef, DMA_IT_TC, ENABLE);
|
||||
}
|
||||
|
||||
bool transponderIrInit(const TransponderProvider* transponderProvider)
|
||||
bool transponderIrInit(const transponderProvider_e provider)
|
||||
{
|
||||
ioTag_t ioTag = IO_TAG_NONE;
|
||||
for (int i = 0; i < USABLE_TIMER_CHANNEL_COUNT; i++) {
|
||||
|
@ -165,14 +165,15 @@ bool transponderIrInit(const TransponderProvider* transponderProvider)
|
|||
return false;
|
||||
}
|
||||
|
||||
uint8_t transponderProviderLocal = *transponderProvider;
|
||||
switch(transponderProviderLocal){
|
||||
switch (provider) {
|
||||
case ARCITIMER:
|
||||
transponderIrInitArcitimer(&transponder);
|
||||
break;
|
||||
case ILAP:
|
||||
transponderIrInitIlap(&transponder);
|
||||
break;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
|
||||
transponderIrHardwareInit(ioTag, &transponder);
|
||||
|
|
|
@ -79,16 +79,17 @@ typedef struct transponder_s {
|
|||
const struct transponderVTable *vTable;
|
||||
} transponder_t;
|
||||
|
||||
typedef enum TransponderProvider{
|
||||
typedef enum {
|
||||
NONE,
|
||||
ARCITIMER,
|
||||
ILAP
|
||||
} TransponderProvider;
|
||||
} transponderProvider_e;
|
||||
|
||||
struct transponderVTable {
|
||||
void (*updateTransponderDMABuffer)(transponder_t *transponder, const uint8_t* transponderData);
|
||||
};
|
||||
|
||||
bool transponderIrInit(const TransponderProvider* transponderProvider);
|
||||
bool transponderIrInit(const transponderProvider_e provider);
|
||||
void transponderIrDisable(void);
|
||||
|
||||
void transponderIrHardwareInit(ioTag_t ioTag, transponder_t *transponder);
|
||||
|
|
|
@ -39,8 +39,9 @@
|
|||
PG_REGISTER_WITH_RESET_TEMPLATE(transponderConfig_t, transponderConfig, PG_TRANSPONDER_CONFIG, 0);
|
||||
|
||||
PG_RESET_TEMPLATE(transponderConfig_t, transponderConfig,
|
||||
.provider = ILAP,
|
||||
.reserved = 0,
|
||||
.data = { 0x12, 0x34, 0x56, 0x78, 0x9A, 0xBC, 0x0, 0x0, 0x0 }, // Note, this is NOT a valid transponder code, it's just for testing production hardware
|
||||
.provider = ILAP
|
||||
);
|
||||
|
||||
static bool transponderInitialised = false;
|
||||
|
@ -85,7 +86,7 @@ void transponderUpdate(timeUs_t currentTimeUs)
|
|||
|
||||
void transponderInit(void)
|
||||
{
|
||||
transponderInitialised = transponderIrInit(&(transponderConfig()->provider));
|
||||
transponderInitialised = transponderIrInit(transponderConfig()->provider);
|
||||
if (!transponderInitialised) {
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -21,7 +21,8 @@
|
|||
#include "config/parameter_group.h"
|
||||
|
||||
typedef struct transponderConfig_s {
|
||||
TransponderProvider provider;
|
||||
transponderProvider_e provider;
|
||||
uint8_t reserved;
|
||||
uint8_t data[9];
|
||||
} transponderConfig_t;
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue