mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AVR Division 16 Bit Wert / 96


Autor: R--- S--- (rene66)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Gibt es ein Rezept für die ein 16 Bit Wert  / 96 Division bei /128 
müsste das noch mit LSL und ROR gehen aber bei 96 so glaube ich wird es 
dann nicht mehr so einfach als Ergebniss benötige ich einen auf ganze 
Zahlen gerundeten Wert ohne Komma usw.

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Eine Möglichlkeit:
x/128 + x/512 + x/2048 + x/8192 +x/32768

Autor: R--- S--- (rene66)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Super Klappt Danke

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Super Klappt Danke

Und was bekommst Du heraus, wenn Dein Wert -1 beträgt?
;-)

Autor: R--- S--- (rene66)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Divident ist nie kleiner als 600 also dürfte das kein Problem sein.

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dann ist gut.
Nur manchmal wissen die Dividenden nicht, daß sie diese Bedingungen 
einhalten müssen und geben dem Programm ein völlig unerwarteten Verlauf. 
Dann kann stundenlange Suche angesagt sein. Wenn man das Vorzeichen 
beachtet, erspart man sich diese Mühe.

Autor: Hagen Re (hagen)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
oder

Wert * (2^16 / 96) / 2^16 == (Wert * 683) >> 16

Wenn man einen ATMega nimmt hat der eine HW-Multiplikation und die 
dürfte dann schneller sein als die vielen Shiftoperationen. Die obige 
>>16 Operation kann man sich einsparen, das Zwischenergebnis=Wert * 683 
ist ein 32 Bit von dem man nur die obersten 2 bytes als Resulat benutzt, 
also implizites Rechtsshift mit 16.

Gruß Hagen

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.