Test
Dependencies: mbed-dev-OS5_10_4
MySources/LoopTimer.cpp
- Committer:
- kevman
- Date:
- 2020-08-07
- Revision:
- 0:014fad4dfb9d
File content as of revision 0:014fad4dfb9d:
/*------------------------------------------------------------------------------- Programm Name: LoopTimer.cpp Version: 1.0 Sprache: C++ Compiler: mbed Autor: PS Copyright: PS Funktion: Main Funktionen 04.08.2016: Projekt: RpaAnalyse -------------------------------------------------------------------------------*/ #include "Headers.h" Ticker flipper; // Timerinterrupt // Variablen, die in Interruptroutinen verwendet werden volatile int nMyTimer; int ZustandsTimer; int g_nSendDisableTimer; int g_nTftTimer; // wird vor allem fuer das Abfragen der Uhr genommen /*------------------------------------------------------------------------------- Interrupt Funktion. Wird auf 1ms gesetzt -------------------------------------------------------------------------------*/ void flip() { nMyTimer++; } /*------------------------------------------------------------------------------- -------------------------------------------------------------------------------*/ void DetachMyTicker() { flipper.detach(); g_fTimerIsRunning = false; } /*------------------------------------------------------------------------------- -------------------------------------------------------------------------------*/ void AttachMyTicker() { #ifdef SEND_DEBUG_TO_HOST sprintf(HostIf.strTempBuf, "%c#DG#Attach Ticker%c",STX, ETX); SendTelToHost(false, false, false); #endif flipper.attach_us(&flip, 1000); // setup flipper to call flip after 1000 us nMyTimer = 0; MVars.nMittelTimer = 0; MVars.nSendTimer = 0; g_fTimerIsRunning = true; g_nSendDisableTimer = 0; } /*------------------------------------------------------------------------------- SetTimerInterrupt: -------------------------------------------------------------------------------*/ void SetTimerInterrupt(int Flag) { if(Flag == 0) // ausschalten { if(g_fTimerIsRunning == true) { DetachMyTicker(); } } else { if(g_fTimerIsRunning == false) { AttachMyTicker(); } } } /*------------------------------------------------------------------------------- Funktion CheckTimerHandlingAndScanner: prüft ob Messdaten reinkommen -------------------------------------------------------------------------------*/ int CheckTimerHandlingAndScanner() { MVars.nMittelTimer++; MVars.nSendTimer++; // nScreenSaverTimer++; // 2017-02-02 UFa: Timer ScreenSaver ZustandsTimer++; nMyTimer--; g_nTftTimer++; if(g_nSendDisableTimer > 0) g_nSendDisableTimer--; if(MVars.nSendTimer >=500) { // g_fDoCheckIRange = true; MVars.nSendTimer = 0; } // Der SAetGenValues wäre für RPA nicht notwendig, wenn m_fScan aber auf false // bleibt, dann sollte das kein Problem sein #ifndef PGU_RPA if(MVars.m_fScan == true) // wenn true, dann wird gescannt SetGenValues(); #endif return(true); } /*------------------------------------------------------------------------------- Funktion RequestDateTime -------------------------------------------------------------------------------*/ int RequestDateTime() { #ifdef USE_RTC // Uhrzeit //UFa Timer if(m_fTimeAlternate == true) { if(g_fDisableTimeRead == false) { seconds = time(NULL); MyTm = localtime(&seconds); // seconds = time(NULL); vorher sprintf(DtTime.cTimeBuffer,"%02d:%02d:%02d", MyTm->tm_hour, MyTm->tm_min,MyTm->tm_sec); sprintf(DtTime.cDateBuffer,"%04d:%02d:%02d", MyTm->tm_year + 1900, MyTm->tm_mon +1 , MyTm->tm_mday); m_fTimeAlternate = false; } } else m_fTimeAlternate = true; #endif return(true); }