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: AdCalculations.C
kevman 0:014fad4dfb9d 3 Version: 1.0
kevman 0:014fad4dfb9d 4 Sprache: C++
kevman 0:014fad4dfb9d 5 Compiler: mbed Studio
kevman 0:014fad4dfb9d 6 Autor: PS/UF
kevman 0:014fad4dfb9d 7 Copyright: IPS
kevman 0:014fad4dfb9d 8
kevman 0:014fad4dfb9d 9
kevman 0:014fad4dfb9d 10 Funktion: Basiskalkulationen für die Umrechnung der Werte von A/D Wandler
kevman 0:014fad4dfb9d 11
kevman 0:014fad4dfb9d 12 16.06.2017
kevman 0:014fad4dfb9d 13 Neu angelegt um die Funktionen in Main zu entzerren
kevman 0:014fad4dfb9d 14 -------------------------------------------------------------------------------*/
kevman 0:014fad4dfb9d 15 #include "Headers.h"
kevman 0:014fad4dfb9d 16
kevman 0:014fad4dfb9d 17 /*-------------------------------------------------------------------------------
kevman 0:014fad4dfb9d 18 File interne Membervariablen
kevman 0:014fad4dfb9d 19 -------------------------------------------------------------------------------*/
kevman 0:014fad4dfb9d 20
kevman 0:014fad4dfb9d 21
kevman 0:014fad4dfb9d 22 /*-------------------------------------------------------------------------------
kevman 0:014fad4dfb9d 23 CalculateAdBaseValues: macht die Basisumrechnungen der vom A/D Wandler gelieferten
kevman 0:014fad4dfb9d 24 Werte. Erst mitteln, dann um den Nullpunkt verschieben, dann Skalieren
kevman 0:014fad4dfb9d 25 -------------------------------------------------------------------------------*/
kevman 0:014fad4dfb9d 26 int CalculateAdBaseValues()
kevman 0:014fad4dfb9d 27 {
kevman 0:014fad4dfb9d 28 int i;
kevman 0:014fad4dfb9d 29
kevman 0:014fad4dfb9d 30 for(i=0;i<8;i++)
kevman 0:014fad4dfb9d 31 {
kevman 0:014fad4dfb9d 32 if(MVars.m_fChnValid[i] == true)
kevman 0:014fad4dfb9d 33 {
kevman 0:014fad4dfb9d 34 if(MVars.nChnAverage[i] > 0)
kevman 0:014fad4dfb9d 35 {
kevman 0:014fad4dfb9d 36 if( MVars.dbAdSum[i] == 0.0)
kevman 0:014fad4dfb9d 37 {
kevman 0:014fad4dfb9d 38 InitBaseInputArray();
kevman 0:014fad4dfb9d 39 printf("No Values, dbAdSum = 0.0\r\n");
kevman 0:014fad4dfb9d 40 return(false);
kevman 0:014fad4dfb9d 41 }
kevman 0:014fad4dfb9d 42 MVars.dbAdResult[i] = MVars.dbAdSum[i] / (double)MVars.nChnAverage[i];
kevman 0:014fad4dfb9d 43 MVars.dbAdResult[i] -= 8388607.;
kevman 0:014fad4dfb9d 44 MVars.dbAdResult[i] *= EcmIni.dbUScale[i]; // Potential
kevman 0:014fad4dfb9d 45 MVars.dbAdResult[i] += EcmIni.dbUOffset[i]; // Offsetkorrektur für das Potential
kevman 0:014fad4dfb9d 46 MVars.dbAdResult[i] += 8388607.;
kevman 0:014fad4dfb9d 47 }
kevman 0:014fad4dfb9d 48 else
kevman 0:014fad4dfb9d 49 {
kevman 0:014fad4dfb9d 50 InitBaseInputArray();
kevman 0:014fad4dfb9d 51 printf("No Values, ChnAverage = 0\r\n");
kevman 0:014fad4dfb9d 52 return(false);
kevman 0:014fad4dfb9d 53 }
kevman 0:014fad4dfb9d 54 }
kevman 0:014fad4dfb9d 55 MVars.dbAdSum[i] = 0.0;
kevman 0:014fad4dfb9d 56 MVars.nChnAverage[i] = 0;
kevman 0:014fad4dfb9d 57 }
kevman 0:014fad4dfb9d 58 InitBaseInputArray();
kevman 0:014fad4dfb9d 59 return(true);
kevman 0:014fad4dfb9d 60 }
kevman 0:014fad4dfb9d 61 /*-------------------------------------------------------------------------------
kevman 0:014fad4dfb9d 62 InitBaseInputArray: setzt die Variablen für die Messdaten, welche im Interrupt gelesen
kevman 0:014fad4dfb9d 63 werden, auf Null
kevman 0:014fad4dfb9d 64 -------------------------------------------------------------------------------*/
kevman 0:014fad4dfb9d 65 void InitBaseInputArray()
kevman 0:014fad4dfb9d 66 {
kevman 0:014fad4dfb9d 67 int j;
kevman 0:014fad4dfb9d 68
kevman 0:014fad4dfb9d 69 for(j=0;j<8;j++)
kevman 0:014fad4dfb9d 70 {
kevman 0:014fad4dfb9d 71 MVars.dbAdSum[j] = 0.0;
kevman 0:014fad4dfb9d 72 MVars.nChnAverage[j] = 0;
kevman 0:014fad4dfb9d 73 }
kevman 0:014fad4dfb9d 74 }
kevman 0:014fad4dfb9d 75