Modulo mit Shift in C, wie?

Beitrag #5021517 wurde von einem Moderator gelöscht.
#5021519
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
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

Eine eigene Frage? Dieser Thread ist über 9 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.