1
0
Fork 0
mirror of https://github.com/betaflight/betaflight.git synced 2025-07-26 01:35:41 +03:00

Added a condition for enabling OSD task

This commit is contained in:
Andrey Mironov 2018-07-24 11:54:37 +03:00
parent 0115ff15b2
commit 65bff6b7d7
6 changed files with 18 additions and 5 deletions

View file

@ -265,7 +265,7 @@ void fcTasksInit(void)
#endif #endif
#ifdef USE_OSD_SLAVE #ifdef USE_OSD_SLAVE
setTaskEnabled(TASK_OSD_SLAVE, true); setTaskEnabled(TASK_OSD_SLAVE, osdSlaveInitialized());
#else #else
if (sensors(SENSOR_GYRO)) { if (sensors(SENSOR_GYRO)) {
rescheduleTask(TASK_GYROPID, gyro.targetLooptime); rescheduleTask(TASK_GYROPID, gyro.targetLooptime);
@ -319,7 +319,7 @@ void fcTasksInit(void)
setTaskEnabled(TASK_TRANSPONDER, feature(FEATURE_TRANSPONDER)); setTaskEnabled(TASK_TRANSPONDER, feature(FEATURE_TRANSPONDER));
#endif #endif
#ifdef USE_OSD #ifdef USE_OSD
setTaskEnabled(TASK_OSD, feature(FEATURE_OSD)); setTaskEnabled(TASK_OSD, feature(FEATURE_OSD) && osdInitialized());
#endif #endif
#ifdef USE_BST #ifdef USE_BST
setTaskEnabled(TASK_BST_MASTER_PROCESS, true); setTaskEnabled(TASK_BST_MASTER_PROCESS, true);

View file

@ -166,12 +166,13 @@ static const displayPortVTable_t max7456VTable = {
displayPort_t *max7456DisplayPortInit(const vcdProfile_t *vcdProfile) displayPort_t *max7456DisplayPortInit(const vcdProfile_t *vcdProfile)
{ {
if (
#ifdef USE_OSD_SLAVE #ifdef USE_OSD_SLAVE
if (!max7456Init(max7456Config(), vcdProfile, false)) !max7456Init(max7456Config(), vcdProfile, false)
#else #else
if (!max7456Init(max7456Config(), vcdProfile, systemConfig()->cpu_overclock)) !max7456Init(max7456Config(), vcdProfile, systemConfig()->cpu_overclock)
#endif #endif
{ ) {
return NULL; return NULL;
} }

View file

@ -1131,6 +1131,11 @@ void osdInit(displayPort_t *osdDisplayPortToUse)
resumeRefreshAt = micros() + (4 * REFRESH_1S); resumeRefreshAt = micros() + (4 * REFRESH_1S);
} }
bool osdInitialized(void)
{
return osdDisplayPort;
}
void osdUpdateAlarms(void) void osdUpdateAlarms(void)
{ {
// This is overdone? // This is overdone?

View file

@ -201,6 +201,7 @@ extern timeUs_t resumeRefreshAt;
struct displayPort_s; struct displayPort_s;
void osdInit(struct displayPort_s *osdDisplayPort); void osdInit(struct displayPort_s *osdDisplayPort);
bool osdInitialized(void);
void osdResetAlarms(void); void osdResetAlarms(void);
void osdUpdate(timeUs_t currentTimeUs); void osdUpdate(timeUs_t currentTimeUs);
void osdStatSetState(uint8_t statIndex, bool enabled); void osdStatSetState(uint8_t statIndex, bool enabled);

View file

@ -120,6 +120,11 @@ void osdSlaveInit(displayPort_t *osdDisplayPortToUse)
displayResync(osdDisplayPort); displayResync(osdDisplayPort);
} }
bool osdSlaveInitialized(void)
{
return osdDisplayPort;
}
bool osdSlaveCheck(timeUs_t currentTimeUs, timeDelta_t currentDeltaTimeUs) bool osdSlaveCheck(timeUs_t currentTimeUs, timeDelta_t currentDeltaTimeUs)
{ {
UNUSED(currentTimeUs); UNUSED(currentTimeUs);

View file

@ -29,6 +29,7 @@ extern bool osdSlaveIsLocked;
// init // init
void osdSlaveInit(struct displayPort_s *osdDisplayPort); void osdSlaveInit(struct displayPort_s *osdDisplayPort);
bool osdSlaveInitialized(void);
// task api // task api
bool osdSlaveCheck(timeUs_t currentTimeUs, timeDelta_t currentDeltaTimeUs); bool osdSlaveCheck(timeUs_t currentTimeUs, timeDelta_t currentDeltaTimeUs);