Test

Dependencies:   mbed-dev-OS5_10_4

Committer:
kevman
Date:
Fri Aug 07 07:24:21 2020 +0000
Revision:
0:014fad4dfb9d
Test

Who changed what in which revision?

UserRevisionLine numberNew contents of line
kevman 0:014fad4dfb9d 1 /*-------------------------------------------------------------------------------
kevman 0:014fad4dfb9d 2 Programm Name: LoopTimer.cpp
kevman 0:014fad4dfb9d 3 Version: 1.0
kevman 0:014fad4dfb9d 4 Sprache: C++
kevman 0:014fad4dfb9d 5 Compiler: mbed
kevman 0:014fad4dfb9d 6 Autor: PS
kevman 0:014fad4dfb9d 7 Copyright: PS
kevman 0:014fad4dfb9d 8
kevman 0:014fad4dfb9d 9
kevman 0:014fad4dfb9d 10 Funktion: Main Funktionen
kevman 0:014fad4dfb9d 11 04.08.2016: Projekt: RpaAnalyse
kevman 0:014fad4dfb9d 12 -------------------------------------------------------------------------------*/
kevman 0:014fad4dfb9d 13 #include "Headers.h"
kevman 0:014fad4dfb9d 14
kevman 0:014fad4dfb9d 15
kevman 0:014fad4dfb9d 16
kevman 0:014fad4dfb9d 17 Ticker flipper; // Timerinterrupt
kevman 0:014fad4dfb9d 18 // Variablen, die in Interruptroutinen verwendet werden
kevman 0:014fad4dfb9d 19 volatile int nMyTimer;
kevman 0:014fad4dfb9d 20 int ZustandsTimer;
kevman 0:014fad4dfb9d 21 int g_nSendDisableTimer;
kevman 0:014fad4dfb9d 22 int g_nTftTimer; // wird vor allem fuer das Abfragen der Uhr genommen
kevman 0:014fad4dfb9d 23
kevman 0:014fad4dfb9d 24
kevman 0:014fad4dfb9d 25 /*-------------------------------------------------------------------------------
kevman 0:014fad4dfb9d 26 Interrupt Funktion. Wird auf 1ms gesetzt
kevman 0:014fad4dfb9d 27 -------------------------------------------------------------------------------*/
kevman 0:014fad4dfb9d 28 void flip()
kevman 0:014fad4dfb9d 29 {
kevman 0:014fad4dfb9d 30 nMyTimer++;
kevman 0:014fad4dfb9d 31 }
kevman 0:014fad4dfb9d 32 /*-------------------------------------------------------------------------------
kevman 0:014fad4dfb9d 33
kevman 0:014fad4dfb9d 34 -------------------------------------------------------------------------------*/
kevman 0:014fad4dfb9d 35 void DetachMyTicker()
kevman 0:014fad4dfb9d 36 {
kevman 0:014fad4dfb9d 37 flipper.detach();
kevman 0:014fad4dfb9d 38 g_fTimerIsRunning = false;
kevman 0:014fad4dfb9d 39 }
kevman 0:014fad4dfb9d 40 /*-------------------------------------------------------------------------------
kevman 0:014fad4dfb9d 41
kevman 0:014fad4dfb9d 42 -------------------------------------------------------------------------------*/
kevman 0:014fad4dfb9d 43 void AttachMyTicker()
kevman 0:014fad4dfb9d 44 {
kevman 0:014fad4dfb9d 45 #ifdef SEND_DEBUG_TO_HOST
kevman 0:014fad4dfb9d 46 sprintf(HostIf.strTempBuf, "%c#DG#Attach Ticker%c",STX, ETX);
kevman 0:014fad4dfb9d 47 SendTelToHost(false, false, false);
kevman 0:014fad4dfb9d 48 #endif
kevman 0:014fad4dfb9d 49
kevman 0:014fad4dfb9d 50 flipper.attach_us(&flip, 1000); // setup flipper to call flip after 1000 us
kevman 0:014fad4dfb9d 51 nMyTimer = 0;
kevman 0:014fad4dfb9d 52 MVars.nMittelTimer = 0;
kevman 0:014fad4dfb9d 53 MVars.nSendTimer = 0;
kevman 0:014fad4dfb9d 54 g_fTimerIsRunning = true;
kevman 0:014fad4dfb9d 55 g_nSendDisableTimer = 0;
kevman 0:014fad4dfb9d 56 }
kevman 0:014fad4dfb9d 57 /*-------------------------------------------------------------------------------
kevman 0:014fad4dfb9d 58 SetTimerInterrupt:
kevman 0:014fad4dfb9d 59 -------------------------------------------------------------------------------*/
kevman 0:014fad4dfb9d 60 void SetTimerInterrupt(int Flag)
kevman 0:014fad4dfb9d 61 {
kevman 0:014fad4dfb9d 62 if(Flag == 0) // ausschalten
kevman 0:014fad4dfb9d 63 {
kevman 0:014fad4dfb9d 64 if(g_fTimerIsRunning == true)
kevman 0:014fad4dfb9d 65 {
kevman 0:014fad4dfb9d 66 DetachMyTicker();
kevman 0:014fad4dfb9d 67 }
kevman 0:014fad4dfb9d 68 }
kevman 0:014fad4dfb9d 69 else
kevman 0:014fad4dfb9d 70 {
kevman 0:014fad4dfb9d 71 if(g_fTimerIsRunning == false)
kevman 0:014fad4dfb9d 72 {
kevman 0:014fad4dfb9d 73 AttachMyTicker();
kevman 0:014fad4dfb9d 74 }
kevman 0:014fad4dfb9d 75 }
kevman 0:014fad4dfb9d 76 }
kevman 0:014fad4dfb9d 77 /*-------------------------------------------------------------------------------
kevman 0:014fad4dfb9d 78 Funktion CheckTimerHandlingAndScanner: prüft ob Messdaten reinkommen
kevman 0:014fad4dfb9d 79 -------------------------------------------------------------------------------*/
kevman 0:014fad4dfb9d 80 int CheckTimerHandlingAndScanner()
kevman 0:014fad4dfb9d 81 {
kevman 0:014fad4dfb9d 82 MVars.nMittelTimer++;
kevman 0:014fad4dfb9d 83 MVars.nSendTimer++;
kevman 0:014fad4dfb9d 84 // nScreenSaverTimer++; // 2017-02-02 UFa: Timer ScreenSaver
kevman 0:014fad4dfb9d 85 ZustandsTimer++;
kevman 0:014fad4dfb9d 86 nMyTimer--;
kevman 0:014fad4dfb9d 87 g_nTftTimer++;
kevman 0:014fad4dfb9d 88 if(g_nSendDisableTimer > 0) g_nSendDisableTimer--;
kevman 0:014fad4dfb9d 89
kevman 0:014fad4dfb9d 90 if(MVars.nSendTimer >=500)
kevman 0:014fad4dfb9d 91 {
kevman 0:014fad4dfb9d 92 // g_fDoCheckIRange = true;
kevman 0:014fad4dfb9d 93 MVars.nSendTimer = 0;
kevman 0:014fad4dfb9d 94 }
kevman 0:014fad4dfb9d 95
kevman 0:014fad4dfb9d 96 // Der SAetGenValues wäre für RPA nicht notwendig, wenn m_fScan aber auf false
kevman 0:014fad4dfb9d 97 // bleibt, dann sollte das kein Problem sein
kevman 0:014fad4dfb9d 98 #ifndef PGU_RPA
kevman 0:014fad4dfb9d 99 if(MVars.m_fScan == true) // wenn true, dann wird gescannt
kevman 0:014fad4dfb9d 100 SetGenValues();
kevman 0:014fad4dfb9d 101 #endif
kevman 0:014fad4dfb9d 102 return(true);
kevman 0:014fad4dfb9d 103 }
kevman 0:014fad4dfb9d 104 /*-------------------------------------------------------------------------------
kevman 0:014fad4dfb9d 105 Funktion RequestDateTime
kevman 0:014fad4dfb9d 106 -------------------------------------------------------------------------------*/
kevman 0:014fad4dfb9d 107 int RequestDateTime()
kevman 0:014fad4dfb9d 108 {
kevman 0:014fad4dfb9d 109 #ifdef USE_RTC
kevman 0:014fad4dfb9d 110 // Uhrzeit //UFa Timer
kevman 0:014fad4dfb9d 111 if(m_fTimeAlternate == true)
kevman 0:014fad4dfb9d 112 {
kevman 0:014fad4dfb9d 113 if(g_fDisableTimeRead == false)
kevman 0:014fad4dfb9d 114 {
kevman 0:014fad4dfb9d 115 seconds = time(NULL);
kevman 0:014fad4dfb9d 116 MyTm = localtime(&seconds); // seconds = time(NULL); vorher
kevman 0:014fad4dfb9d 117 sprintf(DtTime.cTimeBuffer,"%02d:%02d:%02d", MyTm->tm_hour, MyTm->tm_min,MyTm->tm_sec);
kevman 0:014fad4dfb9d 118 sprintf(DtTime.cDateBuffer,"%04d:%02d:%02d", MyTm->tm_year + 1900, MyTm->tm_mon +1 , MyTm->tm_mday);
kevman 0:014fad4dfb9d 119 m_fTimeAlternate = false;
kevman 0:014fad4dfb9d 120 }
kevman 0:014fad4dfb9d 121 }
kevman 0:014fad4dfb9d 122 else
kevman 0:014fad4dfb9d 123 m_fTimeAlternate = true;
kevman 0:014fad4dfb9d 124 #endif
kevman 0:014fad4dfb9d 125 return(true);
kevman 0:014fad4dfb9d 126 }
kevman 0:014fad4dfb9d 127
kevman 0:014fad4dfb9d 128