Test
Dependencies: mbed-dev-OS5_10_4
MySources/Globals.cpp
- Committer:
- kevman
- Date:
- 2020-08-07
- Revision:
- 0:014fad4dfb9d
File content as of revision 0:014fad4dfb9d:
/*------------------------------------------------------------------------------- Programm Name: Globals.C Version: 1.0 Sprache: C Compiler: CrossStudio Ver. 2.0 Autor: PS Copyright: PS Funktion: Globale Variablen 28.10.2012: Memo der Registerzuordnung am Beispiel des PTD ---------------------------------------------- #define GPIOD_PDOR GPIO_PDOR_REG(PTD) #define GPIOD_PSOR GPIO_PSOR_REG(PTD) #define GPIOD_PCOR GPIO_PCOR_REG(PTD) #define GPIOD_PTOR GPIO_PTOR_REG(PTD) #define GPIOD_PDIR GPIO_PDIR_REG(PTD) #define GPIOD_PDDR GPIO_PDDR_REG(PTD) ** GPIO - Register Layout Typedef typedef struct { __IO uint32_t PDOR; **< Port Data Output Register, offset: 0x0 __O uint32_t PSOR; **< Port Set Output Register, offset: 0x4 __O uint32_t PCOR; **< Port Clear Output Register, offset: 0x8 __O uint32_t PTOR; **< Port Toggle Output Register, offset: 0xC __I uint32_t PDIR; **< Port Data Input Register, offset: 0x10 __IO uint32_t PDDR; **< Port Data Direction Register, offset: 0x14 } GPIO_Type, *GPIO_MemMapPtr; */ /*-------------------------------------------------------------------------------*/ #include "Headers.h" // LED's DigitalOut LedRed(LED_RED); // PTB22 DigitalOut LedGreen(LED_GREEN); // PTE26 DigitalOut LedBlue(LED_BLUE); // PTB21 // I/O's für die Messbereichsumschaltung // I/O's für den D/A Wandler // Aenderungen fuer REV-D, PTC16 und PTC17 werden nicht mehr benutzt // Aenderungen treffen auf den D/A Wandler zu // I/O's fuer D/A Wandler DigitalOut DacSck(PTB19); DigitalOut DacMosi(PTB18); DigitalOut DacCs(PTC1); // DIO Globals DigitalOut SwR1(PTD2); DigitalOut SwR2(PTD3); DigitalOut SwR3(PTE25); DigitalOut SwR0(PTE24); // Variablen, die in Interruptroutinen verwendet werden int g_fDoDioReInit; //------------------------------------------------------ double m_dbKehrWert; uint8_t g_u8AdcStatus[2]; uint8_t g_u8ChnStatus[2][8]; int nCounter[2]; int m_nId, m_nCounter; UINT8 fARead[8], fSendData; unsigned long AdTemp[8]; long m_lMittelCount; int m_fIdSend; int MessTimer; int nSumCount; UINT8 g_ReadReg[8]; bool m_fChangeMittelValue; bool m_fFallBack; int nFallBackCounter; bool g_fSequenzMessung; /*------------------------------------------------------------------------------- Variablen für zeitverzögerte Funktionen -------------------------------------------------------------------------------*/ int g_nDelayCounter; int g_nCntSpzFktSwitchIRange; int g_nCntSpzFktSwitchNoiseGain; int g_nCntSpzClearDDS; int g_nCntSpzSwitchMosFet; bool g_fSpzFktSwitchNoiseGain; bool g_fSpzFktSetMosFet; bool g_fSpzFktClearDDS; bool g_fCheckSpecial; int g_nEntPrellCounter; /*------------------------------------------------------------------------------- Variablen für die IR-Kompensation -------------------------------------------------------------------------------*/ IR_COMP IrComp; /*------------------------------------------------------------------------------- Variablen für die SPI Ausgabemasken -------------------------------------------------------------------------------*/ /*------------------------------------------------------------------------------- Variablen für das Netzwerkhandling -------------------------------------------------------------------------------*/ /*------------------------------------------------------------------------------- Variable für das Auslesen der SD Card und Versenden via TCP -------------------------------------------------------------------------------*/ char FName[128]; char DName[128]; char IoLine[256]; DIR *dir; FILE *ifs; char g_sTelEndeContinue[8]; char g_sTelEndeFinish[8]; bool g_fMwTransferOpen; char g_cFileEndCharacter[2]; /*------------------------------------------------------------------------------- Strukturen und Pointer -------------------------------------------------------------------------------*/ START_UP StartUp; WATCH_DOG WDog; MESS_VARIABLES Mv[ANZ_POT]; // Alles für 2 mal MESS_VARS MVars; FRQ_VALUES FrqValues; NEW_SCAN_RATE NsRate; ECM_INI EcmIni; MESS_PARAMETER MPara; // I_RANGE IRange; //UINT32 nAnzPulsesUp[2]; //UINT32 nAnzPulsesDown[2]; //float flUpperPot; //float flLowerPot; UINT32 nScanCount[2]; UINT16 nDispCount; UINT8 fSetHold; double LastVal[2]; int nGenFktNr[2]; // ist local und wird nur für die Funktionsnummer verwendet uint8_t g_RCodeStartUp; // RCode der einzelne RCodes beim Start beinhaltet bool g_fTimerIsRunning; /*------------------------------------------------------------------------------- LED1 umschalten -------------------------------------------------------------------------------*/ void SLed1() { LedRed = !LedRed; } /*------------------------------------------------------------------------------- Alle vier LEDs ausschalten -------------------------------------------------------------------------------*/ void LedsOff() { LedRed = 0; LedGreen = 0; LedBlue = 0; } /*------------------------------------------------------------------------------- Globale Initialisierung -------------------------------------------------------------------------------*/ int InitGlobals() { // InitCnf(); InitAll(); // ruft die MVars Inits auf InitAdValues(); g_cFileEndCharacter[0] = 0x7D; g_cFileEndCharacter[1] = 0x00; sprintf(g_sTelEndeContinue,"%c\r\n", ETX); sprintf(g_sTelEndeFinish,"}%c\r\n", ETX); g_fMwTransferOpen = false; g_nEntPrellCounter = 1000; MVars.fSequenzMessung = false; MVars.nIpsDebug = false; MVars.nCurrentPort = 0x00; MVars.m_fScan = false; HostIf.fStartTel = true; MVars.m_nSendValues = false; MVars.nDestCount = 0; MVars.nSendTimer = 0; MVars.nDaTimer = 0; MVars.nMittelTimer = 0; MVars.m_fMeasurementFinished = false; MVars.m_fFinishMeasurement = false; MVars.m_fDoFinishMeasurement = false; MVars.FrkValue[0] = 0.; MVars.FrkValue[1] = 0.; g_fCheckSpecial = false; g_nCntSpzSwitchMosFet = 0; return(true); } /*------------------------------------------------------------------------------- Kurzer Delay -------------------------------------------------------------------------------*/ void short_delay(int n) { volatile int d; for (d=0; d<n*10; d++){} } /*------------------------------------------------------------------------------- Funktion InitAll: Führt alle Initialisierungen durch -------------------------------------------------------------------------------*/ int InitAll() { InitMVars(); // InitSioVars(); return(0); } /*------------------------------------------------------------------------------- Funktion InitMVars: Initialisiert alle Variablen aus der MVars Strúktur -------------------------------------------------------------------------------*/ int InitMVars() { int i; for(i=0;i<ANZ_POT;i++) MVars.nMessZustand[i] = 0; MVars.fAdReInit = false; MVars.m_nSendValues = 0; MVars.m_nAnzChnSend = 0; // MVars.m_nStoreMwIntervall = 1; MVars.SendAnzWerte = 200; MVars.m_fCellSwitchOff = true; // 1 = Messung laeuft, -1 = Messung wurde beendet, for(i=0;i<16;i++) { MVars.MwChn[i] = i; MVars.m_fChnValid[i] = false; } for(i=0;i<2;i++) MVars.SwitchChn[i] = i+4; for(i=2;i<4;i++) MVars.SwitchChn[i] = i+10; for(i=0;i<2;i++) { MVars.ZInfo[i] = 0; // ist in Grundstellung Mv[i].IAktInVolt = 0.; } return(0); }