online 1
gast (50)

/ Forum / Anwendungen(Java,C++...)

Anwendungen(Java,C++...)Anwendungen(Java,C++...)

Fragevon ZionMin vom 03.11.2019, 06:37 Options

Problem in C - runden?

Hallo!

Ich hab hier eine Formel in C:


uint16_t potiwert;
potiwert = ReadChannel(1);
potiwert = (potiwert / 8);


Es wird damit der Wert eines Potis an einem AVR-µC abgefragt und umgerechnet.

Der Controller hat eine Auflösung von 1024. Der Poti soll einen Wert zwischen 0 und 127 regeln. Also habe ich gerechnet:

1024 / 127

= 8,062....

Jetzt rechnet der Controller also:

Ausgelesener Wert des Potis (irgendwas zwischen 0 und 1024) geteilt durch 8.

Problem: Irgendwie kommt bei mir am PC (ich nutze MIDI um die Signale des Controllers zu empfangen) nichts an und ich vermute, dass der Controller irgendetwas schräges mit Kommastellen sendet, was MIDI nicht versteht.

Gibt es eine Routine, mit der man die Formel eventuell genauer berechnen kann und die am Ende die Zahl auf eine glatte Zahl zwischen 0 und 127 bringt?

THX


Antwort schreiben

Antwort 1 von Supermax vom 03.11.2019, 08:54 Options

Da du die Variable "potiwert" als uint definiert hast, kann sie gar keine Nachkommastellen aufnehmen.

Am besten hol dir mal Sysinternals "PortMon" oder ein entsprechendes Programm für die MIDI-Schnittstelle, um zu sehen, welche Daten gesendet bzw. empfangen werden.

Ähnliche Themen

Runden auf Fr. 0.05
slyf  21.03.2007 - 220 Hits - 1 Antwort

Zeitwerte auf ,5 runden
Wienerle  19.05.2007 - 121 Hits - 2 Antworten

Zeiten in Excel runden
dat_karlchen  29.05.2007 - 206 Hits - 10 Antworten

Ergebnis aus Summe runden
Amalia  26.11.2007 - 119 Hits - 3 Antworten

Mit PHP Zahl runden
ClaudiaGauss  15.05.2008 - 41 Hits - 3 Antworten

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Mon Jan 26 11:26:25 2026