Habe folgendes Proglem. Ich habe folgende Formel im Programm: Sollein_zeit = Sollein_winkel*Periode1/360 Lese die beiden Variablen über die Uartschnittstelle aus und sehe daruch was in den Variablen steht. In Solleinwinkel steht 10, das ist auch richtig also müsste das Ergebnis 277,77777..... lauten Aber wenn ich den Wert in UART auslese steht -86 drin. Wie kommt dieser Wert zustande? Hat jemand von euch ne Idee? Habe wie folgt global deklariert: int16_t Sollein_zeit=0; int16_t Sollein_winkel=0; int16_t Periode1 = 10000;
Schon mal überlegt, wie groß der Wertebereich für ein int16_t ist? Tip: 100000 passt nicht rein...
Ganzzahlige Variablen und Fliesskommazahlen beissen sich zwar nicht unbedingt aber ohne besondere Maßnahmen geht das nicht.
Grundlagen über Rechnung mit integer und Wertebereiche von signed und unsigned Integer anschauen.
Jan schrieb: > Schon mal überlegt, wie groß der Wertebereich für ein int16_t ist? > Tip: 100000 passt nicht rein... Danke dür den Tip, habe Sollein_zeit als int32_t deklariert, jetzt gehts. Danke dir
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.