Forum: Mikrocontroller und Digitale Elektronik C Sytax Erklärung


von Gerhard (Gast)


Lesenswert?

Hallo ,

kurze Frage an die vielen C'ler hier.
Hab im Netz einen Code für einen Kalman Filter gefunden.
Möchte diesen in Basic und in späterer Folge in ASM nutzen.
Da ich keine Ahnung von C habe bitte ich euch mir hier kurz
mit der Syntax von C behilflich zu sein.

Folgende Zeile in C ist mir klar:
P_01 += dt * P_11;
heißt in Basic dann
P_01 = P_01 + dt * P_11;

jetzt kommt im Code da aber noch ein Minus vor dem  dt , also:
P_01 +=  - dt * P_11;
in Basic dann:
P_01 = P_01 + - dt * P_11;
ist fölliger Quatsch , ist mir klar

Bitte um eure Hilfe, danke.

Gruss Gerhard
von klausr (Gast)


Lesenswert?

Gerhard schrieb:
> P_01 = P_01 + - dt * P_11;

Setz einfach eine Klammer: P_01 = P_01 + (- dt * P_11);
von Pedaa (Gast)


Lesenswert?

Nur noch mal im Klartext:

Du willst einen Kalman-Filter in Basic und dann in Assembler laufen 
lassen. Kannst aber kein C. Vorzeichenfehler passieren dir nur manchmal. 
Und von einer Multiplikation mit -1 hast du noch nie gehört.

Habe ich dich soweit richtig verstanden?
von Gerhard P. (gp144) Benutzerseite


Lesenswert?

Ist in Ordnung, nicht föllig zwar, aber völlig.

P_01 +=  - dt * P_11;

In Basic mit Klammern:

P_01 = P_01 + ( -dt * P_11);

Gruss Gerd
von Dave C. (dave_chappelle)


Lesenswert?

klausr schrieb:
> + (- dt * P_11);

Warum nicht einfach -dt * P_11?
von Gerhard (Gast)


Lesenswert?

Hallo,

das ging ja schnell... danke.
für das "föllig" entschuldige ich mich ! Ist ja aaarg....

Also dt * -1 und gut ists.
Aber wie kommt man denn auf sowas ??
Wiso dann nicht einfach:

P_01 -= dt * P_11;

Gruss Gerhard
von Ahmed (Gast)


Lesenswert?

redest du jetzt Basic oder C?

P_01 -= dt * P_11;

ist C und tut.
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.