-
Thread
Fash als Ringbuffer aufbauen
% >MAX_COUNT;? >Also das % mein ich. Das "%" ist das berühmte MODULO ;-) Die Ganzzahl Division. 10 % 3 = 3,3333333... -> 3 * 3 = 9 --> 10 - 9 = 1 !!! Der Ganzzahl Rest ist also 1. So funktioniert Modulo. Der Sinn ist hier, dass der Buffer 10 Werte fassen kann. Aber in ein Array
-
Thread
gleitender Mittelwert im Atmel
Werte. Dazu einen Ringbuffer verwenden wie Slotta schrieb. Nimm für n 2er Potenzen für einfache Division mit n. Slottas erster Algorithmus ist ungünstig, weil Division durch n+1 nicht mehr mit shiften geht. Die zweite Variante ist besser.
- nur eine Division auftritt.
-
Thread
aus Wert 1023 mach 25 Minuten BASCOM
Ja, aber mit mod wäre doch eleganter. Im Prinzip stimme ich dir zu. Allerdings ist die Divisions/Modulo Lösung höchst wahrscheinlich laufzeitmässig der Subtraktionsmethode unterlegen. Und zwar deutlich unterlegen. Wenn du 8982367823923423589 Sekunden auf Minuten und Sekunden umrechnen müsstest
viele Subtraktionen hättest) siehts anders aus. Aber maximal 25 Subtraktionen - das wird eng für Division / Modulo. Wenn Laufzeitmässig keine Rolle spielt, ist Division/Modulo ok. Wenn die Laufzeit aber klein gehalten werden soll/muss ist es in /diesem/ Fall besser zu subtrahieren.
-
Thread
Impedanz eines Kabels herausfinden
keinen Oszi :-) (Übrigens heißt es "behaupten", mit "n" und nicht mit "t".) Und eine simple Division ist doch nicht schwerer, als den Versuchsaufbau mit dem Oszi zu machen, oder? Mit dem Oszi alleine ist es ja auch nicht getan, man braucht noch einen Generator und einen Widerstand und man muß das
-
Thread
Datenblatt Transistor SOT23, Frage zur Kühlfläche
Modellen unterschiedlicher Hersteller angeschaut. Bei allen ist es wie du sagst eine schlichte Division. Aber man beachte die Beschriftung "junction-to-ambient" (Umgebung, nicht Anschlussfahne). Die Kühlung durch die Platine in 25°C Luft ist da schon mit drin! Bei den größeren TO220 Modellen steht
-
Thread
Servo-Pulssignalläge messen mit Atmega328p
Anteil messen (mit "input capture") sondern zusätzlich auch gesamte Periode, dann Verältnisbildung (Division). Der prinzipielle Vorgang ist dann derselbem welcher für den "sensiblen" Temperatursensor SMT160 (SMT160-30) oder SMT172 verwendet wird. https://forum.arduino.cc/t/smartec-smt172-temperature-sensor-library
-
Thread
Programmieren von Attiny85
return (temp ^ (temp >> 2)) & 0b00000011; // XOR two pairs of bits and return remainder after division by 4 } ISR(WDT_vect) { time++; // increase each 16 ms if (nrot) { // random seed generation nrot--; seed = (seed << 1) ^ TCNT0; } } void resetCtx() { ctx = seed; }
-
Thread
Vorlaufmischer mit Motor Regeln
Koma Stelle“ ist 0. Verstärkung 256 bedeutet: 1 vor „Koma“ und 0 nach „Koma“. Solche Tricks um Division zu vermeiden. Diese Verstärkung muss du experimentell ermitteln.
-
Thread
Hirnblockade.bei Sekundenzählerüberlauf (AVR Assembler)
: Scheisse-langsam. Wenn der TO ausdrücklich keine Multiplikation will, dann wohl auch keine Division.
Beitrag #6934870: > Wenn der TO ausdrücklich keine Multiplikation will, dann wohl auch keine > Division. Deshalb habe ich ja auch die (bisher) kürzeste Version zuerst geschrieben: A. S. schrieb im Beitrag #6934440: > int d=t1-t2; > if(d<0) d=-d; // alternativ abs > if(d>=3 && d<= 57)
-
Thread
ZX-Spectrum Basic : error handling aber wie?
FUNMATH ziemlich >umkrempeln musstest. Die Zahlen können dreistellig sein, und ich habe auch die Division eingeführt.(Für zwei vierstellige Zahlen reicht der Platz dort nicht. Kopfrechnen bis Tausend sollte aber ausreichen) Für das Zeichnen der Zahlen brauche ich eine Modulo Division, leider ist sie
Jan schrieb im Beitrag #6658355: > Für das Zeichnen der Zahlen brauche ich eine Modulo Division, > leider ist sie nicht im Sinclair Basic vorhanden. MOD gibts zwar nicht, geht aber trotzdem: Modulo-Anteil der Division (Beispiel 17 mod 10): [code] LET a = 17 LET m = a - 10 * INT(a/10
-
Thread
ATmega16 startet von allein neu?
geht es über Minuten gut manchmal nur 20 Sekunden. Berechnungen finden nicht statt also so was wie Division durch 0. Nun würde mich interessieren wie ich der Sache auf den Grund gehen kann. Für jeden Tip wirklich sehr dankbar. Grüße AVRli...
-
Thread
zugriff auf arrays optimieren
vorgeschlagenen händischen > Optimierungen untermauern. Dem schließe ich mich an! Besonders eine Division durch 2^n, bei der der gcc auch ne Division erzeugt, würde ich gerne mal sehen!
-O1 oder -O2, könnte sich dadurch ändern. Der Haken hier ist, dass eine vorzeichenbehaftete Division nicht unmittelbar durch einen Shift ersetzt werden kann und der entsprechende Ersatzcode zwar schneller ist als die Division, aber deutlich mehr Platz benötigt. -Os ist nun einmal eine Optimierung
-
Thread
ATmega48 Programmspeicher zu klein?
kurz vor der Übergabe wieder um die 8 bis 16 Bit zurück. Die verwendeten Multiplikations- und Divisionsroutinen brauchen nicht viel Platz. Tust Du nur die Kern- oder Rechenvariablen auf ein größeres Format erweitern, flippt Dir auch die Speicherverwaltung nicht aus.
ATtiny2313]] und verwendet folgende float-Routinen: Addition, Subtraktion, Multiplikation, Division, lrintf, Vergleiche (<=, >=) sowie int <--> float Konvertierungen. Gerade der Stack-Verbrauch hängt aber auch nicht unwesentlich von der Verschachtelungstiefe der Funktionen ab. Und natürlich
-
Thread
Gegenseitige Induktivität - Überlagerung der Flüsse
irgendwie, dass im Nenner steht Mü_r - 1. Was ist wenn das Mü_r wirklich 1 ist, dann hätte ich ja eine Division durch 0. Das wär ganz blöd. Wobei nur paramagnetische Stoffe solch kleine Permeabilitäten haben, und bei diese dann ein Koppelfaktor berücksichtigt werden muss.
dass im Nenner steht Mü_r - 1. > Was ist wenn das Mü_r wirklich 1 ist, dann hätte ich ja eine Division > durch 0. Das "Mü_r - 1" steht ja nicht alleine im Nenner. Wenn µ_r = 1 ist, dann wird der Ausdruck delta*() zu 0 und es bleibt 4*l im Nenner übrig. Das erscheint mir schon plausibel. Allerdings
-
Thread
Shift vs. Union - Was ist effizienter?
, nicht unbedingt implementieren würde. So führt Optimierung machmal auch dazu, dass eine teure Division, die man selbst ausdrücklich *vor* einer critical Section platzierte, vom Optimizer genau *da hinein* verschoben wird. Und man ggf. in den Code schauen muss und irgendwelche Hacks braucht, um das
seltsam, denn da ist überhaupt nix AVR-spezifisches dabei (im Gegensatz zum Ziehen einer teuren Division über ein SEI / CLI, was eine Eigenart von avr-gcc ist). Evtl hat es mit alignment zu tun und man brauch __builtin_assume_aligned oder sowas?
-
Thread
Strombegrenzer bis 8A bei 3-30V
erstes immer noch lebt (>30J)! Im Gegensatz zu dir kann ich aber einfache Multiplikation und Division und brauche dafür keine Simulation. Du kannst den Ripple scheinbar noch nicht mal simulieren. Deine tolle Überschlagsformel 1000µ/A galt für Röhrengeräte, deren Betriebsspannung > 200V war, da war
-
Thread
Atmega8A - C-Code PWM Erzeugung was mache ich falsch?
; > [/c] 512 ist ein integer. arraysize(samples) liefert einen Integer Damit wird diese Division als Integer-Division durchgeführt. Und erst das Ergebnis davon wird dann auf float umgewandelt, damit es an den float zugewiesen werden kann. > [C] > ..... (1<<COM1A1) | (0<<COM1A0) |
nicht mit einem Vielfachen von 10 machst, sondern einem Vielfachen von 2. Denn dadurch wird die Division für den µC wieder trivial. Aber an der Größe der Lookup Tabelle hat sich deswegen nichts geändert. Und auch nicht, wie sie benutzt wird. Du hast dir im Grunde mit der Konvention, alle Zahlen mal
-
Thread
project euler
Stellenzahl ergibt sich dann sowieso automatisch bei der Zerlegung mittels fortgesetzter Division durch 10.
-
Thread
Elektrische Rotorposition mittels optical encoder
TIM_TimeBaseStructure.TIM_Period = 0x07ff; TIM_TimeBaseStructure.TIM_Prescaler = 0; TIM_TimeBaseStructure.TIM_ClockDivision = 0; TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; TIM_TimeBaseInit(TIM1, &TIM_TimeBaseStructure); TIM_EncoderInterfaceConfig(TIM1, TIM_EncoderMode_TI2, TIM_ICPolarity_Falling
-
Thread
10khz rechteckspannung mit uC
erreichen. Wie man den berechnet steht im Datenblatt. Auch wieder so eine überaus komplizierte Division, obendrein gefolgt von der unheimlich anspruchsvollen Aufgabe, vom Ergebnis dann noch eins abzuziehen... 8.000.0000/10.000 - 1 = 799 bzw. $31F ICR1H ist also mit 3 zu laden, ICR1L mit $1F.
nicht optimal geeignet. Besser ausgedrückt: absolut ungeeignet. Schon wieder so eine schwierige Division: 8.000.000/(2*13)=307692,3 Viel zu viel, du brauchst nur etwas mehr als 10kHz Samplerate. Mal ganz abgesehen davon, daß bei 8.000.000/2=4MHz ADC-Clock die ADC im Wesentlichen nur noch Müll liefern
-
Thread
Sinusberechnung auf Controller STM32F030
Granularität als die Library üblicherweise hat. Recht effektiv ist auch, bei den Grundrechenarten auf die Division zu verzichten, wenn man sie nicht braucht. Also Linken nach Bedarf nicht auf Modul-Ebene, sondern auf der Ebene einzelner Unterprogramme. Es ist aber wohl von einem heutigen Programmierer entschieden
-
Thread
Kommazahl auf Display anzeigen
100*8; //=75 und so weiter... Das / bei Integerarithmetik gibt den ganzzahligen Wert der Division. Entsprechend gibt es noch den % (Modulo) Operator der den Rest der Division gibt. Z.B. 875 % 100 = 75. Den hätte man oben verwenden können und ich erwähne ihn hier nur der Vollständigkeit halber
-
Thread
Ideen zu Programmiervorlesung
Arbitrary Precision Arithmetik: Multiplikation - Implementiere Arbitrary Precision Arithmetik: Division - Implementiere eine Skip-Liste. - Schreibe eine eigene Version von /make/ - Schreibe eine eigene Version von /more/ - Schreibe eine eigene Version von /sort/ - Schreibe eine eigene Version
Arbitrary Precision Arithmetik: Multiplikation > - Implementiere Arbitrary Precision Arithmetik: Division > - Implementiere eine Skip-Liste. > > - Schreibe eine eigene Version von /make/ > - Schreibe eine eigene Version von /more/ > - Schreibe eine eigene Version von /sort/ > - Schreibe eine eigene
-
Thread
Thermomter DS18b20
10 Cc = Round(c)[/pre]könnte es gut sein, dass jegliche "Nachkommastellen" schon bei der Division flöten gehen, weil sowohl Temperature als auch 16 Integer sind und vermutlich das Ergebnis auch - egal ob es hinterher auf ein Single zugewiesen wird. cc wird sich also immer in 10er-Schritten ändern
-
Thread
weis jemand was das für ein bauteil ist :-)
Sieht eben ganz anders aus. Die hier werdens sein: http://www.mmc.co.jp/adv/dev/english/pdf/Division_PDF/23.pdf
-
Thread
Suffix für uint8_t
haben sich erhalten, so dass x86-64 gleichermassen mit 8, 16, 32 und 64 Bits rechnen kann. Bei der Division kann sich ein kleinerer Type auch sehr lohnen und in der Codierung gibts einen kleinen Vorteil bei 8 und 32 Bits. Es kann allerdings subtile Laufzeitunterschiede durch die Implementierung geben
-
Thread
Sich um Arbeit streiten
neue sind Top-Leute, Muss ich relativieren: sie machen auch Fehler: einer hat mal bei einer Division ueberprueft, ob der Zaehler null ist. (richtig waere: Nenner pruefen). Sachen im C-Code wie [c] if (str=="text") { } [/c] finden sich auch (anstatt strcmp). Wenn man halt schnell und viel
-
Thread
Thermospannung bei vergoldeten Steckverbindern
und integriert. Das ist zunächst mal eine Aufsummierung, eine Mittelwertbildung wird es durch die Division durch die Zeit (sie sagen ja "for a fixed period") bzw. durch die Zahl der gesampleten Werte. Hört sich aber eher nach Analogtechnik an. So, wie komme ich dann auf einen Korrekturfaktor von 1,1 um
-
Thread
GrafikDisplay mit LC7981; Darstellungsprobleme
die untenstehende Einstellung? (bitte keine wörtliche Übersetzung). 4. Set Number of Time Divisions (Inverse of Display Duty Ratio): Nx indicates the number of time divisions in multiplex display. 1/Nx is the display duty ratio. A value of 1 to 128 (decimal) can be set to Nx. MfG
-
Thread
Integer-Berechnungen mit grossen Zwischenwerten
Natürlich: Man implementiert einfach die "breite" Arithmetik, soweit nötig. Multiplikation und Division sind ja nun kein Hexenwerk.
? [/math] Von der äußeren abrundenden Division ist der Fehler immer positiv und kleiner als 1. Aber wie berücksichtige ich den Fehler von [math] \left(\left\lfloor \frac{a}{b}\right\rfloor\right)^2 \Leftrightarrow \left\lfloor \left(\
-
Thread
Lampe anschließen? Decke: 2 Kabel / Lampe: 3 Kabel
Null: da geht es dann 150/s 0 hin und 0 zurück. Darum kürzt sich die Leitung oft weg, was als 0/0 Division Überspannungen verursacht und selbst einen Stern verschieben kann.
-
Thread
Drehzahlmesser mit ATmega 16
(19 pages, updated 10/98) This Application Note lists subroutines for multiplication and Division of 8 and 16-bit signed and unsigned numbers. " Am besten die Beispiele nacheinander im Simulator ausprobieren und damit experimentieren. Da gibt es geschwindigkeitsoptimierte und Codegrößeoptimierte
jetzt ZWEI Werte a 8 Bit. Einmal 8 bit den Quotienten und einmal 8 Bit den Remainder = Rest der Division. Also A / D = q*D+r, d -> Quotient, r -> Rest sind die beiden 8 Bit Werte, oder eben 16 Bit Divident / 16 bit Divisor = 8 Bit Quotient + 8 Bit Remainder, 16 / 16 = 8 + 8. Gruß Hagen
-
Thread
Bruch approximieren
nochmal beide nach rechts shiften bis eine 1 im LSB steht. Shiften ist ja eine Multiplikation (Division) mit 2. Zähler und Nenner gleichzeitig shiften kürzt sich weg, ist also eine Erweiterung des Bruchs. Von der Rechenzeit käme man mit max 16 Linksshifts und anschließend max 16 Rechtsshifts hin.
Man sollte auch berücksichtigen, daß viele 32Bitter keine HW-Division können oder die Division mehr Takte benötigt als die Multiplikation. Es kann daher gut sein, daß eine float Multiplikation mit dem Kehrwert sogar schneller ist als die Ganzzahl Division bzw. kaum
-
Thread
STM32 Kompilat größer als erwartet
ein vereinfachtes itoa ersetzt, das hat immer noch ca. 2 kB statt 3,etwas gebraucht. Die Integer Division scheint viel zu kosten, wobei der M3 das ja schon in HW kann. Wäre interessant zu sehen was der Keil daraus macht, der soll ja besser optimieren. Die Newlib haut richtig rein, ist dafür Thread
-
Thread
flash-Fehler mit ATtiny2313, compile ok
reicht auf jeden Fall ein uint8_t aus (was dem Tiny schon mal bei den Inkrement hilft). An den Divisionen durch 10 ändert das nichts. wird eben ein 32 Bit Wert durch 32 Bit - 10 dividiert. Fazit: Auch wenn die Theorie sagt, dass der 10-er Logarithmus genau das Ergbnis enthält, das man haben will,
Berücksichtigt man noch, dass Multiplikationen für einen µC meist weniger Aufwand sind als Divisionen, dann landet man ganz zwangsläufig bei [c] uint8_t funktion( uint16_t zahl) { uint8_t ergebnis = 0; uint16_t mask = 1; while( mask <= zahl ) { ergebnis++; mask *= 10; }
-
Thread
Fehler bei einfacher Integer-Division?
Wird die Division vom Compiler alss Division übersetzt oder als Multiplikation (i.W. mit dem Kehrwert) ?
ein Timing-Problem. Kommt er nicht, steht der Aufruf von test_B wohl an anderer Stelle als die Division, nämlich dort, wo auch test_A aufgerufen wird. Und wie ich bereits oben schrieb, befindet sich die Division im asm an anderer Stelle, als der C-Code vermuten lässt.
-
Thread
Verschiedene Bits effizient auslesen
umgangssprachlich mit dem Terminus "dividiert" beschrieben wird, solltst du das auch so verwenden. Wenn diese Division mittels einer Shift Operation implementiert werden kann, dann wird der Compiler das auch mittels Shift machen.
lassen, if error goto 2) 5) Patch machen, Review + Commit Dies geht für Multiplikation, Division und Modulo, jedoch nicht für Addition, Subtraktion und Vergleich, die haupt Performance-Bremsen bleiben also. Aber man lernt schon mal mit dem Monstrum GCC umzugehen. Ist bereits gemacht
-
Thread
Sprachen Ranking
Formatierung als Modulo-Operation (Python), eine Stream-I/O als Bitshift (C++) oder ein Datum als Division (C++) zu schreiben, ist einfach nur grober Unfug und fördert keineswegs die Verständlichkeit des Codes. Java hat das Problem auf einfache Weise gelöst, indem es den Blödsinn gar nicht erst von
-
Thread
Zollverwirrung.
bestimmen kann: https://www.parker.com/content/dam/Parker-com/Literature/Instrumentation-Products-Division/Installation-Instructions/Parker_Tube_Fitting_Installation_Manual.pdf Grüße Thomas
-
Thread
Was ist eine gute Kalibrierquelle
Beispiel ganz brauchbar: http://www1.symmetricom.com/csac/?product_name=Chip_Scale_Atomic_Clock&division=TTM&request_type=Quote%20Request&lead_source=PPC&campaign_name=CSAC&search_engine=Google&_kk=csac%20atomic%20clock&_kt=75775319-5f29-4232-9abb-b85fc73c9c60&gclid=COSqxKWp07wCFUoOwwodghYAdQ
-
Thread
Unterschied zw. 8 und 32bit-Prozessoren
Rechenleistung braucht, dann hat der Prozessor meist gleich 32/64 Bits, mehr MHz, mehr Speicher, Division/Multiplikation und Vektoroperationen. Reicht ein bisschen Rechenleistung, bisschen Menüführung und Steuerungskram, dann nimmt man halt einen kleinen Prozessor: 8 Bits, ohne Mul/Div, wenige MHz. Es
-
Thread
Kubikwurzel bilden
wiki/Potenz_(Mathematik); http://de.wikipedia.org/wiki/Logarithmus] Damit hättest du NUR noch Divisionen durch gerade Zahlen ;) Viel Erfolg noch!
Mit aktueller Hardware wie Cortex M4 braucht man die Divisionen auch nicht mehr so zu fuerchten...
-
Thread
IRMP auf einen PIC18F4520 portieren
und unerwartet viel Zeit >>> kosten. >> > Konkret ist es so, daß current_bit / 8 als 16-Bit-Division (library > call) implementiert wird, Igitt. Hätte ich gewusst, dass es immer noch derart dumme Compiler gibt, hätte ich das anders geschrieben. Eigentlich werden Divisionen mit Zweierpotenzen
zu 1/F_INTERRUPTS addierte. Zusammen gab das einen Faktor vor etwas über zwei. Nachdem ich die Division durch den Rechtsshift ersetzt UND diesen Fehler korrigiert hatte, war dieses Problem behoben. Nun stellt sich aber ein weiteres Problem: zwei aufeinanderfolgende Aufrufe von RC5(...) produzieren
-
Thread
Fahrradbeleuchtung klappt nicht wie gewollt
sitzt und kennst den Durchmesser des Reibrads des Dynamo. der Rest ist einfache Multiplikation und Division. Chris Klein schrieb im Beitrag #3649269: > Bei Leerlauf messe ich ca. 16V. zusammen halten die Elkos 32V aus. Das > sollte dann passen. Erstens ist die Schaltung Mist wie MaWin dir schon
-
Thread
DCF und Mondphase
Gauss ist etwas mehr, als das kleine 1 x 1... Mal sehen, ob ich noch Platz für passende Divisions-Routinen habe. > Wetter-Bits Habe ich nicht zur Verfügung.
die (e)patta auf Deutsch nennt. Wenn man sich z.b merkt, 2014 ist epatta 29 braucht man weder Division geschweige denn Fliesskomma.
-
Thread
Bauingenieurwesen
BWL genau das richtige für dich. Da reichen die vier Grundrechenarten völlig. Und wenn dir die Division Schwierigkeiten bereitet, macht das überhaupt nichts, da sie nur ganz selten benötigt wird und oft durch eine Subtraktion hinreichend genau angenähert werden kann. > Überzeugt haben mich vor
-
Thread
Unsigned Integer Wert auf 100er Runden
klappt. Das Problem ist, dass ich wahrscheinlich keine Zeit für eine weitere Multiplikation und Division habe.
1.) In zeitkritischen Anwendungen würde ich auf'm MSP430 nie Multiplikationen oder gar Divisionen berechnen lassen. Wer µC programmiert, sollte sich mit dem Binärsystem anfreunden und z.B. Multiplikationen mit 2, 4, 8, 16, usw. per Shiftoperation durchführen (Division analog). Bei 16MHz hast
-
Thread
AVR-Tutorial: ADC
Register xh(high) und xl(low) dezimal ausgeben lcd_number_big: push xl push xh ; Division durch mehrfache Subtraktion ldi Temp1,'0'-1 ; Ziffernzähler direkt als ASCII Code ; bzgl. '0'-1 siehe http://www.mikrocontroller.net/topic/198681 Z_ztausend: inc Temp1
-
Thread
Vorsicht: Datensammler
Ja. Abteilungsleiter einer Division bei Siemens: Kam direkt von BenQ auf Aufforderung druch Bereichsleiter. "Den will ich haben". (Eine Hand wäscht die andere).
-
Thread
PT100 Temperaturmessung ohne Konstantstrom
Weil man mit Konstantstromquelle vielleicht keine Division bei der Berechnung braucht?