Modulo mit Shift in C, wie?

Beitrag #5021517 wurde von einem Moderator gelöscht.
#5021519
Lesenswert?
• ▲
▼
Moin,

OK, bei einem AVR haett's mich nicht gewundert; aber beim STM32 kann ich 
fast nicht glauben, dass es daran liegt. iirc kann der doch Division in 
Hardware; da waer's sehr verwunderlich, wenn das laenger dauern sollte 
als eine handgebastelte shifterei.

Wie kommst du drauf, dass das lange dauert? Schon mal geguckt, was der 
Compiler draus fuer Code erzeugt?

Gruss
WK
#5021528
Lesenswert?
• ▲
▼
Hi

4bit 0...15 Da ist ein MOD 360 einfach ;)

Wenn sich der Wert immer nur sporadisch erhöht und relativ langsam 
erhöht, kannst Du den Wert korrigieren, wenn Er über 360 angewachsen ist 
(Wert=Wert-360).
In die andere Richtung müsste man auf 'Negativ' prüfen (höchste Bit 
gesetzt) und dann eben Wert=Wert+360 machen, bis der Wert wieder 'im 
grünen Bereich' ist.

Dafür sollten dann 9bit reichen bzw, 10bit, um das 'Negatib-Bit' nicht 
irrtümlich zu setzen.

MfG
Beitrag #5021575 wurde von einem Moderator gelöscht.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.