1
0
Fork 0
mirror of https://github.com/opentx/opentx.git synced 2025-07-17 13:25:20 +03:00

Heartbeat used on X10

This commit is contained in:
Bertrand Songis 2019-07-16 09:42:49 +02:00
parent a6fdaa290e
commit e0214ee51b
No known key found for this signature in database
GPG key ID: F189F79290FEC50F
5 changed files with 14 additions and 6 deletions

View file

@ -311,7 +311,9 @@ void setupPulsesInternalModule(uint8_t protocol)
#if defined(PXX1) && defined(INTMODULE_USART) #if defined(PXX1) && defined(INTMODULE_USART)
case PROTOCOL_CHANNELS_PXX1_SERIAL: case PROTOCOL_CHANNELS_PXX1_SERIAL:
intmodulePulsesData.pxx_uart.setupFrame(INTERNAL_MODULE); intmodulePulsesData.pxx_uart.setupFrame(INTERNAL_MODULE);
#if !defined(INTMODULE_HEARTBEAT)
scheduleNextMixerCalculation(INTERNAL_MODULE, INTMODULE_PXX1_SERIAL_PERIOD); scheduleNextMixerCalculation(INTERNAL_MODULE, INTMODULE_PXX1_SERIAL_PERIOD);
#endif
break; break;
#endif #endif

View file

@ -39,7 +39,7 @@ void init_intmodule_heartbeat()
EXTI_StructInit(&EXTI_InitStructure); EXTI_StructInit(&EXTI_InitStructure);
EXTI_InitStructure.EXTI_Line = INTMODULE_HEARTBEAT_EXTI_LINE; EXTI_InitStructure.EXTI_Line = INTMODULE_HEARTBEAT_EXTI_LINE;
EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt; EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling; EXTI_InitStructure.EXTI_Trigger = INTMODULE_HEARTBEAT_TRIGGER;
EXTI_InitStructure.EXTI_LineCmd = ENABLE; EXTI_InitStructure.EXTI_LineCmd = ENABLE;
EXTI_Init(&EXTI_InitStructure); EXTI_Init(&EXTI_InitStructure);
@ -60,7 +60,7 @@ void stop_intmodule_heartbeat()
EXTI_StructInit(&EXTI_InitStructure); EXTI_StructInit(&EXTI_InitStructure);
EXTI_InitStructure.EXTI_Line = INTMODULE_HEARTBEAT_EXTI_LINE; EXTI_InitStructure.EXTI_Line = INTMODULE_HEARTBEAT_EXTI_LINE;
EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt; EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling; EXTI_InitStructure.EXTI_Trigger = INTMODULE_HEARTBEAT_TRIGGER;
EXTI_InitStructure.EXTI_LineCmd = DISABLE; EXTI_InitStructure.EXTI_LineCmd = DISABLE;
EXTI_Init(&EXTI_InitStructure); EXTI_Init(&EXTI_InitStructure);
} }
@ -68,7 +68,7 @@ void stop_intmodule_heartbeat()
void check_intmodule_heartbeat() void check_intmodule_heartbeat()
{ {
if (EXTI_GetITStatus(INTMODULE_HEARTBEAT_EXTI_LINE) != RESET) { if (EXTI_GetITStatus(INTMODULE_HEARTBEAT_EXTI_LINE) != RESET) {
#if defined(PXX2) #if defined(INTMODULE_USART)
heartbeatCapture.timestamp = RTOS_GET_MS(); heartbeatCapture.timestamp = RTOS_GET_MS();
#else #else
heartbeatCapture.timestamp = getTmr2MHz(); heartbeatCapture.timestamp = getTmr2MHz();

View file

@ -628,7 +628,7 @@
#define EXTMODULE_DMA_FLAG_TC DMA_IT_TCIF7 #define EXTMODULE_DMA_FLAG_TC DMA_IT_TCIF7
#endif #endif
// Heartbeat (not used) // Heartbeat
#define INTMODULE_HEARTBEAT #define INTMODULE_HEARTBEAT
#define INTMODULE_HEARTBEAT_RCC_AHB1Periph RCC_AHB1Periph_GPIOD #define INTMODULE_HEARTBEAT_RCC_AHB1Periph RCC_AHB1Periph_GPIOD
#define INTMODULE_HEARTBEAT_GPIO GPIOD #define INTMODULE_HEARTBEAT_GPIO GPIOD
@ -638,6 +638,11 @@
#define INTMODULE_HEARTBEAT_EXTI_LINE EXTI_Line12 #define INTMODULE_HEARTBEAT_EXTI_LINE EXTI_Line12
#define INTMODULE_HEARTBEAT_EXTI_IRQn EXTI15_10_IRQn #define INTMODULE_HEARTBEAT_EXTI_IRQn EXTI15_10_IRQn
#define INTMODULE_HEARTBEAT_REUSE_INTERRUPT_ROTARY_ENCODER #define INTMODULE_HEARTBEAT_REUSE_INTERRUPT_ROTARY_ENCODER
#if defined(PXX2)
#define INTMODULE_HEARTBEAT_TRIGGER EXTI_Trigger_Falling
#else
#define INTMODULE_HEARTBEAT_TRIGGER EXTI_Trigger_Rising
#endif
// Trainer Port // Trainer Port
#define TRAINER_RCC_AHB1Periph (RCC_AHB1Periph_GPIOB | RCC_AHB1Periph_GPIOC | RCC_AHB1Periph_DMA1) #define TRAINER_RCC_AHB1Periph (RCC_AHB1Periph_GPIOB | RCC_AHB1Periph_GPIOC | RCC_AHB1Periph_DMA1)

View file

@ -1183,6 +1183,7 @@
#endif #endif
// Heartbeat for iXJT / ISRM synchro // Heartbeat for iXJT / ISRM synchro
#define INTMODULE_HEARTBEAT_TRIGGER EXTI_Trigger_Falling
#if defined(PCBXLITE) #if defined(PCBXLITE)
#define INTMODULE_HEARTBEAT #define INTMODULE_HEARTBEAT
#define INTMODULE_HEARTBEAT_RCC_AHB1Periph RCC_AHB1Periph_GPIOD #define INTMODULE_HEARTBEAT_RCC_AHB1Periph RCC_AHB1Periph_GPIOD

View file

@ -141,8 +141,8 @@ TASK_FUNCTION(mixerTask)
run = true; run = true;
} }
#if defined(PXX2) && defined(INTMODULE_HEARTBEAT) #if defined(INTMODULE_USART) && defined(INTMODULE_HEARTBEAT)
if (moduleState[INTERNAL_MODULE].protocol == PROTOCOL_CHANNELS_PXX2_HIGHSPEED && heartbeatCapture.valid && heartbeatCapture.timestamp > lastRunTime) { if ((moduleState[INTERNAL_MODULE].protocol == PROTOCOL_CHANNELS_PXX2_HIGHSPEED || moduleState[INTERNAL_MODULE].protocol == PROTOCOL_CHANNELS_PXX1_SERIAL) && heartbeatCapture.valid && heartbeatCapture.timestamp > lastRunTime) {
run = true; run = true;
} }
#endif #endif