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: Globals.C
kevman 0:014fad4dfb9d 3 Version: 1.0
kevman 0:014fad4dfb9d 4 Sprache: C
kevman 0:014fad4dfb9d 5 Compiler: CrossStudio Ver. 2.0
kevman 0:014fad4dfb9d 6 Autor: PS
kevman 0:014fad4dfb9d 7 Copyright: PS
kevman 0:014fad4dfb9d 8
kevman 0:014fad4dfb9d 9 Funktion: Globale Variablen
kevman 0:014fad4dfb9d 10
kevman 0:014fad4dfb9d 11 28.10.2012:
kevman 0:014fad4dfb9d 12
kevman 0:014fad4dfb9d 13 Memo der Registerzuordnung am Beispiel des PTD
kevman 0:014fad4dfb9d 14 ----------------------------------------------
kevman 0:014fad4dfb9d 15 #define GPIOD_PDOR GPIO_PDOR_REG(PTD)
kevman 0:014fad4dfb9d 16 #define GPIOD_PSOR GPIO_PSOR_REG(PTD)
kevman 0:014fad4dfb9d 17 #define GPIOD_PCOR GPIO_PCOR_REG(PTD)
kevman 0:014fad4dfb9d 18 #define GPIOD_PTOR GPIO_PTOR_REG(PTD)
kevman 0:014fad4dfb9d 19 #define GPIOD_PDIR GPIO_PDIR_REG(PTD)
kevman 0:014fad4dfb9d 20 #define GPIOD_PDDR GPIO_PDDR_REG(PTD)
kevman 0:014fad4dfb9d 21
kevman 0:014fad4dfb9d 22 ** GPIO - Register Layout Typedef
kevman 0:014fad4dfb9d 23 typedef struct {
kevman 0:014fad4dfb9d 24 __IO uint32_t PDOR; **< Port Data Output Register, offset: 0x0
kevman 0:014fad4dfb9d 25 __O uint32_t PSOR; **< Port Set Output Register, offset: 0x4
kevman 0:014fad4dfb9d 26 __O uint32_t PCOR; **< Port Clear Output Register, offset: 0x8
kevman 0:014fad4dfb9d 27 __O uint32_t PTOR; **< Port Toggle Output Register, offset: 0xC
kevman 0:014fad4dfb9d 28 __I uint32_t PDIR; **< Port Data Input Register, offset: 0x10
kevman 0:014fad4dfb9d 29 __IO uint32_t PDDR; **< Port Data Direction Register, offset: 0x14
kevman 0:014fad4dfb9d 30 } GPIO_Type, *GPIO_MemMapPtr;
kevman 0:014fad4dfb9d 31
kevman 0:014fad4dfb9d 32 */
kevman 0:014fad4dfb9d 33
kevman 0:014fad4dfb9d 34 /*-------------------------------------------------------------------------------*/
kevman 0:014fad4dfb9d 35 #include "Headers.h"
kevman 0:014fad4dfb9d 36
kevman 0:014fad4dfb9d 37
kevman 0:014fad4dfb9d 38 // LED's
kevman 0:014fad4dfb9d 39 DigitalOut LedRed(LED_RED); // PTB22
kevman 0:014fad4dfb9d 40 DigitalOut LedGreen(LED_GREEN); // PTE26
kevman 0:014fad4dfb9d 41 DigitalOut LedBlue(LED_BLUE); // PTB21
kevman 0:014fad4dfb9d 42
kevman 0:014fad4dfb9d 43 // I/O's für die Messbereichsumschaltung
kevman 0:014fad4dfb9d 44
kevman 0:014fad4dfb9d 45
kevman 0:014fad4dfb9d 46
kevman 0:014fad4dfb9d 47 // I/O's für den D/A Wandler
kevman 0:014fad4dfb9d 48 // Aenderungen fuer REV-D, PTC16 und PTC17 werden nicht mehr benutzt
kevman 0:014fad4dfb9d 49 // Aenderungen treffen auf den D/A Wandler zu
kevman 0:014fad4dfb9d 50 // I/O's fuer D/A Wandler
kevman 0:014fad4dfb9d 51 DigitalOut DacSck(PTB19);
kevman 0:014fad4dfb9d 52 DigitalOut DacMosi(PTB18);
kevman 0:014fad4dfb9d 53 DigitalOut DacCs(PTC1);
kevman 0:014fad4dfb9d 54
kevman 0:014fad4dfb9d 55 // DIO Globals
kevman 0:014fad4dfb9d 56
kevman 0:014fad4dfb9d 57 DigitalOut SwR1(PTD2);
kevman 0:014fad4dfb9d 58 DigitalOut SwR2(PTD3);
kevman 0:014fad4dfb9d 59 DigitalOut SwR3(PTE25);
kevman 0:014fad4dfb9d 60 DigitalOut SwR0(PTE24);
kevman 0:014fad4dfb9d 61
kevman 0:014fad4dfb9d 62
kevman 0:014fad4dfb9d 63
kevman 0:014fad4dfb9d 64 // Variablen, die in Interruptroutinen verwendet werden
kevman 0:014fad4dfb9d 65 int g_fDoDioReInit;
kevman 0:014fad4dfb9d 66
kevman 0:014fad4dfb9d 67 //------------------------------------------------------
kevman 0:014fad4dfb9d 68
kevman 0:014fad4dfb9d 69
kevman 0:014fad4dfb9d 70
kevman 0:014fad4dfb9d 71
kevman 0:014fad4dfb9d 72 double m_dbKehrWert;
kevman 0:014fad4dfb9d 73
kevman 0:014fad4dfb9d 74
kevman 0:014fad4dfb9d 75 uint8_t g_u8AdcStatus[2];
kevman 0:014fad4dfb9d 76 uint8_t g_u8ChnStatus[2][8];
kevman 0:014fad4dfb9d 77
kevman 0:014fad4dfb9d 78 int nCounter[2];
kevman 0:014fad4dfb9d 79 int m_nId, m_nCounter;
kevman 0:014fad4dfb9d 80 UINT8 fARead[8], fSendData;
kevman 0:014fad4dfb9d 81 unsigned long AdTemp[8];
kevman 0:014fad4dfb9d 82 long m_lMittelCount;
kevman 0:014fad4dfb9d 83 int m_fIdSend;
kevman 0:014fad4dfb9d 84 int MessTimer;
kevman 0:014fad4dfb9d 85 int nSumCount;
kevman 0:014fad4dfb9d 86
kevman 0:014fad4dfb9d 87 UINT8 g_ReadReg[8];
kevman 0:014fad4dfb9d 88
kevman 0:014fad4dfb9d 89 bool m_fChangeMittelValue;
kevman 0:014fad4dfb9d 90 bool m_fFallBack;
kevman 0:014fad4dfb9d 91 int nFallBackCounter;
kevman 0:014fad4dfb9d 92
kevman 0:014fad4dfb9d 93 bool g_fSequenzMessung;
kevman 0:014fad4dfb9d 94
kevman 0:014fad4dfb9d 95
kevman 0:014fad4dfb9d 96 /*-------------------------------------------------------------------------------
kevman 0:014fad4dfb9d 97 Variablen für zeitverzögerte Funktionen
kevman 0:014fad4dfb9d 98 -------------------------------------------------------------------------------*/
kevman 0:014fad4dfb9d 99 int g_nDelayCounter;
kevman 0:014fad4dfb9d 100 int g_nCntSpzFktSwitchIRange;
kevman 0:014fad4dfb9d 101 int g_nCntSpzFktSwitchNoiseGain;
kevman 0:014fad4dfb9d 102 int g_nCntSpzClearDDS;
kevman 0:014fad4dfb9d 103 int g_nCntSpzSwitchMosFet;
kevman 0:014fad4dfb9d 104
kevman 0:014fad4dfb9d 105
kevman 0:014fad4dfb9d 106 bool g_fSpzFktSwitchNoiseGain;
kevman 0:014fad4dfb9d 107 bool g_fSpzFktSetMosFet;
kevman 0:014fad4dfb9d 108 bool g_fSpzFktClearDDS;
kevman 0:014fad4dfb9d 109
kevman 0:014fad4dfb9d 110 bool g_fCheckSpecial;
kevman 0:014fad4dfb9d 111 int g_nEntPrellCounter;
kevman 0:014fad4dfb9d 112
kevman 0:014fad4dfb9d 113
kevman 0:014fad4dfb9d 114
kevman 0:014fad4dfb9d 115 /*-------------------------------------------------------------------------------
kevman 0:014fad4dfb9d 116 Variablen für die IR-Kompensation
kevman 0:014fad4dfb9d 117 -------------------------------------------------------------------------------*/
kevman 0:014fad4dfb9d 118 IR_COMP IrComp;
kevman 0:014fad4dfb9d 119
kevman 0:014fad4dfb9d 120
kevman 0:014fad4dfb9d 121
kevman 0:014fad4dfb9d 122 /*-------------------------------------------------------------------------------
kevman 0:014fad4dfb9d 123 Variablen für die SPI Ausgabemasken
kevman 0:014fad4dfb9d 124 -------------------------------------------------------------------------------*/
kevman 0:014fad4dfb9d 125
kevman 0:014fad4dfb9d 126
kevman 0:014fad4dfb9d 127
kevman 0:014fad4dfb9d 128
kevman 0:014fad4dfb9d 129
kevman 0:014fad4dfb9d 130 /*-------------------------------------------------------------------------------
kevman 0:014fad4dfb9d 131 Variablen für das Netzwerkhandling
kevman 0:014fad4dfb9d 132 -------------------------------------------------------------------------------*/
kevman 0:014fad4dfb9d 133
kevman 0:014fad4dfb9d 134 /*-------------------------------------------------------------------------------
kevman 0:014fad4dfb9d 135 Variable für das Auslesen der SD Card und Versenden via TCP
kevman 0:014fad4dfb9d 136 -------------------------------------------------------------------------------*/
kevman 0:014fad4dfb9d 137
kevman 0:014fad4dfb9d 138 char FName[128];
kevman 0:014fad4dfb9d 139 char DName[128];
kevman 0:014fad4dfb9d 140
kevman 0:014fad4dfb9d 141 char IoLine[256];
kevman 0:014fad4dfb9d 142
kevman 0:014fad4dfb9d 143 DIR *dir;
kevman 0:014fad4dfb9d 144 FILE *ifs;
kevman 0:014fad4dfb9d 145
kevman 0:014fad4dfb9d 146 char g_sTelEndeContinue[8];
kevman 0:014fad4dfb9d 147 char g_sTelEndeFinish[8];
kevman 0:014fad4dfb9d 148 bool g_fMwTransferOpen;
kevman 0:014fad4dfb9d 149 char g_cFileEndCharacter[2];
kevman 0:014fad4dfb9d 150
kevman 0:014fad4dfb9d 151 /*-------------------------------------------------------------------------------
kevman 0:014fad4dfb9d 152 Strukturen und Pointer
kevman 0:014fad4dfb9d 153 -------------------------------------------------------------------------------*/
kevman 0:014fad4dfb9d 154 START_UP StartUp;
kevman 0:014fad4dfb9d 155 WATCH_DOG WDog;
kevman 0:014fad4dfb9d 156 MESS_VARIABLES Mv[ANZ_POT]; // Alles für 2 mal
kevman 0:014fad4dfb9d 157 MESS_VARS MVars;
kevman 0:014fad4dfb9d 158 FRQ_VALUES FrqValues;
kevman 0:014fad4dfb9d 159 NEW_SCAN_RATE NsRate;
kevman 0:014fad4dfb9d 160 ECM_INI EcmIni;
kevman 0:014fad4dfb9d 161
kevman 0:014fad4dfb9d 162 MESS_PARAMETER MPara;
kevman 0:014fad4dfb9d 163 // I_RANGE IRange;
kevman 0:014fad4dfb9d 164
kevman 0:014fad4dfb9d 165 //UINT32 nAnzPulsesUp[2];
kevman 0:014fad4dfb9d 166 //UINT32 nAnzPulsesDown[2];
kevman 0:014fad4dfb9d 167
kevman 0:014fad4dfb9d 168 //float flUpperPot;
kevman 0:014fad4dfb9d 169 //float flLowerPot;
kevman 0:014fad4dfb9d 170
kevman 0:014fad4dfb9d 171
kevman 0:014fad4dfb9d 172 UINT32 nScanCount[2];
kevman 0:014fad4dfb9d 173 UINT16 nDispCount;
kevman 0:014fad4dfb9d 174 UINT8 fSetHold;
kevman 0:014fad4dfb9d 175 double LastVal[2];
kevman 0:014fad4dfb9d 176
kevman 0:014fad4dfb9d 177
kevman 0:014fad4dfb9d 178 int nGenFktNr[2]; // ist local und wird nur für die Funktionsnummer verwendet
kevman 0:014fad4dfb9d 179
kevman 0:014fad4dfb9d 180 uint8_t g_RCodeStartUp; // RCode der einzelne RCodes beim Start beinhaltet
kevman 0:014fad4dfb9d 181 bool g_fTimerIsRunning;
kevman 0:014fad4dfb9d 182
kevman 0:014fad4dfb9d 183
kevman 0:014fad4dfb9d 184 /*-------------------------------------------------------------------------------
kevman 0:014fad4dfb9d 185 LED1 umschalten
kevman 0:014fad4dfb9d 186 -------------------------------------------------------------------------------*/
kevman 0:014fad4dfb9d 187 void SLed1()
kevman 0:014fad4dfb9d 188 {
kevman 0:014fad4dfb9d 189 LedRed = !LedRed;
kevman 0:014fad4dfb9d 190 }
kevman 0:014fad4dfb9d 191 /*-------------------------------------------------------------------------------
kevman 0:014fad4dfb9d 192 Alle vier LEDs ausschalten
kevman 0:014fad4dfb9d 193 -------------------------------------------------------------------------------*/
kevman 0:014fad4dfb9d 194 void LedsOff()
kevman 0:014fad4dfb9d 195 {
kevman 0:014fad4dfb9d 196 LedRed = 0;
kevman 0:014fad4dfb9d 197 LedGreen = 0;
kevman 0:014fad4dfb9d 198 LedBlue = 0;
kevman 0:014fad4dfb9d 199 }
kevman 0:014fad4dfb9d 200 /*-------------------------------------------------------------------------------
kevman 0:014fad4dfb9d 201 Globale Initialisierung
kevman 0:014fad4dfb9d 202 -------------------------------------------------------------------------------*/
kevman 0:014fad4dfb9d 203
kevman 0:014fad4dfb9d 204 int InitGlobals()
kevman 0:014fad4dfb9d 205 {
kevman 0:014fad4dfb9d 206
kevman 0:014fad4dfb9d 207 // InitCnf();
kevman 0:014fad4dfb9d 208 InitAll(); // ruft die MVars Inits auf
kevman 0:014fad4dfb9d 209 InitAdValues();
kevman 0:014fad4dfb9d 210
kevman 0:014fad4dfb9d 211 g_cFileEndCharacter[0] = 0x7D;
kevman 0:014fad4dfb9d 212 g_cFileEndCharacter[1] = 0x00;
kevman 0:014fad4dfb9d 213 sprintf(g_sTelEndeContinue,"%c\r\n", ETX);
kevman 0:014fad4dfb9d 214 sprintf(g_sTelEndeFinish,"}%c\r\n", ETX);
kevman 0:014fad4dfb9d 215 g_fMwTransferOpen = false;
kevman 0:014fad4dfb9d 216
kevman 0:014fad4dfb9d 217
kevman 0:014fad4dfb9d 218 g_nEntPrellCounter = 1000;
kevman 0:014fad4dfb9d 219
kevman 0:014fad4dfb9d 220 MVars.fSequenzMessung = false;
kevman 0:014fad4dfb9d 221
kevman 0:014fad4dfb9d 222 MVars.nIpsDebug = false;
kevman 0:014fad4dfb9d 223
kevman 0:014fad4dfb9d 224 MVars.nCurrentPort = 0x00;
kevman 0:014fad4dfb9d 225 MVars.m_fScan = false;
kevman 0:014fad4dfb9d 226 HostIf.fStartTel = true;
kevman 0:014fad4dfb9d 227
kevman 0:014fad4dfb9d 228 MVars.m_nSendValues = false;
kevman 0:014fad4dfb9d 229 MVars.nDestCount = 0;
kevman 0:014fad4dfb9d 230 MVars.nSendTimer = 0;
kevman 0:014fad4dfb9d 231 MVars.nDaTimer = 0;
kevman 0:014fad4dfb9d 232 MVars.nMittelTimer = 0;
kevman 0:014fad4dfb9d 233 MVars.m_fMeasurementFinished = false;
kevman 0:014fad4dfb9d 234 MVars.m_fFinishMeasurement = false;
kevman 0:014fad4dfb9d 235 MVars.m_fDoFinishMeasurement = false;
kevman 0:014fad4dfb9d 236 MVars.FrkValue[0] = 0.;
kevman 0:014fad4dfb9d 237 MVars.FrkValue[1] = 0.;
kevman 0:014fad4dfb9d 238
kevman 0:014fad4dfb9d 239 g_fCheckSpecial = false;
kevman 0:014fad4dfb9d 240 g_nCntSpzSwitchMosFet = 0;
kevman 0:014fad4dfb9d 241 return(true);
kevman 0:014fad4dfb9d 242 }
kevman 0:014fad4dfb9d 243
kevman 0:014fad4dfb9d 244 /*-------------------------------------------------------------------------------
kevman 0:014fad4dfb9d 245 Kurzer Delay
kevman 0:014fad4dfb9d 246 -------------------------------------------------------------------------------*/
kevman 0:014fad4dfb9d 247 void short_delay(int n)
kevman 0:014fad4dfb9d 248 {
kevman 0:014fad4dfb9d 249 volatile int d;
kevman 0:014fad4dfb9d 250 for (d=0; d<n*10; d++){}
kevman 0:014fad4dfb9d 251 }
kevman 0:014fad4dfb9d 252 /*-------------------------------------------------------------------------------
kevman 0:014fad4dfb9d 253 Funktion InitAll: Führt alle Initialisierungen durch
kevman 0:014fad4dfb9d 254 -------------------------------------------------------------------------------*/
kevman 0:014fad4dfb9d 255 int InitAll()
kevman 0:014fad4dfb9d 256 {
kevman 0:014fad4dfb9d 257 InitMVars();
kevman 0:014fad4dfb9d 258 // InitSioVars();
kevman 0:014fad4dfb9d 259
kevman 0:014fad4dfb9d 260 return(0);
kevman 0:014fad4dfb9d 261 }
kevman 0:014fad4dfb9d 262 /*-------------------------------------------------------------------------------
kevman 0:014fad4dfb9d 263 Funktion InitMVars: Initialisiert alle Variablen aus der MVars Strúktur
kevman 0:014fad4dfb9d 264 -------------------------------------------------------------------------------*/
kevman 0:014fad4dfb9d 265 int InitMVars()
kevman 0:014fad4dfb9d 266 {
kevman 0:014fad4dfb9d 267 int i;
kevman 0:014fad4dfb9d 268
kevman 0:014fad4dfb9d 269 for(i=0;i<ANZ_POT;i++)
kevman 0:014fad4dfb9d 270 MVars.nMessZustand[i] = 0;
kevman 0:014fad4dfb9d 271
kevman 0:014fad4dfb9d 272 MVars.fAdReInit = false;
kevman 0:014fad4dfb9d 273 MVars.m_nSendValues = 0;
kevman 0:014fad4dfb9d 274 MVars.m_nAnzChnSend = 0;
kevman 0:014fad4dfb9d 275 // MVars.m_nStoreMwIntervall = 1;
kevman 0:014fad4dfb9d 276 MVars.SendAnzWerte = 200;
kevman 0:014fad4dfb9d 277 MVars.m_fCellSwitchOff = true;
kevman 0:014fad4dfb9d 278
kevman 0:014fad4dfb9d 279 // 1 = Messung laeuft, -1 = Messung wurde beendet,
kevman 0:014fad4dfb9d 280
kevman 0:014fad4dfb9d 281 for(i=0;i<16;i++)
kevman 0:014fad4dfb9d 282 {
kevman 0:014fad4dfb9d 283 MVars.MwChn[i] = i;
kevman 0:014fad4dfb9d 284 MVars.m_fChnValid[i] = false;
kevman 0:014fad4dfb9d 285 }
kevman 0:014fad4dfb9d 286
kevman 0:014fad4dfb9d 287 for(i=0;i<2;i++)
kevman 0:014fad4dfb9d 288 MVars.SwitchChn[i] = i+4;
kevman 0:014fad4dfb9d 289 for(i=2;i<4;i++)
kevman 0:014fad4dfb9d 290 MVars.SwitchChn[i] = i+10;
kevman 0:014fad4dfb9d 291
kevman 0:014fad4dfb9d 292 for(i=0;i<2;i++)
kevman 0:014fad4dfb9d 293 {
kevman 0:014fad4dfb9d 294 MVars.ZInfo[i] = 0; // ist in Grundstellung
kevman 0:014fad4dfb9d 295 Mv[i].IAktInVolt = 0.;
kevman 0:014fad4dfb9d 296 }
kevman 0:014fad4dfb9d 297 return(0);
kevman 0:014fad4dfb9d 298 }