1
0
Fork 0
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:
Hydra 2017-04-01 18:33:18 +01:00 committed by jflyper
parent d8ff795327
commit 72e67a882c
4 changed files with 13 additions and 9 deletions

View file

@ -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);

View file

@ -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);

View file

@ -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;
}

View file

@ -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;