Test
Dependencies: mbed-dev-OS5_10_4
MySources/AdCalculations.cpp@0:014fad4dfb9d, 2020-08-07 (annotated)
- Committer:
- kevman
- Date:
- Fri Aug 07 07:24:21 2020 +0000
- Revision:
- 0:014fad4dfb9d
Test
Who changed what in which revision?
User | Revision | Line number | New 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 |