Forum: Mikrocontroller und Digitale Elektronik Tasking XE166 XE164 Kalkulation


von hans (Gast)


Lesenswert?

Moin moin,

ich habe da mal ein Problem mit Tasking Tool for XE166 v8.7r3.

#define  maxMeasurableDClinkVoltage  440
int   kVDC_MIN  = 1;
float    test1;


test1 = (float)(kVDC_MIN * 4096 / maxMeasurableDClinkVoltage)  ;


die Fehlermeldung:

E  64: incompatible redeclaration of "test1"



Warum kann diese Kalkulation nicht durchgeführt werden und auschließend 
in test1 gespeichert werden.


Oder

int   N_I_u_v_w  ;
int   I_MAX  ;
#define  S0CurrentCalc  8

N_I_u_v_w =  I_MAX / S0CurrentCalc  ;

die Fehlermeldung:

E 175: not an arithmetic constant in initializer "N_I_u_v_w"

von Guido (Gast)


Lesenswert?

test1 wir einmal als Variable und zum anderen als Konstante
deklariert. Was nun?

Vermutlich wolltest du ein Funktionsgerüsz um die Zuweisung
bauen, z.B. als main.

von hans (Gast)


Lesenswert?

Ja eine Funktionsstrucktur war die Lösung.
1
// @Filename      MyCal.H
2
3
4
#define  maxMeasurableDClinkVoltage  440
5
int   kVDC_MIN  = 1;
6
float    test1;
7
8
int   N_I_u_v_w  ;
9
int   I_MAX  ;
10
#define  S0CurrentCalc  8
11
12
13
14
15
void test(void)
16
{
17
test1 = (float)(kVDC_MIN * 4096 / maxMeasurableDClinkVoltage)  ;
18
19
N_I_u_v_w =  I_MAX / S0CurrentCalc  ;
20
21
}

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.