2016-06-22 19 views
-4

Ich bin mit den Arduino-Programmierwerkzeugen vertraut, habe aber relativ wenig Erfahrung mit Embedded-Programmierung. Bei der Verwendung von Dezimalzahlen im Arduino hatte ich nie irgendwelche Probleme. Als ich vor kurzem anfing, mit dem TI Launchpad F28069M (TMS320F28069M Chip) herumzuspielen, war ich überrascht, dass meine Berechnungen nicht die erwarteten Ergebnisse erbrachten. Während die Forschung zu tun, stellte ich fest, dass der TI-Chip einen Fixpunkt Prozessor aufweist, der auf 0 mag erklären, warum sind meine Dezimalstellen abgeschnitten werden (siehe Kurzcodebeispiel)C Sprache Fixed Point Math

Meine Fragen sind:

  1. Wie Soll ich in meinem Code Dezimalzahlen angeben?
  2. Sollte ich die IQ-Mathematik von TI verwenden?
  3. Warum konnte ich mathematische Funktionen mit Dezimalzahlen im Arduino ohne Probleme deklarieren und ausführen?

My-Code

Uint16 A; 

main() 
{ 
    A = .25; 
} 

Ergebnis aus Expression Fenster in TI CCS: Expression Window CCS

Expression Window CCS

+8

'Uint16' ist eine 16-Bit-Ganzzahl ohne Vorzeichen (keine Dezimalzahlen ...), also was ist nicht klar ??? .... – LPs

+5

Sie haben * viele * Missverständnisse. –

+3

Uint16 ist kein Fixpunkttyp im gesunden Menschenverstand. –

Antwort

-1

mit diesem Code Versuchen Sie stattdessen:

float A; 

main() 
{ 
    A = .25; 
}