comparison Discovery/Src/base.c @ 367:e309f78f89a5 MotionDetection

Merge default
author Ideenmodellierer
date Sat, 20 Jul 2019 21:42:45 +0200
parents 3014a698f46d 5ca177d2df5d
children 50ea68c7a153
comparison
equal deleted inserted replaced
366:3c7030d6d67a 367:e309f78f89a5
204 #include "ostc.h" 204 #include "ostc.h"
205 #include "base.h" 205 #include "base.h"
206 #include "display.h" 206 #include "display.h"
207 #include "gfx_engine.h" 207 #include "gfx_engine.h"
208 #include "show_logbook.h" 208 #include "show_logbook.h"
209 //#include "test_vpm.h"
210 #include "text_multilanguage.h" 209 #include "text_multilanguage.h"
211 #include "tHome.h" 210 #include "tHome.h"
212 #include "tInfo.h" 211 #include "tInfo.h"
213 #include "tInfoLog.h" 212 #include "tInfoLog.h"
214 #include "tMenu.h" 213 #include "tMenu.h"
215 #include "tMenuEdit.h" 214 #include "tMenuEdit.h"
216 #include "tMenuEditGasOC.h" 215 #include "tMenuEditGasOC.h"
217 #include "tStructure.h" 216 #include "tStructure.h"
218 //#include "gfx_specialeffects.h"
219 #include "externLogbookFlash.h" 217 #include "externLogbookFlash.h"
220 #include "tComm.h" 218 #include "tComm.h"
221 #include "tCCR.h" 219 #include "tCCR.h"
222 #include "data_exchange.h" 220 #include "data_exchange.h"
223 #include "data_exchange_main.h" 221 #include "data_exchange_main.h"
250 248
251 //#define NO_TIMEOUT 249 //#define NO_TIMEOUT
252 //#define QUICK_SLEEP 250 //#define QUICK_SLEEP
253 251
254 /* Private define ------------------------------------------------------------*/ 252 /* Private define ------------------------------------------------------------*/
255 //#define BUFFER_SIZE ((uint32_t)0x00177000)
256 //#define WRITE_READ_ADDR ((uint32_t)0x0000)
257 #define REFRESH_COUNT ((uint32_t)0x0569) /**< for SDRAM refresh counter (90Mhz SD clock) */ 253 #define REFRESH_COUNT ((uint32_t)0x0569) /**< for SDRAM refresh counter (90Mhz SD clock) */
258 #define INVALID_BUTTON ((uint8_t) 0xFF) 254 #define INVALID_BUTTON ((uint8_t) 0xFF)
259 /* Private macro -------------------------------------------------------------*/ 255 /* Private macro -------------------------------------------------------------*/
260 /* Private variables ---------------------------------------------------------*/ 256 /* Private variables ---------------------------------------------------------*/
261 257
262 RTC_HandleTypeDef RtcHandle; /* used to change time and date, no RTC is running on this MCU */ 258 static RTC_HandleTypeDef RtcHandle; /* used to change time and date, no RTC is running on this MCU */
263 TIM_HandleTypeDef TimHandle; /* used in stm32f4xx_it.c too */ 259 TIM_HandleTypeDef TimHandle; /* used in stm32f4xx_it.c too */
264 TIM_HandleTypeDef TimBacklightHandle; /* used in stm32f4xx_it.c too */ 260 static TIM_HandleTypeDef TimBacklightHandle;
265 #ifdef DEMOMODE 261 #ifdef DEMOMODE
266 TIM_HandleTypeDef TimDemoHandle; /* used in stm32f4xx_it.c too */ 262 TIM_HandleTypeDef TimDemoHandle; /* used in stm32f4xx_it.c too */
267 #endif 263 #endif
268 264
269 uint8_t LastButtonPressed; 265 static uint8_t LastButtonPressed;
270 uint32_t LastButtonPressedTick; 266 static uint32_t LastButtonPressedTick;
271 uint32_t BaseTick100ms; /* Tick at last 100ms cycle */ 267 static uint32_t BaseTick100ms; /* Tick at last 100ms cycle */
272
273 /*
274 uint32_t time_before;
275 uint32_t time_between;
276 uint32_t time_after;
277 */
278 268
279 /* SDRAM handler declaration */ 269 /* SDRAM handler declaration */
280 SDRAM_HandleTypeDef hsdram; 270 static SDRAM_HandleTypeDef hsdram;
281 FMC_SDRAM_TimingTypeDef SDRAM_Timing; 271 static FMC_SDRAM_TimingTypeDef SDRAM_Timing;
282 FMC_SDRAM_CommandTypeDef command; 272 static FMC_SDRAM_CommandTypeDef command;
283 273
284 /* This was used for Dual Boot */ 274 /* This was used for Dual Boot */
285 //FLASH_OBProgramInitTypeDef OBInit; 275 //FLASH_OBProgramInitTypeDef OBInit;
286 //FLASH_AdvOBProgramInitTypeDef AdvOBInit; 276 //FLASH_AdvOBProgramInitTypeDef AdvOBInit;
287 277
288 /* Private variables with external access ------------------------------------*/ 278 /* Private variables with external access ------------------------------------*/
289 279
290 uint32_t globalStateID = 0; 280 static uint32_t globalStateID = 0;
291 uint8_t globalModeID = SURFMODE; 281 static uint32_t time_without_button_pressed_deciseconds = 0; /**< langbeschreibung (eigenes Feld) warum diese variable verwendet wird um den sleepmode zu aktivieren */
292 uint32_t time_without_button_pressed_deciseconds = 0; /**< langbeschreibung (eigenes Feld) warum diese variable verwendet wird um den sleepmode zu aktivieren */
293 uint8_t bootToBootloader = 0; ///< set in tComm.c to install firmware updates, calls resetToFirmwareUpdate() 282 uint8_t bootToBootloader = 0; ///< set in tComm.c to install firmware updates, calls resetToFirmwareUpdate()
294 //uint8_t dataEx_VPM_call = 0; 283 static uint8_t returnFromCommCleanUpRequest = 0; ///< use this to exit bluetooth mode and call tComm_exit()
295 uint8_t returnFromCommCleanUpRequest = 0; ///< use this to exit bluetooth mode and call tComm_exit()
296 uint32_t base_tempLightLevel = 0; 284 uint32_t base_tempLightLevel = 0;
297 uint8_t updateButtonsToDefault = 0; 285 static uint8_t wasFirmwareUpdateCheckBattery = 0;
298 uint8_t wasFirmwareUpdateCheckBattery = 0;
299
300 static uint8_t DoDisplayRefresh = 0; /* trigger to refresh display data */ 286 static uint8_t DoDisplayRefresh = 0; /* trigger to refresh display data */
301 287
302 /* Private function prototypes -----------------------------------------------*/ 288 /* Private function prototypes -----------------------------------------------*/
303 static void SystemClock_Config(void); 289 static void SystemClock_Config(void);
304 static void Error_Handler(void); 290 static void Error_Handler(void);
364 uint8_t measurementindex = 0; 350 uint8_t measurementindex = 0;
365 uint8_t lastsecond = 0xFF; 351 uint8_t lastsecond = 0xFF;
366 #endif 352 #endif
367 353
368 detectionState_t shakestate; 354 detectionState_t shakestate;
369
370 set_globalState( StBoot0 ); 355 set_globalState( StBoot0 );
371 LastButtonPressed = 0; 356 LastButtonPressed = 0;
372 357
373 HAL_Init(); 358 HAL_Init();
374 HAL_NVIC_SetPriorityGrouping( NVIC_PRIORITYGROUP_2 ); 359 HAL_NVIC_SetPriorityGrouping( NVIC_PRIORITYGROUP_2 );
391 wasFirmwareUpdateCheckBattery = 1; 376 wasFirmwareUpdateCheckBattery = 1;
392 set_settings_button_to_standard_with_individual_buttonBalance(); // will adapt individual values 377 set_settings_button_to_standard_with_individual_buttonBalance(); // will adapt individual values
393 } 378 }
394 //settingsGetPointer()->bluetoothActive = 0; /* MX_Bluetooth_PowerOff(); unnecessary as part of MX_GPIO_Init() */ 379 //settingsGetPointer()->bluetoothActive = 0; /* MX_Bluetooth_PowerOff(); unnecessary as part of MX_GPIO_Init() */
395 //settingsGetPointer()->compassBearing = 0; 380 //settingsGetPointer()->compassBearing = 0;
396 set_new_settings_missing_in_ext_flash(); // inlcudes update of firmware version 161121 381 set_new_settings_missing_in_ext_flash(); // includes update of firmware version 161121
397 382
398 GFX_init( &pLayerInvisible ); 383 GFX_init( &pLayerInvisible );
399 TIM_BACKLIGHT_init(); 384 TIM_BACKLIGHT_init();
400
401 /*
402 GFX_helper_font_memory_list(&FontT24);
403 GFX_helper_font_memory_list(&FontT42);
404 GFX_helper_font_memory_list(&FontT48);
405 GFX_helper_font_memory_list(&FontT54);
406 GFX_helper_font_memory_list(&FontT84);
407 GFX_helper_font_memory_list(&FontT105);
408 GFX_helper_font_memory_list(&FontT144);
409 */
410
411
412 385
413 // new 170508: bluetooth on at start 386 // new 170508: bluetooth on at start
414 settingsGetPointer()->bluetoothActive = 1; 387 settingsGetPointer()->bluetoothActive = 1;
415 MX_Bluetooth_PowerOn(); 388 MX_Bluetooth_PowerOn();
416 389
452 GFX_SetFramesTopBottom( pLayerInvisible, pLayerInvisible, 480 ); 425 GFX_SetFramesTopBottom( pLayerInvisible, pLayerInvisible, 480 );
453 HAL_Delay( 20 ); 426 HAL_Delay( 20 );
454 display_power_on__2_of_2__post_RGB(); 427 display_power_on__2_of_2__post_RGB();
455 GFX_use_colorscheme( settingsGetPointer()->tX_colorscheme ); 428 GFX_use_colorscheme( settingsGetPointer()->tX_colorscheme );
456 429
457 // -----------------------------
458 tHome_init(); 430 tHome_init();
459 tI_init(); 431 tI_init();
460 tM_init(); 432 tM_init();
461 tMenuEdit_init(); 433 tMenuEdit_init();
462 tInfoLog_init(); 434 tInfoLog_init();
498 */ 470 */
499 while( 1 ) 471 while( 1 )
500 { 472 {
501 if( bootToBootloader ) 473 if( bootToBootloader )
502 resetToFirmwareUpdate(); 474 resetToFirmwareUpdate();
503
504 // this will allways reset after RTE reset -> no good!
505 // if(DataEX_was_power_on()) // new to allow for update after RTE update
506 // resetToFirmwareUpdate();
507 475
508 tCCR_control(); 476 tCCR_control();
509 if( tComm_control() )// will stop while loop if tComm Mode started until exit from UART 477 if( tComm_control() )// will stop while loop if tComm Mode started until exit from UART
510 { 478 {
511 createDiveSettings(); 479 createDiveSettings();
951 ButtonAction = ACTION_END; 919 ButtonAction = ACTION_END;
952 } 920 }
953 } 921 }
954 922
955 923
956 void EvaluateButton() 924 static void EvaluateButton()
957 { 925 {
958 uint8_t action = 0; 926 uint8_t action = 0;
959 SStateList status; 927 SStateList status;
960 SSettings* pSettings; 928 SSettings* pSettings;
961 pSettings = settingsGetPointer(); 929 pSettings = settingsGetPointer();
1031 } 999 }
1032 LastButtonPressed = INVALID_BUTTON; 1000 LastButtonPressed = INVALID_BUTTON;
1033 } 1001 }
1034 } 1002 }
1035 1003
1036 void gotoSleep(void) 1004 static void gotoSleep(void)
1037 { 1005 {
1038 /* not at the moment of testing */ 1006 /* not at the moment of testing */
1039 // ext_flash_erase_firmware_if_not_empty(); 1007 // ext_flash_erase_firmware_if_not_empty();
1040 GFX_logoAutoOff(); 1008 GFX_logoAutoOff();
1041 set_globalState(StStop); 1009 set_globalState(StStop);
1042 } 1010 }
1043 1011
1044 1012
1045 // ----------------------------- 1013 // -----------------------------
1046
1047 uint8_t get_globalMode(void)
1048 {
1049 return globalModeID;
1050 }
1051
1052
1053 void set_globalMode(uint8_t newMode)
1054 {
1055 if((newMode != DIVEMODE) && (newMode != SURFMODE))
1056 return;
1057
1058 globalModeID = newMode;
1059 }
1060
1061 1014
1062 uint32_t get_globalState(void) 1015 uint32_t get_globalState(void)
1063 { 1016 {
1064 return globalStateID; 1017 return globalStateID;
1065 } 1018 }
1673 } 1626 }
1674 } 1627 }
1675 #endif 1628 #endif
1676 1629
1677 1630
1678 void deco_loop(void) 1631 static void deco_loop(void)
1679 { 1632 {
1680 typedef enum 1633 typedef enum
1681 { 1634 {
1682 CALC_VPM, 1635 CALC_VPM,
1683 CALC_VPM_FUTURE, 1636 CALC_VPM_FUTURE,
1754 default: break; 1707 default: break;
1755 } 1708 }
1756 counter++; 1709 counter++;
1757 } 1710 }
1758 1711
1759 void resetToFirmwareUpdate(void) 1712 static void resetToFirmwareUpdate(void)
1760 { 1713 {
1761 __HAL_RCC_CLEAR_RESET_FLAGS(); 1714 __HAL_RCC_CLEAR_RESET_FLAGS();
1762 HAL_NVIC_SystemReset(); 1715 HAL_NVIC_SystemReset();
1763 } 1716 }
1764 1717