-
Thread
Laufzeit einer Division variiert
dabei als normales Verhalten. Schreibe (und optimiere hinterher) einfach selber mal so eine Divisionsroutine, dass wirst du sehen, dass du abhängig vom Bitmuster andere Strategien und Wege gehen musst. Matthias H. schrieb im Beitrag #5099159: > Weil der Compiler, bei bestimmten Werten die Division
bereichen(drüber,drunter) unterschiedlich lange dauern... Programmiere doch mal selber eine Division in Assembler. Hinweis: Schriftliche Division wie in der 3. Klasse. Dann wird klar, warum die Regenzeit der Division unterschiedlich lang wird.
-
Thread
Probleme beim Poti über ADC auslesen
; } void setup() { //ADC initialisieren ADMUX = (1<<REFS0); //Free Running Mode, Division Factor 128, Interrupt on ADCSRA = (1<<ADEN)|(1<<ADSC)|(1<<ADATE)|(1<<ADPS2)|(1<<ADPS1)|(1<<ADPS0)|(1<<ADIE); // UART TERMINAL UBRR0H = (uint8_t)(BAUD_PRESCALLER>>8); UBRR0L =
-
Thread
Frage bezüglich einer elektrischen Fliegenklatsche
fliegenden Rotkreuz-Blutspendeservice kann ich gerne verzichten! Echt lästig wenn der abends in Divisionsstärke kommt. Selbiges für den BVB-Fanclub (gelb-schwarz gestreift) der mir beim Bier trinken und Steak essen helfen will. Wenn man diese lästigen Zeitgenossen dann vertreiben will stechen einem die
-
Thread
VU-Meter, aber korrekt!
log10(i / 70); Von welchem Typ ist i? Wenn es ein Integer ist, dann ist i / 70 eine Integer-Division, spirch: Nachkommastellen fehlen. Und davon wird dann dein Logarithmus gebildet. > Serial.println(LUT[i]); > } > // -----------------------------------
-
Thread
Microblaze Performance
Werte zustande? Vor allem bei den Float-Multiplikation gibt Xilinx an, dass diese in 4 takten, die Division in 28 Takten zu schaffen sei. Da bin ich aber doch sehr weit entfernt, obwohl der Haken bei FPU in den Microblaze Einstellungen vorhanden ist. Aber auch das Lesen und Schreiben vom SDRam müsste doch
0 habe. Das Einzige was mich jetzt noch stört sind die anderen hohen Werte: einmal die U64 Division unddie F64 Operationen. Lässt sich da noch was amchen oder ist das nicht möglich, da es dafür evtl garkeine Hardware Unterstützung gibt?
-
Thread
PIC 32 Erfahrungsberichte
auf einen einzigen Befehl. Das ist ganz nett, aber jenseits von Speicherblockoperationen und der Division (derentwegen er wohl überhaupt existiert) ist sie von begrenztem Nutzen. Andererseits springen die PIC24 mit einem Takt Verzögerung. Der MIPS-Core, der diesen pipelinetypischen Delay-Slot naturgemäss
-
Thread
Interrupt in ISR freigeben
Das /10 finde ich nicht so schön, da Divisionen auf dem Avr nicht so günstig sind. Wenn schon Divisionen im Programm sind, ist das aber egal. Mit einem 10^x Array könnte man da noch ein bisschen rausholen.
braucht laut avrstudio kanpp 400Cycles. Deine liegt bei 6000. Das liegt wahrscheinlich an den vielen Divisionen. Außerdem dreht deine Funktion das Ergebnis um.
-
Thread
Lichtorgel mit Bandpassfilter
wird man sicherlich auch noch durch 2 getrennte Variablen los. Was ist mit DCgain? Muss diese Division sein? Wozu verwendest du das Ergebnis der Funktion?
Karl heinz Buchegger schrieb: > Was ist mit DCgain? Muss diese Division sein? Wozu verwendest du das > Ergebnis der Funktion? Wie gesagt, dass ist generierter Code aus WinFilter. Da DCGain immer etwas aus 2^x ist, kann man es schnell shiften. Ich hoffe, dass meine
-
Thread
Wie genau solte eine Schachuhr sein
Spieleprogrammierung mit deiner Updateprüfung. Danke für den Tipp. Sollte man aber nicht mit Divisionen sparsam umgehen (bei dem Prog ist das natürlich egal), der Atmega hat doch keine Hardwaredivision, oder hab ich da was falsches gehört. F_CPU wird bei mir mit 8000000UL definiert. Was heißt das
dein Programm etwas ganz anderes macht. > Danke für den Tipp. > Sollte man aber nicht mit Divisionen sparsam umgehen (bei dem Prog ist > das natürlich egal), der Atmega hat doch keine Hardwaredivision, oder > hab ich da was falsches gehört. Ist in dem Fall schon ok. Du hast 1 Sekunde Zeit
-
Thread
LPC2103 63MIPS?
einen Test alle mit Abstand gewonnen, selbst bei speicherintensiven Schleifen. Nur bei 16Bit Divisionen war der dsPIC30/PIC24 schneller. Den PIC18 konnte ich auf die schnelle nicht testen, aber er dürfte bei 10MIPS so ca. 30% länger als der ATmega@16MIPS brauchen. Das heißt für mich, dass ich
Noch ein Vorschlag. Der Focus auf Division in den meisten Teilen dieses Benchmarks laesst den LPC2103 eigentlich echt schlecht aussehen, der ARM7 hat naemlich keinen DIV Befehl. Waere interessant einen STM32 oder LM3xx mit Cortex M3 auch zu
-
Thread
Zeigerübergabe
Beispiel mit Type-Cast ist ungefähr vergleichbar zu einem mathematischen Beweis mit Hilfe einer Division durch 0. "cast" steht für wegwerfen. Damit kannst du beiweisen dass 1==2. Tatsächlich sitzt ein Compilerbauer bei manchen Systemen etwas in der Falle. Es gibt manchmal keine Adresse im Datenadressraum
-
Thread
Problem mit ADC an mega128
Hi @Falk Nicht die Multiplikation, sondern die Division durch 1023. Oder ist es für dich illegitim Software durch Nutzung der Hardwareressourcen zu vereinfachen. Diese Referenzspannung ist genau dazu vorhanden. MfG Spess
>Division durch 1023 1024! Und das ist nicht sooooooo schwer: LOW(var>>2) Oder das ganz weglassen.... ;-)
-
Thread
Drehzahl Messung die Xte...
Hi Dennis... Bei BCD-Umwandlung muss man auch dividieren, zwar durch Zehnerpotenzen, aber Division ist das auch. Und Division ist erstmal wiederholte Subtraktion, die man (wenn man sie richtig verstanden hat) etwas optimieren kann. Nochmal zu dem "Anderen Michael" seinen Beitrag. Ich finde ihn
Hi! Find ich gut, das Du Deine eigene 24 Bit-Division machst. Ich habe einfach die 16/16-Division (Div16u) aus dem 'avr200.asm' genommen und auf 24 Bit 'aufgebohrt'. Habe die umgebaute Routine gerade nicht zur Hand, erst heute Abend. Gruß Andi
-
Thread
ARM Axx für Real-Time
der Regelalgorithmus pro Durchlauf denn als Hausnummer? Addition, Subtraktion, Multiplikation, Division, trignonometrische Funktionen?
-
Thread
Verzichten auf Float, aber wie?
Nun, es gibt einen Trick, um mit Integer-zahlen eine höhere Divisionsgenauigkeit zu erreichen: du multiplizierst die zahl erst hoch, zum beispiel um den faktor 10 oder 100 (auf bereichsüberschreitung achten) und dividierst dann. Nacher kannst das ganze dann ja wieder
Division muss man sich Gedanken um Rundungsfehler machen. Ergo möchte man Divisionen erst ganz zum Schluss (und so wenige wie möglich) machen, damit mit dem Rundungsfehler nicht auch noch weiter gerechnet
-
Thread
Präprozessor Kontrolle der Übergabe
sowas sein wie #define f(x) (((x) <= 10) ? ... : 0/0) Du musst dann nur im Kopf haben, was "division by zero" bei t = f(11); eigentlich bedeutet.
100/0) int g(void) { return TasteZuZaelerwert(50); } [/c] div2.c:9:9: warning: division by zero [-Wdiv-by-zero] NB: Zähler schreibt man mit "h".
-
Thread
Frage zur Funktions eines Operationsverstärkers
Eingangsspannungsdifferenz ist also zu erwarten? Wie genau ist dein Messgerät? Hey das Schwierigste daran ist eine Division. Wir haben es dir doch schon vorgekaut. Jetzt spiel nicht den mathematischen Analphabeten und rechne es dir halt mal durch.
-
Thread
Controller mit FPU
AVR. Bei Double-Divisionen hilft einem der Divisionsbefehl überhaupt nicht mehr, aber auch eine 64/32-Bit-Division wäre nutzlos, weil die Mantisse des Divisors größer als 32 Bit ist. In diesem Fall muss man über alle Bits
Yalu X. schrieb im Beitrag #3779597: > Bei Double-Divisionen hilft einem der Divisionsbefehl überhaupt nicht > mehr, Wär nicht erstaunt, wenn man den für Newton-Raphson verwenden kann. http://en.wikipedia.org/wiki/Division_algorithm#Newton.E2.80.93Raphson_division
-
Thread
String zurücksetzen
verwechseln. - Off-by-one-Fehler. - Unbeabsichtiges Semikolon nach Schleifenkopf. - Ungewollte Integer-Division (double x = 1/2;).
-
Thread
Wie muss man Pervasive Displays beschreiben?
hier punktweise. "Neue" Idee (für mich), um einzelne Linien zu berechnen: Rest (Modulo) aus Division berechnen. Z.Zt. nur Idee. Beispiel: 48/4 = 12 Rest 0 --> Zeile 12 Linie 1 50/4 = 12 Rest 2 --> Zeile 12 Linie 3 51/4 = 12 Rest 3 --> Zeile 12 Linie 4 52/4 = 13 Rest 0 --> Zeile 13 Linie
110 Datenbytes. > "Neue" Idee (für mich), um einzelne Linien zu berechnen: > Rest (Modulo) aus Division berechnen. > Z.Zt. nur Idee. Beispiel: > > 48/4 = 12 Rest 0 --> Zeile 12 Linie 1 > 50/4 = 12 Rest 2 --> Zeile 12 Linie 3 > 51/4 = 12 Rest 3 --> Zeile 12 Linie 4 > 52/4 = 13 Rest 0 --> Zeile
-
Thread
long double (80Bit) mit STM32F4 ?
Bresenham-Algorithmus hält stattdessen Zähler und Nenner getrennt, so daß der Rundungsfehler bei der Division x/y nicht auftreten kann. Gesucht ist jetzt also ein Bresenham-ähnlicher Algorithmus für eine S-Kurve anstatt eine Gerade.
-
Thread
kettensprüfett entfernen
Du denkst: Wer den Schaden hat, spottet jeder Beschreibung. http://www.ecolab-suisse.ch/de/divisionen/food_beverage/produkte/membranreinigung/1.7_Download_Cat_Sheet_Ultrasile_d.pdf
-
Thread
Zehntel springt von 4 wieder auf 2. Warum?
mit Modulo in > Sekunden, Minuten, ... aufteilen müsste. Die Modulo Funktion läuft auf eine Division hinaus. Da der µC bei der Stop-Uhr Anwendung wahrscheinlich sowieso nur Langeweile hat, ist das natürlich eine schöne Methode, um ihn zu beschäftigen. Laufzeiteffizient ist das auf einem µC ohne HW-Division nicht. Dann sollte man sich den Zählerstand vor der Rechnerei allerdings mit einer atomaren Operation in einen Puffer holen.
-
Thread
1V am Ausgangsport des Atmega8
a) einfach durch 10 dividiert 23 durch 10 macht 2 und 3 bleiben Rest b) man die Division auch ersetzen kann, indem man in einer Schleife einfach immer wieder 10 abzieht und mitzählt wie oft man das konnte ehe man einen Unterlauf hat c) da dein Ergebnis ja nur in den Bereichen
-
Thread
schnelle dezimale Division auf AVR & Co.
in 10er Schritten: Ist soweit alles klar. Aber auch da brauchst du keine Optimierung in der Division. Alles, aber auch wirklich alles, an dem ein Mensch beteiligt ist, ist nicht soweit zeitkritisch, dass es auf eine Millisekunde mehr oder weniger ankommt. Die kann kein Mensch feststellen. Du optimierst
schneller, springt der Cursor auf die > 10er Stelle und man ändert diese usw. Mache ich ohne Division, ich setze die Schrittweite auf 1, 10, 100 usw. Karl F. schrieb im Beitrag #2326602: > Übrigens: auch wenn die Grundregel lautet: ISR immer so kurz wie möglich > machen, halte ich es in vielen
-
Thread
Benötigen Hilfe bei 8051: Schulprojekt Spannungsmesser
Divisionen kann man auch Subtraktion und Schleifen erzeugen...
das Ergebnis der Multiplikation mit 5 zu speichern braucht man 2 Byt. Nun mein Schnellschuss: Division durch 256 bringt das Ergebnis als gebrochene Zahl. Beispiel: 2,34V -> ADU liefert 120 120*5 = 600 -> 258H, die 2 ist 2, V 600 div 256 -> 2 600 mod 256 -> 88 (Divisionsrest) 88*100 -
-
Thread
Einstieg in die ARM Welt
der M3 schneller, mindestens in 9 von 10 faellen. Meistens nur wenig schneller ausser integer Divisionen sind gefragt, dann fuer diesen einen Befehle viel schneller. "Komischerweisse" sind M3 Benchmarks voller Divisionen waehrend ARM frueher immer behauptet hat, Divisionen waere sehr selten in Programmen
-
Thread
ESP32 mittels Widerstand Länge erkennen?
Widerstandsmessung (gleicher Widerstand) her. Die sollten sich ja meines Wissens nach addieren. Aber eine Division mit dem Einzelwert ergibt keine klaren Werte. Hilfe irgendwer? [c] raw = analogRead(MessPin); if(raw){ buffer = raw * Vin; Vout = (buffer)/4096.0; buffer = (Vin/Vout) - 1;
-
Thread
Selbständige: Wie kommt ihr an Projekte?
mna durch den Lagerkommandanten bzw durch den Obersturmbannfuehrer der der entsprechenden Ess-Ess Division.
-
Thread
8086 ALU welche Carry-Art?
Das ist ebenso unwichtig wie die Frage, wieviele Bits pro Iteration bei der Implementierung der Division erledigt werden (wenn man es - anders als damals beim P5/P54 - richtig macht ;-).
ist ebenso unwichtig wie die Frage, > wieviele Bits pro Iteration bei der Implementierung der Division > erledigt werden (wenn man es - anders als damals beim P5/P54 - richtig > macht ;-). wenn es SW-kompatibel sein soll muss sichergestellt sein, dass es keine Möglichkeit geben darf, dass das
-
Thread
C Inhalt von 2 Variablen tauschen ohne zwischen speichern
und mit Multiplikation/Division ;-) [c] int x=10; int y=20; printf("vorher: x=%d, y=%d\n", x,y); x=x*y; y=x/y; x=x/y; printf("nachher: x=%d, y=%d\n", x,y); [/c]
-
Thread
Frequenz Messung InputCapture STM32
; htim3.Init.CounterMode = TIM_COUNTERMODE_UP; htim3.Init.Period = 99; htim3.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; htim3.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE; if (HAL_TIM_Base_Init(&htim3) != HAL_OK) { _Error_Handler(__FILE__, __LINE__); } sClockSourceConfig.ClockSource
Habe einen Hauptakt von 72MHz Und Teile den mit htim3.Init.Prescaler = 71; das sollte eine division von72 sein also sollte ich einen Timer Takt von 1us haben. Ist diese Annahme richtig? weiters habe ich htim3.Init.Period = 99; dies sollte bewirken das ich alle 100 100us einen überlauf meines Zählers
-
Thread
C++ Pointer-To Probleme
Addition\n"); printf("[2] Subtraktion\n"); printf("[3] Multiplikation\n"); printf("[4] Division\n"); printf("\n"); printf("Tippe die passende Zahl in das Fenster"); printf("\n"); printf("Eingabefenster:"); scanf_s("%d", &Eingabe); if (Eingabe == 1) { system("cls");
" "[1] Addition\n" "[2] Subtraktion\n" "[3] Multiplikation\n" "[4] Division\n" "\n" "Tippe die passende Zahl in das Fenster" "\n" "Eingabefenster:"; std::cout.flush (); int Eingabe; std::cin >> Eingabe; if (Eingabe == 1) { std
-
Thread
Hex to Dec -> C
> > Also (84/16)×10+84%16 oder gleichwertig genau. Mit deder Multiplikation des Restes der Division mit 16 muss es natürlich schief gehen. und das abs() tut auch nicht Not. Sollte ja alles positiv sein :-) Und um die (rechenintensivere) Division mit Restbildung zu umgehen shiftet man einfach
divMod 10 [/code] Natürlich könnte die Zerlegung des BCD-Bytes in zwei Nibbles statt mit einer Division auch mit shiftR und .&. erfolgen, aber das war dir wohl zu C-ish ;-)
-
Thread
Welches ist der beste Microcontroller für Modellbau
rechenleistung..." Es gibt auch 8051er in den "Monsterversionen" ... ... 84 Beinchen , 32-bit division , 16-bit multiplication in Hardware , PWM ,ADC u.s.w. ... bla ...
-
Thread
VU-Meter mit XMEGA
der laufenden Summe subtrahiert und das neueste aufaddiert werden. Was jetzt noch fehlt ist eine Division durch die Anzahl der Puffereinträge. Hierfür habe ich mir folgende Lösung ausgedacht: Die Puffergröße muss so bemessen sein, dass die Durchlaufzeit etwa den geforderten 5ms entspricht. 240
bischen zu groß, aber der Unterschied ist minimal und fällt nicht auf. Hiermit erspare ich mir die Division. Der aufsummierte Mittelwert ist max. 5 Byte groß. Die Division durch 256 ergibt sich von selbst, wenn ich nur die oberen 4 Byte verwende. Das alles ist bereits ausprobiert und funktioniert tadellos
-
Thread
Wie bekomme ich IIR Filterkoeffizienten Ganz-Zahlig?
Fehlerfortpflanzungsbetrachung. Man wird des Weiteren überlegen, die Skalierung so zu wählen, dass einfache Divisionen und Wurzelbildungen ermöglicht werden, falls erforderlich. Manchmal ist es zweckmäßig die Wurzel eines optimalen Divisionsfaktors als Skalierung zu nehmen und im Nachbarterm den vollen Faktor.
-
Thread
50ns Delay mit STM32H7
Aber die Division ist tödlich, was Performance angeht. Ich hab's jetzt nicht nachgerechnet, aber ich denke schon, dass sie auf jeden Fall weit mehr als 10 Taktzyklen dauert.
-
Thread
NF-Frequenz stabile Amplitude
Aber damit werden die Momentanwerte dividiert. Speziell beim Nulldurchgang von Ch1 ergibt diese Division durch (ungefähr) Null lustige Zahlenwerte. Für die Übertragungsfunktion willst du nicht das Verhältnis der Momentanwerte sehen, sondern z.B. Verhältnis und Phasenlage der Effektivwerte.
-
Thread
Arduino2560 ext. Interrupt
variables here void main(void) { // Declare your local variables here // Crystal Oscillator division factor: 1 #pragma optsize- CLKPR=0x80; CLKPR=0x00; #ifdef _OPTIMIZE_SIZE_ #pragma optsize+ #endif // Input/Output Ports initialization // Port A initialization // Func7=In Func6=In Func5
-
Thread
Floating Pointing Unit STM32F4
von Markus Müller auf meinem STM32F4Discovery probiere komme ich auch auf die 21 Takte bei der Division, nur bei der Multiplikation auf 12 Takte anstatt wie bei ihm 5 Takte. Was könnt der Grund hierfür sein? In CP10 steht 0b11 und in CP11 auch 0b11! Der Disassembly Code für die Multiplikation
-
Thread
Spannungsmessung mit PIC16F877A -->LCD-Anzeige
auf dem LCD angezeigt. logisch. 5 ist ein Integer 1024 ist ein Integer Also wird die Division 5 / 1024 als Integer Division durchgeführt. Die aber liefert keine Nachkommastellen. Die funktioniert so, wie du das damals in der Grundschule gelernt hast: 13 / 5 ergibt 2, Rest 3 Nur das hier
Operanden. Die bestimmen, wie eine Operation implementiert wird. Und int durch int ist nun mal eine int-Division. Dieses Vorgehen ist eigentlich in so ziemlich allen Programmierprachen so. Bis auf die Pascal-Schiene, in der es 2 getrennte Divisions-Operatoren gibt, je nachdem welche Division (Integer oder
-
Thread
Probleme mit 74HC 4017 - benötige Hilfe
Horizontalablenkung schneller, bis die Flanke nicht mehr senkrecht ist, sondern sichtbar über z.B. eine Division ansteigt. Wir wollen sehen, wie glatt diese Flanke ist, bzw. ob vielleicht mehrere schnell nacheinander kommen. Dann wiederhole das Ganze für die fallende Flanke. Mal schauen, ob wir dann schlauer
-
Thread
Wie oft Unterprogramme im Unterprogramm aufrufen
Meine Unterprogramme sind z.B Divisionen, BCD-Konvertierungen, TWI-Senderoutinen... Das braucht man schon öfters. Das Hauptprogramm muss beim Aufruf der Divisionroutine bspw. dafür sorgen, dass in den Registern r22-r25 keine relevanten
-
Thread
Schnellere Division
anstatt einer Division.
braucht > und wieviel Cycles ein shift braucht. Welche AVRs besitzen denn überhaupt einen Divisionsbefehl? Grüßle, Volker.
-
Thread
AVR -> STM8/32. Was ist anders? Was zu beachten? Was benötigt? Gesperrt
Pointer-Operationen, Shifts um variable Bit-Zahlen, Stack-Zugriffe, je nach Modell auch Arithmetik (Division, Floating-Point)).
lassen, alle nase lang vor. Klar, man kann skalieren und dann mit int64 rechnen (viel Spaß bei Divisionen..), aber weitaus angenehmer als derartige Workarounds ist es eben, gleich in double zu rechnen. Aber da wir hier in einem Bastelforum sind: Denk mal an DDS-Berechnung für die diversen DDS von
-
Thread
Was heisst der Strich auf dem W bei (R/W)?
Addition steht. Naja... Bei der Multiplikation sind Punkt, Stern und X weit verbreitet. Bei der Division findet man den Doppelpunkt, den Schrägstrich und auch den waagerechten Strich z.B. in Brüchen. Die Operation ist fest gelegt. Das Symbol ist doch wurscht, Hauptsache jeder weiß, was damit gemeint
-
Thread
Ah berechnen
Eigenheiten des verwendeten Compilers. Möglicherweise geht ein Großteil der Information bereits bei der Division verloren. Wer weiß? Pampige Antworten wie: Thomas schrieb im Beitrag #4585314: > nimm von mir aus 1A helfen jedenfalls nicht weiter. Schönes Wochenende. Ich bin hier raus.
-
Thread
Wie Zahl subtrahieren, die in 4 Registern steht?
abgelegt wird ; Adressierung über X Pointer ; mehrfache Subtraktion wird als Ersatz für eine Division durchgeführt. Int_to_ASCII: push ZL ; Register sichern push ZH push temp5 push temp6 ldi ZL,low(Tabelle*2) ; Zeiger
-
Thread
Bewerbungsgespräch an der Uni
verguetung-das-verdienen-die-deutschen-top-manager_did_20201.html Na sowas, *alle* tragen Anzug und zu 95% Krawatte im Job! Und auch die Divisionsleiter, Abteilungsleiter, ... okay die Gruppenleiter vielleicht nicht, in einem technischen Unternehmen. ;-)