diff --git a/radio/src/gui/128x64/view_statistics.cpp b/radio/src/gui/128x64/view_statistics.cpp index 163a99743..4e132a1eb 100644 --- a/radio/src/gui/128x64/view_statistics.cpp +++ b/radio/src/gui/128x64/view_statistics.cpp @@ -184,18 +184,18 @@ void menuStatisticsDebug(event_t event) #if defined(COPROCESSOR) lcdDrawTextAlignedLeft(y, STR_COPROC_TEMP); - if (Coproc_read==0) { + if (coprocData.read==0) { lcdDrawText(MENU_DEBUG_COL1_OFS, y, "Co Proc NACK",INVERS); } - else if (Coproc_read==0x81) { + else if (coprocData.read==0x81) { lcdDrawText(MENU_DEBUG_COL1_OFS, y, "Inst.TinyApp",INVERS); } - else if (Coproc_read<3) { + else if (coprocData.read<3) { lcdDrawText(MENU_DEBUG_COL1_OFS, y, "Upgr.TinyApp",INVERS); } else { - drawValueWithUnit(MENU_DEBUG_COL1_OFS, y, Coproc_temp, UNIT_TEMPERATURE, LEFT); - drawValueWithUnit(MENU_DEBUG_COL2_OFS, y, Coproc_maxtemp, UNIT_TEMPERATURE, LEFT); + drawValueWithUnit(MENU_DEBUG_COL1_OFS, y, coprocData.temp, UNIT_TEMPERATURE, LEFT); + drawValueWithUnit(MENU_DEBUG_COL2_OFS, y, coprocData.maxtemp, UNIT_TEMPERATURE, LEFT); } y += FH; #endif diff --git a/radio/src/gui/common/stdlcd/radio_version.cpp b/radio/src/gui/common/stdlcd/radio_version.cpp index 068879c9e..ce6e30e59 100644 --- a/radio/src/gui/common/stdlcd/radio_version.cpp +++ b/radio/src/gui/common/stdlcd/radio_version.cpp @@ -241,8 +241,8 @@ void menuRadioVersion(event_t event) #if defined(COPROCESSOR) lcdDrawText(FW, y, "COPR\037\033: ", SMLSIZE); - if (Coproc_valid == 1) - lcdDrawNumber(lcdNextPos, y, Coproc_read, SMLSIZE); + if (coprocData.valid == 1) + lcdDrawNumber(lcdNextPos, y, coprocData.read, SMLSIZE); else lcdDrawText(lcdNextPos, y, "---", SMLSIZE); y += FH - 1; diff --git a/radio/src/simu.cpp b/radio/src/simu.cpp index 848d25bc5..b92e16dab 100644 --- a/radio/src/simu.cpp +++ b/radio/src/simu.cpp @@ -360,8 +360,8 @@ long OpenTxSim::onTimeout(FXObject*, FXSelector, void*) { if (hasFocus()) { #if defined(COPROCESSOR) - Coproc_temp = 23; - Coproc_maxtemp = 28; + coprocData.temp = 23; + coprocData.maxtemp = 28; #endif updateKeysAndSwitches(); diff --git a/radio/src/targets/simu/simpgmspace.cpp b/radio/src/targets/simu/simpgmspace.cpp index d9228898f..f639fb961 100644 --- a/radio/src/targets/simu/simpgmspace.cpp +++ b/radio/src/targets/simu/simpgmspace.cpp @@ -742,6 +742,18 @@ void disableSpeaker() } #endif +#if defined(COPROCESSOR) +CoprocData coprocData; + +void coprocReadData(bool) +{ +} +#endif + +void rtcInit() +{ +} + void rtcSetTime(const struct gtm * t) { } diff --git a/radio/src/targets/sky9x/board.h b/radio/src/targets/sky9x/board.h index d44b11356..bb38311e9 100644 --- a/radio/src/targets/sky9x/board.h +++ b/radio/src/targets/sky9x/board.h @@ -340,10 +340,15 @@ void coprocWriteData(uint8_t *data, uint32_t size); void coprocReadData(bool onlytemp=false); #endif extern int8_t volumeRequired; -extern uint8_t Coproc_read; -extern int8_t Coproc_valid; -extern int8_t Coproc_temp; -extern int8_t Coproc_maxtemp; + +struct CoprocData { + uint8_t read; + int8_t valid; + int8_t temp; + int8_t maxtemp; +}; + +extern CoprocData coprocData; // Haptic driver #define HAPTIC_PWM diff --git a/radio/src/targets/sky9x/coproc_driver.cpp b/radio/src/targets/sky9x/coproc_driver.cpp index cf5ab1be3..8a4beb31c 100644 --- a/radio/src/targets/sky9x/coproc_driver.cpp +++ b/radio/src/targets/sky9x/coproc_driver.cpp @@ -25,10 +25,7 @@ uint8_t coprocReadDataPending ; uint8_t coprocWriteDataPending ; uint8_t CoProc_appgo_pending ; uint8_t Volume_read ; -uint8_t Coproc_read ; -int8_t Coproc_temp ; -int8_t Coproc_maxtemp=-127 ; -int8_t Coproc_valid ; +CoprocData coprocData; bool get_onlytemp; #if !defined(SIMU) // TODO not used? static uint8_t *Twi_read_address ; @@ -71,7 +68,7 @@ void i2cCheck() TWI0->TWI_CR = TWI_CR_STOP ; // Stop Tx } else if (coprocReadDataPending) { - Coproc_valid = 0 ; + coprocData.valid = 0 ; coprocReadDataPending = 0 ; TWI0->TWI_MMR = 0x00351000 ; // Device 35 and master is reading TwiOperation = TWI_READ_COPROC ; @@ -142,15 +139,15 @@ extern "C" void TWI0_IRQHandler() } else { - Coproc_valid = -1 ; + coprocData.valid = -1 ; } } if ( TwiOperation == TWI_WAIT_STOP ) { - Coproc_valid = 1 ; - Coproc_read = Co_proc_status[0] ; - if ( Coproc_read & 0x80 ) { + coprocData.valid = 1 ; + coprocData.read = Co_proc_status[0] ; + if ( coprocData.read & 0x80 ) { // Bootloader CoProc_appgo_pending = 1 ; // Action application } @@ -167,9 +164,9 @@ extern "C" void TWI0_IRQHandler() utm.tm_year = (Co_proc_status[6] + ( Co_proc_status[7] << 8 )) - TM_YEAR_BASE; g_rtcTime = gmktime(&utm); } - Coproc_temp = Co_proc_status[8]; - if (Coproc_temp > Coproc_maxtemp) - Coproc_maxtemp=Coproc_temp; + coprocData.temp = Co_proc_status[8]; + if (coprocData.temp > coprocData.maxtemp) + coprocData.maxtemp = coprocData.temp; } TWI0->TWI_PTCR = TWI_PTCR_RXTDIS ; // Stop transfers if ( TWI0->TWI_SR & TWI_SR_RXRDY ) {