-
Thread
Mein "neuer" Taschenrechner
, hat der Calculigraphe nur eine davon. Deswegen braucht man hier für eine Multiplikation oder Division drei Drehvorgänge, wo sonst nur zwei erforderlich wären. Dafür hat man aber Platz für eine weitere Skala für Sonderfunktionen gewonnen, was für den Erbauer des Geräts wohl höhere Priorität hatte
hat der Calculigraphe nur eine davon. > Deswegen braucht man hier für eine Multiplikation oder Division drei > Drehvorgänge, wo sonst nur zwei erforderlich wären. Dafür hat man aber > Platz für eine weitere Skala für Sonderfunktionen gewonnen, was für den > Erbauer des Geräts wohl höhere Priorität
-
Thread
langsamstes Quart für welche Baudrate? Gesperrt
Baudrate zu kommen. Es gibt aber sogenannte Baudratenquarze, deren Takt sich ganzzahlig, ohne Divisionsrest, auf die üblichen Baudraten teilen lassen. Ist vor allem bei hohen Übertragungsraten interessant. Baudratenquarze haben so komische Frequenzen wie z.B. 14,7456 MHz und nicht 16 MHz. Habe diese
-
Thread
Ausreißer weg filtern
spart. Denn einfache Schiebeoperationen können Mikrocontroller meist schneller erledigen als eine Division. Aber ansonsten stimme ich Dir voll und ganz zu. Frank
-
Thread
Funktionsumfang ATiny841
wirklich vollkommen nebensächlich. 99% aller Programmierer werden Code, der Multiplikationen (oder Divisionen) verlangt, in C schreiben. Daß ein Hardware-Multiplier schneller ist, ist unbestritten. Aber wie relevant ist das in der Praxis? Und falls es relevant sein sollte, spricht das dann nicht lediglich
-
Thread
Mittelwert über 11 Messwerte
Beispielsweise ist völlig unklar ob er einen Mittelwert alle 11 Zyklen will (Summe bilden + Division, dann erneut von vorn beginnen) oder ob es ein gleitender Mittelwert mit 11 Zyklen rückblickend werden soll (in jedem Zyklus immer die aktuell letzten 11 Zyklen auswerten).
-
Thread
STM32 PWM One Pulse Mode mit variablen Puleweiten
Dshot600 TIM_TimeBaseStructure.TIM_Prescaler = 0; //84MHz TIM_TimeBaseStructure.TIM_ClockDivision = 0; TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure); /* PWM Mode configuration */ TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1
Dshot600 TIM_TimeBaseStructure.TIM_Prescaler = 1; //84MHz TIM_TimeBaseStructure.TIM_ClockDivision = 0; TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; TIM_TimeBaseInit(TIM1, &TIM_TimeBaseStructure); /* PWM Mode configuration */ TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1
-
Thread
Ist x>>16 das Gleiche wie x/65536?
Division: [code] mov r3, #65536 sdiv r0, r0, r3 [/code] Shift: [code] asrs r0, r0, #16 [/code] gcc version 6.3.1
Mike schrieb im Beitrag #5203417: > Allerdings ist die Division eine aufwändige Operation, da der ARM sie > iterativ berechnen muss, denn es gibt keinen Maschinen-Divisionsbefehl. Eigentlich sollte jeder halbwegs moderne Compiler eine Division/Multiplikation
-
Thread
Effiziente Division durch Multiplikation
ist das Ergebnis immer identisch mit der direkten Division. Habe ich das richtig zusammengepuzzlet, oder habe ich irgendeinen möglichen Überlauf übersehen? Viele Grüße W.T.
Und das ist wirklich schneller als die 12 Takte, die Cortex-M3/4 für eine Integer-Division braucht?
-
Thread
Beschaltung RC4200 Dividierer
rechnet dann den benötigten Strom aus (die Spannung kennt sie ja) und stellt diesen Strom ein. Die Division erledigt der Multiplizierer - beschaltet als Dividierer (siehe das obere Bild aus dem Datenblatt). Die Beschaltung sollte dann jedoch stimmen. Daher die Berechnung im Datenblatt - die leider teilweise
-
Thread
Schlechte Treibersignale - Mosfet
es zum Anhang gelegt. Wie zu sehen ist, ist die Spannung einwandfrei (nicht von den 500mA per division irritieren lassen, das sollten 5V sein). Doch wenn ich die Spulen des Gleichrichters anschließe und das ganze an 10 Ohm Last, dann ist eine zu geringe Spannung zu sehen, die auch nicht konstant
-
Thread
I/O Interface Module mit Embedded AVR Webserver lässt sich nicht kompelieren
"BAUD must be a constant value" ...\avr\include\util\setbaud.h 125 4 chip45_LAN Fehler 4 division by zero in #if ...\avr\include\util\setbaud.h 201 11 chip45_LAN Fehler 5 division by zero in #if ...\avr\include\util\setbaud.h 204 11 chip45_LAN Fehler 6 division by zero in #if ..
-
Thread
Leistung messen an 230V von 1W bis 2000W
mit 32 bit rechnen - bei 24Bit-Samples schon nötig. Und eine 32-Bit Wurzel, Multiplikation oder Division auf dem ATMEGA geht nicht schnell genug. Ich habe einen PIC32MX beschäftigt, das klappte hervorragend. Aber 40MHz hab ich trotzdem gebraucht. Ein ARM kann das natürlich auch, oder ein AVR32.
-
Thread
Wahl eines Controllers für bestimmte Aufgabe
Kommt drauf an, was für Rechnungen durchgeführt werden sollen. Für Multiplikation/Division sollte schon ein Hardware-Multiplier vorhanden sein. Reichen Integer aus oder werden Fließpunktzahlen benötigt?
> Für Multiplikation/Division sollte schon ein Hardware-Multiplier > vorhanden sein. Bei der Division bringt dich der Multiplier nicht wirklich weiter. > Du wirst aber bestimmt recht viel Rechenleistung brauchen. Herrje
-
Thread
PIC 18f 24bit Division
Kann mir keiner mit einer Divisionsroutine weiterhelfen?
mit irgendeiner Zahl (kann ich ja einfach durch Verschiebung nach links lösen) und erneute Division? In welcher Form habe ich denn dann das edgültige Ergebnis der Division? Kann doch dann eine 32bit Zahl sein, bei der die oberen 16bit der ersten Ganzzahldivision entsprechen und die unteren 16bit
-
Thread
Zahlenwerte in Gleitkommazahl umwandeln in c
Schritt in die Richtung, den Leser auf die Spur zu bringen. Das ist irgendeine Approximation einer Division, ohne tatsächlich Dividieren zu müssen. 1/2 + 1/4 + 1/32 ergibt 1 / 1.28 Jetzt musst du in deinem Datenblatt weitersuchen, wo eine Division durch diesen Wert (oder ein Wert der sehr nahe an dem
(damit die > Zahlen klein bleiben, sonst müsste man 32bit-Arithmetik werwenden). > Wegen der Division (128=2^7) fängst du mit dem Exponenten 7 an. (klatsch. Flache Hand auf die Stirn) Aber natürlich! So erklärt sich auch der Exponent von 7. Der hat mich schon sehr verwirrt. (Alles in allem
-
Thread
FFT mit ATmega88
frequency above 100 kHz. • Bits 2:0 – ADPS2:0: ADC Prescaler Select Bits These bits determine the division factor between the system clock frequency and the input clock to the ADC. Sogar hier ist es so beschieben: http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#ADC_.28Analog_Digital_Converter
-
Thread
Analogmesswerterfassung an NTC (Genauigkeit und Filter)
genug? Wenn ich mittle gibt es mehrere Möglichkeiten dies zu tun: a) [c] summe >>= 1; // division 2 summe +=1; // 1 addieren um zu runden summe >>= 1; // divsion 2 (bei 4 Werten) [/c] oder b) [c] summe >>= 2; [/c] b)ist natürlich effektiver, a) dafür aber genauer, weil ab x,5 hoch
den Unsinn mit summe >>= 2; Sowas ist regelmässig ein Eigentor. Wenn es möglich ist eine Division durch Schieberei zu ersetzen, dann wird das der Compiler für dich machen. Das ist nichts worüber du dir Gedanken machen musst.
-
Thread
mehrere Servos
ich was? die Multiplikation mit einem Wert in der Größenordnung von ca 64 (das CENTER) vor der Division. Der begrenzende Faktor ist nicht das Poti oder der ADC, sonder die Abstufung der PWM, die sich durch Taktfrequenz und Vorteiler bestimmt. Je besser er damit bei seiner Taktfrequenz die Obergrenze
-
Thread
digitales Filter so schwer?
ersetzt erhält man X[n] = X[n-1] + (adc - X[n-1])*k1 Damit erspart man sich die beiden Divisionen.
-
Thread
Custom IP-Core für Mittelwert/Standardabweichung
Summen hinzu und erhöht den Zähler. Ergebnisregister. Hier musst Du Dich enscheiden, ob Du die DIvisionen in Hardware (aufwendig) oder lieber doch mit dem Prozessor machen willst. Da Du nur zwei Divisionen am Ende Deines Datenblocks brauchst, würde ich den Prozessor nehmen. Dann hast Du drei Ergebnisregister
-
Thread
C18 oder HiTech
ist mir folgendes aufgefallen: C18 unterstützt keine anonymen Strukturen. Hi-tech ersetzt keine Division durch Bit-shift wenn das möglich ist. Bei einem 'i/2' wird also dividiert, der Ausdruck also nicht implizit in 'i>>1' umgewandelt. Ansonsten konnte ich keine wesentlichen Unterschiede ausmachen.
-
Thread
integer Verständnis
Zeile [C] erg /= 100 [/C] enthält keinen Cast nach 32 Bit, erg ist aber 16 Bit. Ergo wird die Division in 16 Bit ausgeführt.
Hast recht. Ich habe übersehen, das die Division jetzt in einem eigenen Ausdruck steht.
-
Thread
TMS320F28016 ist zu langsam
vielleicht nicht mehr auf dem neuesten Stand. Welcher Prozessor hat denn in der Klasse eine Divisions-Einheit? Selbst die Sharc DSPs von AD hatten nur eine einfache fixpoint - divisionseinheit (Stand vor 3 Jahren). Wofür benötigst Du die Division überhaupt?
Ja stimmt. Eine vorhandene Divisionseinheit bedeutet noch nicht eine Division in einem Takt. Das hatte ich fälschlicherweise angenommen. Vorteil der Divisionseinheit ist allerdings, dass sie zur Laufzeit die Anzahl der Durchläufe reduziert
-
Thread
UART Baudrate berechnen
((F_CPU+BAUD*8)/(BAUD*16)-1) // Da fehlt die Rundung! Faktor 2 höher rechnen und vor der Division +1 addieren. Das schaffst Du schon!
-
Thread
Problem mit Funktion: Pointer falsche Arraygröße
stehen > sollte. Wieso 5? Irgendwas modulo 2 kann nur 0 oder 1 sein (Rest der ganzzahligen Division durch 2)
-
Thread
Compiler und Konstanten.
gern mal schwer findbare Fehler einhandelt. Und wenn das mein Code wäre, dann gäbe es da den Divisionsoperator gar nicht ;) ... Aber was kann ich für mich denn jetzt da als Lehre draus ziehen, unter was für bedingungen der Optimizer anschlägt? Weil wie gesagt, ICH weiß, daß das alles Konstanten sind
speziell bei Makros fatal auswirken können * grundsätzlich falsche Reihenfolge in der Berechnung (Divisionen die zu früh gemacht werden) Solche Dinge sind es meistens, die einem das Genick brechen. Das Optimizer hier daneben greifen, kommt bei etablierten Compilern praktisch nicht vor.
-
Thread
Berechnun in Assembler
Ausgabe nur das Komma richtig setzen. Die 200000 ist ja eine Konstante, Du muß natürlich dann eine Division 24Bit/8Bit benutzen und hast dann maximal 24Bit als Ergebnis. Beispiele dazu sind im Netz, da Du den Kram ja anzeigen willst, spielt die Rechenzeit der Division keine wirkliche Rolle. Gruß aus
Hallo, Hier vielleicht etwas direkter: http://www.avr-asm-tutorial.net/avr_de/rechnen/division.html Gruß aus Berlin Michael
-
Thread
[MSP430] Probleme mit dem Mikrocontroller
solltest Du immer über eine Zweierpotenz an Messwerten mitteln (2,4,8,...). Dann vereinfacht sich die Division zu einer Shift-Operation, die wesentlich schneller ausgeführt wird, als die Divisionsroutine, die Dein Compiler für /5 einsetzen muss! Möglicherweise ist diese langsame Division auch ein Grund für
-
Thread
16x16 Multiplikation Pic
die jemand vielleicht sogar schreiben. Das wäre echt super. Kann gegebenenfalls eine 16Bit Divisionsroutine anbieten. mfg
das divisionsprogramm habe ich bekommen. Ich versteh grad noch zirka wie es funktioniert
-
Thread
Porgramm gesucht
aber nur ASCII-Zeichen darstellen. Die Zahl muss also in Ziffern zerhackt werden. In AVR-ASM ist Division recht ressourcenfressend, daher ist wiederholte Subtraktion die bessere Wahl. Beispiele sind in diesem Forum zur Genüge zu finden, vermutlich bereits im Tutorial. Du solltest also Deine Gesamtaufgabe
-
Thread
Blutrausch wegen i2c
freq = F_CPU/(16+2*TWBR)) #ifdef TWPS0 // for processors with additional bitrate division (mega128) // SCL freq = F_CPU/(16+2*TWBR*4^TWPS) // set TWPS to zero cbi(TWSR, TWPS0); cbi(TWSR, TWPS1); #endif // calculate bitrate division
-
Thread
Rechnen mit Assembler
versuchen mit einer Zahl (Konstante) zu multiplizieren, so, dass beim Weglassen des/der unteren Bytes (Division durch 256 bzw. 65536) das obere Byte im gewünschten Bereich von 00..99 liegt. Dann die Zahl in BCD zerlegen und zu jeder Ziffer (0..9) mittels LookUp-Tabelle (über Z-Pointer und Flash) das Bitmuster
-
Thread
Signal integrieren
Ein AD-Wandler ist immer diskret, also geht es doch nur um ein Aufsummieren und eine Division durch die Anzahl der Samples? Kommen negative Werte vor, dann müssen sie natürlich subtrahiert werden. Ein Integral ist doch in diesem Fall die Summe der Flächen unter der Kurve, also gleich Mittelwert
-
Thread
Platine ätzen
Küchenwaage (z.B. so ein Teil bis 2000g Wägegewicht), zähle 10 flache Löffel Salz ab und wiege es (Division durch 10 = Gewicht welches pro Löffel anfällt). Salz geht besser um das auszutesten, da NaOH stark Wasser anzieht und verklumpt (lass es nicht offen stehen!). Entwiclung nicht viel länger als 2
-
Thread
Analoge Schnittstelle C167
eigentlich sagen müssen. unsigned int uein; uein = wert*(5/1023); Dir ist bewusst, dass die Division 5 / 1023 immer 0 ergibt? Da ich mal davon ausgehe, dass du genau das nicht wolltest: uein = wert * ( 5.0 / 1023.0 ); 5/1023 : Da beide Partner in der Division, sowohl 5 als auch 1023 int sind, wird auch die Division selbst im int-Raum gemacht. Wenn du das anders willst, muss mindestens einer der beiden, oder alle beide, vom Typ double (oder float) sein.
-
Thread
Ersatz für modulo
Also die Division ist auch "nicht ohne" aber machs doch so: Wenn der Controller ne Hardware Divisionseinheit hat geht das recht gut. [C]for(i = 0;i <= 9; i++) { x=Value/10; y=x*10; Buffer[10-i] = x-y + 48;
Divisions-Restes muss nunmal eine Division durchgeführt werden. Und Divisionen durch Zahlen, die keine Zweierpotenzen sind, sind nunmal etwas länglich.
-
Thread
Standardabweichung im FPGA
ihr da rangehen? Genauso wie auf dem Papier. Die Fromel muss halt duchgezigen werden. Wobei Division aufwändig wird, Wurzel erst recht. >Vielleicht erst einmal zum Hintergrund: Ich habe Signale, die ich durch >meine 11 bit breites und 10 'Schiebungen' tiefes Schieberegister im FPGA ???? Das
entsprechenden Resourcen. Ich würd zu einer pipeline raten, die 4x clocked (wegen der 4 Elemente). >Wobei Division aufwändig wird, Wurzel erst recht. Ansichtssache. Die Division und indirekt auch die Wurzel erfolgen mittels Partialbruchzerlegung und benötigen nicht mal zwingend Multiplier. Der Megawizzard
-
Thread
Dividieren möglich?
dividieren: A<= B/C? Auch für die Synthese? Mich interessiert nur der ganzzahlige Wert der Division, der Bruchteil ist egal. Kann ich auch die modulo.Operation nutzen und synthetisieren? Wenn ich jetzt einfach X/1000 rechne, dann kommt ja ein Ganzzahlwert heraus (in der simulation jedenfalls
funktioniert auch nach der Synthese. Du könntest dich auch nach Algorithmen umschauen die ohne Division auskommen. Ein Anfang wäre schonmal die Division in eine Multiplikation umzuwandeln.
-
Thread
Übersetzung für zwei Zeilen C-Code
Wenn Du darauf anspielst, dass (Y/8)*128 = Y*16 ist... ...weit gefehlt!!! Die (Ganzzahl-) Division /8 schneidet eventuelle Nachkommastellen einfach ab. Also z.B. 15/8 = 1 Damit wäre dann (15/8)*128 = 128 und *nicht* 15*16 = 240! Wozu das nun gut sein soll, ist ohne weitere Infos zu dem GLCD
-
Thread
AVR Division Spezialfall: 0xXX00 / 0xXX (16/8 Bit)
der AVR200 Bibliothek angesehen, aber die einzig in Frage kommende wäre "div16u" (16/16 unsigned division). Nun kommt mir die aber etwas überdimensioniert vor, da ich ja ein spezielle Vorraussetzungen für die Zahlen habe. Lässt sich das irgendwie optimieren, sodass ich keine 200 Cycles für eine Division
Kann vielleicht jemand dazu Stellung nehmen? Ich befasse mich erst seit gestern mit der binären Division, deswegen fällt es mir noch ein bisschen schwer, solche Algorithmen zu überblicken... Gruss, Christoph
-
Thread
PT100 Berechnung der Temperatur @ Widerstand
umsetzt? Das einzige Verfahren, das mir spontan einfällt ist das Heron-Verfahren und das braucht eine Division pro Approximationszyklus - und die muss auch erstmal dem Mega32 beigebracht werden... Ich hätt's wahrscheinlich eher als Wertetabelle mit linearer Interpolation umgesetzt - oder kubisch, wenn's
-
Thread
Push und Pop Befehle weglassen
Beispiel Stringfunktionen. Zum Beispiel Arithmetikfunktionen, wie zb 16 Bit Mutliplikationen oder Division oder .....
-
Thread
Welcher Verstärker ?
Verstärker im C-Betrieb benutzt werden? DVB-T nutzt als Modulationsverfahren Orthogonal Frequency Division Multiplex (OFDM). Alle Datenträger in einem OFDM Rahmen werden entweder mit QPSK, 16-QAM, 64-QAM, oider 256 QAM moduliert. Die Kanalbandbreite beträgt 8 MHz. Es erfordert also einen Linearverstärker
-
Thread
PI-Regelung in PLL
P-Korrekturwert für den nachzuführenden Oszillator liefern. Dies dürfte durch Addition der Werte und Division durch ihre Anzahl bereits eine Mittelwertbildung sein, wobei klar der Anfang und das Ende des Zeitintervalls vorherbestimmt sind und somit ein Integral mit festen Grenzen gebildet wird. Die Integrations-Zeitkonstante
-
Thread
3S-BMS von Aliexpress
> 4,2V / 100 Ohm = 42 mA Wie peinlich! Danke für den Hinweis. :( Multiplikation und Division mit Zehnerpotenzen - da gibt es doch bestimmt ein Youtube-Tutorial für mich! :)
-
Thread
ADC ATMEGA644 teilweise unplausible Werte
spätest möglichen Zeitpunkt zu machen, z.B. vor der ersten Verwendung. Außerdem sind float und Division auf dem AVR teuer und da der AVR keine Interruptlevel kann, mehrfach teuer. Andere Interrupts könnten störend ausgebremst werden.
-
Thread
reziproker 50-Hz Netzfrequenz-Zähler; AVR-assembler
also die um 2 oder 5 erhöhten Zählerstände, die tendentiell zu einem kleineren Ergebnis nach der Division führen müßten. Das Projekt hier sollte mich nach 15 Jahren wieder mit Assembler vertraut machen und ich wollte einige Feinheiten der Timer nacheinander ausprobieren. Ich hatte von früher noch etliche
-
Thread
4 Bit Wert in 3 1/2 Bit umrechnen?
umzurechnen und umgekehrt. Wichtig ist dabei nur, daß man den Koeffizienten so wählt, daß eine Division durch 256 oder 65536 oder andere Zweierpotenzen herauskommt. Peter
-
Thread
MOVING AVERAGE FILTER in FastAVR?
angenährt wird. Sehe ich das jetzt falsch herum ? @Norbert: die meisten Hochsprachen optimieren Divisionen oder Multiplikationen von Ganzzahlen mit einer 2'er Potenz-Zahl immer als Links/Rechtsshift. Also auch wenn man X / 4, oder X mod 4, oder X * 4 schreibt so sollte der Compiler smart genug sein diese in X >> 2, X and 3, X << 2 zu übersetzen, WENN die Hardware keine schnellen Divisionen, Multiplikationen unterstützt. Gruß Hagen
-
Thread
128 Byte in eine variable speichern
Library dafür. z.B. GMP https://gmplib.org/ Für sowas wäre aber python einfacher als c (einfach bei Divisionen / und // nicht verwechseln).