Der Nachfolger des WDR-Computerclub mit Wolfgang Back und Wolfgang Rudolph - ...und immer ein Bit übrigbehalten!


Das Forum zur C-Control-1
Welche C-Control-Varianten existieren?
Übersicht - Suchen - Neueste 50 Beiträge - Neuer Beitrag - Login - Registrieren
INFO - FAQ - CC2-Forum - CCPro-Forum 

 Der Rechenweg Kategorie: Open-Micro/Open-Mini/Open-Midi/Open-Macro/Open-Maxi (von Dietmar, Homepage - 25.06.2018 19:00)
 Als Antwort auf Der finale Code von Dietmar - 28.11.2017 17:23
Dietmar nutzt:  Open-Micro, Open-Mini, Open-Midi, Open-Macro, Open-Maxi, Open-Mini M-Unit, Open-Mini Station
Hallo zusammen,

ich habe einem Open-Maxi-Anwender per E-Mail den Rechenweg erklärt. Hier die Erklärung:

Die Berechnungsvorschrift lautet "Wert/64-256". Hiermit kann der vom Modul zurückgelieferte Wert in Grad Celsius umgerechnet werden. Das Problem ist aber, daß "Wert/64" Nachkommastellen produziert, die von den OM-Controllern nicht unterstützt werden.

Es gibt aber den Trick, geeignet zu skalieren, also mit einer konstanten Zahl malzunehmen. Das Ergebnis liegt dann ebenfalls skaliert vor. Wenn man zum Beispiel mit 64 skaliert, lautet die Berechnungsvorschrift "Wert*64/64-256*64". Natürlich ist "64/64" gleich 1, man muß also nur noch "Wert-256*64" rechnen. Das können die Mikrocontroller gut verarbeiten und man kann mit diesem skalierten Ergebnis gut rechnen.

Im vorliegenden Fall kann die Open-Macro und Open-Maxi aber nur Zahlen von -32768 bis +32767 verarbeiten, da WORD-Zahlen im Zweierkomplement dargestellt werden. Deshalb habe ich nur mit 32 skaliert. "Wert*32/64-256*32" und "32/64" ergibt "/2". Da hierbei der Term "Wert/2" negativ werden könnte, habe ich noch "AND &h7fff" gerechnet. Dadurch wird das oberste Bit auf Null gesetzt. Es wird deshalb nur mit 15-Bit-Auflösung gerechnet.

Im weiteren Programmverlauf wird das Ergebnis als Kommazahl auf der Seriellen Schnittstelle ausgegeben. Dabei muß die Skalierung beachtet werden und so muß "wert/32" und "wert MOD 32" berechnet werden.

Viel Spaß und Erfolg mit den OM-Mikrocontrollern!

Dietmar

Meine Homepage: http://ccintern.dharlos.de

 Antwort schreiben

Bisherige Antworten: