-
Thread
Probleme beim synthetisieren -> Timing constraints?
. Klingt vllt kompliziert aber war ein halbwegs plausibler Weg für mich um keine hässlichen Divisionen, Floatingzahlen, ... oder ähnliches verwenden zu müssen. Noch ne allgemeine Frage: wie deklariere ich sauber ein "constant integer" mit der range Zuweisung. Oder passen die Tools Konstanten
-
Thread
Tiefpassfilter für VCC und AVCC von Atmega - suche Praktische Erfahrungswerte
Also messe ich beispielsweise 4x, addiere die Ergebnisse und schmeiße die unteren zwei Bits weg (Division durch 4). Man kann auch noch öfter messen und das höchste und niedrigste Ergebnis als Ausreißer wegschmeißen, bevor man aus dem Rest den Mittelwert bildet... da gibts viele Möglichkeiten.
-
Thread
Vorschlag zu Hex-Ziffern auf 7-Segment-Anzeigen
Marek N. schrieb im Beitrag #5688396: > Gerüchteweise soll an den Schulen auch keine schriftliche Division mehr > unterrichtet werden!? Hitler plante, den Untermenschen im Osten nur das Rechnen mit Zahlen bis 100 zu lehren… Der olle Josef G. sitzt auf seiner Wolke und reibt sich die Augen, weil
Beitrag #5688418: > Marek N. schrieb: >> Gerüchteweise soll an den Schulen auch keine schriftliche Division mehr >> unterrichtet werden!? > > Hitler plante, Autsch! > dem Eingeständnis, dass er wohl die Grenze zum Untermenschentum zu weit > östlich gezogen hatte. Hart aber wahr!!!
-
Thread
[S] USB Oszilloskop, Hantek 6022BE/BL oder ähnliches
des Oszilloskop-Triggers. Der Punkt auf den getriggert wurde sprang je nach Einstellung fast eine Division hin und her. Viel schlimmer, als ich beispielsweise ein PWM-Signal mit 10Hz und 2us duty cycle erzeugt habe, wurden nur sporadisch mal Events erkannt. Dann lag der Punkt auf den getriggert wurde oft
-
Thread
Technik für zyklisches erhöhen eines Wertes: if versus modulo
= 0; [/c] oder [c] X = (X + 1) % Y; [/c] Oder ist das abhängig davon, ob die CPU Division/Modulo in HW beherrscht? Version 2 sieht natürlich erstmal eleganter aus, dürfte aber auf fast allen CPUs langsamer sein (sofern Y nicht 2^irgendwas ist).
PS: Die Seite https://godbolt.org/ "Comiler Explorer" ist cool! Da z.B. der Cortex-M4 bei der Division keinen Rest zurückgibt, wird modulo offenbar über Multiplikation realisiert :) Die Variante mit dem "if" ist dagegen super kurz (modulo 10 im Beispiel): add r0, r0, #1 cmp r0, #10 moveq
-
Thread
Spindel, HF-Spindel Empfehlung?
schneidet er es auch in einigen Pässen. Ob die Drehbank stabilitätsmäßig viel schlechter wie ein Divisionskopf ist, kann ich nicht beurteilen. Das Problem ist halt wie man von Drehbank umspannen kann ohne den Rundlauf zu beeinträchtigen. Ich hatte schon den Eindruck daß er alles wichtige bedacht hatte.
ich als Bausatz (LP + uC) von MEDW bestellt. Hier ist der Link dazu: https://medw.co.uk/wiki/DivisionMaster Muß aber erst alles zusammenlöten und in ein Gehäuse einbauen. PN ist OK, klar! Muß jetzt aber ins Bett. Grüße, Gerhard
-
Thread
PID-Regler-Implementierung
eine Zweierpotenz, jeder C-Compiler sollte das heute erkennen und so wird aus einer Multiplikation/Division eine Shift-Operation die erheblich schneller ausgeführt werden kann als eine Multiplikation/Division.
-
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
C++ Compiler Einstellung zu defines
#5664867: > Der Fehler entsteht, falls TEST nicht definiert ist, da der Präprozessor > bei der Division durch 0 abbricht (1/0). Ist TEST definiert, steht dort > (1/1) und somit Ja genau. Wie gesagt: ifndef und !defined() kennste? Was soll der Vorteil von der Division durch Null sein?
Fehlermeldung, in der man auch noch erklären kann, was zu tun ist um das zu beheben, statt einer Division durch Null.
-
Thread
STM32 Timer im gatemodus
; htim2.Init.CounterMode = TIM_COUNTERMODE_UP; htim2.Init.Period = 99; htim2.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; htim2.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE; if (HAL_TIM_Base_Init(&htim2) != HAL_OK) { _Error_Handler(__FILE__, __LINE__); } sClockSourceConfig.ClockSource
; htim4.Init.CounterMode = TIM_COUNTERMODE_UP; htim4.Init.Period = 99; htim4.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; htim4.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE; if (HAL_TIM_Base_Init(&htim4) != HAL_OK) { _Error_Handler(__FILE__, __LINE__); } sClockSourceConfig.ClockSource
-
Thread
AVR C implizite Typkonvertierung, fehlerträchtig oder falsch?
höherwertigen Bytes des Rückgabewerts von millis() enthält. Sowohl die Schiebeoperation als auch die Division durch 65536 optimiert der Compiler zu - nichts. In jeder Optimierungsstufe außer O0 - da kopiert er die Daten ein bißchen im Kreis herum. > Für Menschen die den AVR nicht von innen und aussen kennen
-
Thread
Übertragungsfunktion mit Sapwin, geht nicht
erstmal erkennen ob gleiche Faktoren im Zähler und im Nenner da sind und dann man manuell eine Division machen. Da man ja im Normalfall nicht weiß, dass da gleiche Faktoren drinstecken ist das nicht befriedigend. 2. Nur wenn deine Bauteile in beiden Pfaden exakt gleich sind, ist es egal ob die Eingangsquelle
-
Thread
STM32 Timer muss skaliert werden für richtige Messung
htim9.Init.CounterMode = TIM_COUNTERMODE_UP; htim9.Init.Period = 65535; htim9.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; if (HAL_TIM_OC_Init(&htim9) != HAL_OK) { _Error_Handler(__FILE__, __LINE__); } sConfigOC.OCMode = TIM_OCMODE_TIMING; sConfigOC.Pulse = 0; sConfigOC.OCPolarity
-
Thread
Ultraschallsensor und ATmega 2560
wie viel Rechenzeit wiegen dieser Zeile bei jedem Schleifendurchlauf drauf geht. Du hast da eine Division und eine Multiplikation bei jedem Schleifendurchlauf. Besser so: > if (getUSTimePerCM() - lastChecked >= 60*1000/58) { Der Unterschied ist, dass in diesem Fall die Multiplikation und die Division beide vom Compiler vorberechnet werden können. Die Kosten zur Laufzeit sind 0. 60*1000/58 = 1034. Das würde ich in eine definition auslagern, um dem Ausdruck einen sprechenden Namen zu geben
-
Thread
Wird analoge Technik jemals aussterben?
so viel, daß sie es sogar benutzen: https://www.itwissen.info/Wellenlaengenmultiplex-wavelength-division-multiplexing-WDM.html
viel, daß sie es sogar benutzen: > https://www.itwissen.info/Wellenlaengenmultiplex-wavelength-division-multiplexing-WDM.html Interessant, wusste nicht, dass man da schon unterwegs ist. :-)
-
Thread
Name und Nachname in der Versionsverwaltung nach Kündigung
Problem ist, dass Entwickler oft Leichen im Keller produzieren. Schlechter Code, Off-By-One Errors, Division by Zero, Zeigerfehler, die oft erst Jahre nach dem Ausscheiden des Entwicklers dem Arbeitgeber um die Ohren fliegen, oft erst im Feld. Dann ist der Entwickler nicht mehr da, um Emotionen zu regulieren
-
Thread
Komische Werte werden berechnet.
Ganzzahligkeit. 1000/255 = 3.92.. abgerundet (integer division) 3. 3 * 255 = 765
Teilausdruck nur Integer Parameter hat, dann wird mit einem Integer Algorithmus gerechnet. Der Rest einer Division wird dabei verworfen. Das ist jetzt auch kein Special in C, das machen viele andere Programmiersprachen ebenso.
-
Thread
Programmiersprache C; natürlicher Logarithmus
solltst du das selbst können, ohne hier zu spicken. Aber ich will dir mal nen Tip geben: Pseudo-Division und Pseudo-Multiplikation. So, ein bissel Theorie an einer benachbarten Funktion: Nehmen wir mal an, du willst/sollst e^x berechnen, also verbal "e hoch x" und das im Bereich 0 bis 1. Jetzt
-
Thread
SAMD21 Probleme mit den Timern (Interrupt)
GENDIV settings GCLK_GENDIV_Type gclk1_gendiv = { .bit.DIV = 1, /* Set output division factor = 1 */ // .bit.ID = GENERIC_CLOCK_GENERATOR_XOSC32K /* Apply division factor to Generator 1 */ .bit.ID = 0x04 }; // Write these settings GCLK->GENDIV.reg = gclk1_gendiv.reg
GENDIV settings GCLK_GENDIV_Type gclk3_gendiv = { .bit.DIV = 1, /* Set output division factor = 1 */ .bit.ID = GENERIC_CLOCK_GENERATOR_OSC8M /* Apply division factor to Generator 3 */ }; // Write these settings GCLK->GENDIV.reg = gclk3_gendiv.reg; // Configure
-
Thread
Alte Taschenrechner Potenzierung mit negativer Basis
klassische Zahlenstrahl ist die "X-Achse". Dann definiert man sich noch die Multiplikation und Division und erhält ein System in welchem Kommutativität, Assoziativität und Distributivität erhalten bleiben und man (fast) genau so rechnen kann wie bekannt. Mit so Gedanken-Krücken wie Sqrt(-1) muss man
-
Thread
Verständnisfrage: Warum regelt mein I-Regler nicht?
gesucht hatte :-) Lothar M. schrieb im Beitrag #5634684: > Hast du mal angesehen, wie diese Division umgesetzt wird? Nein, aber die Division ist in beiden Varianten ja gleich? Ich hatte eher die Vermutung dass ich bei der Variablen einen Denkfehler habe... Lothar M. schrieb im Beitrag #5634684
einzubauen? D.h. den Prozess in 2 aufzuteilen, und im ersten z.B. die Multiplikation und im 2. die Division + Begrenzung durchzuführen?
-
Thread
Signal mit Faktor multiplizieren
gelöst worden, und zwar mit Analogrechnern (in Schrankgröße). Addition, Subtraktion, Multiplikation, Division, Differentiale und Integrale, alles war machbar. Heute geht das analog mit kleinen Operationsverstärkern. Schau Dir mal die Grundschaltungen an. Gruß - Werner
-
Thread
[Verschenke] Altes Analog Oszilloskop
Sinus mit 20 MHz, hier geht die Amplitude schon erkennbar runter, bzw. das ist die Bandbreite (Division war nicht zwangsweise fest zwischen den Fotos). Das ganze währe abzuholen in Gilching bei München. Sofern jemand möchte, bitte um kurze PN und kurze Notiz was Du damit machen magst. Viele
-
Thread
MATLAB: Merkwürdigkeit bei Ganzzahl-Division
unterschiedlich sind. Der ARM (bzw. der C-Compiler) verhält sich so, wie ich das bei einer Integer-Division erwarte: Es wird nur der Ganzzahlanteil des Quotienten berechnet, ein eventueller Divisionsrest verworfen. 3/2 ergibt also 1. Dies ist äquivalent zu einem Abrunden auf die nächstniedrigere Ganzzahl
tatsächlich "working as intended" https://de.mathworks.com/help/matlab/ref/rdivide.html?searchHighlight=division&s_tid=doc_srchtitle
-
Thread
Modulo in C richtig
int8_t i = 0; i < 10; ++i) std::cout << int { counter3.count () } << std::endl; }[/c] Keine Division, keine Möglichkeit einen zu hohen Wert zuzuweisen.
Peter D. schrieb im Beitrag #5622506: > Auf MCs ohne HW-Division muß dazu aber die Math-Lib aufgerufen werden, Das ist sogar auf einigen der großen ARM Cortex-A so. Die haben ebenfalls keine Hardware-Division (da man Division so selten braucht, ist es sinnvoller
-
Thread
Benchmark bei verschiedenen addierern
multiplizierern und ähnliches "Eigenkreationen" zu entwickeln? Wie schaut es da mit der modularen Division aus? Gibt das Synthesetool eigentlich Fehlermeldungen aus, wenn man z.b. das "%" verwendet und dieses nicht synthetisierbar ist?
Taktfrequenz. Ist wohl vor allem fuer die Profi-Codeknacker ein KO-Kriterium... Aber ein Modulo oder eine Division oder Wurzel oder ARCTAN oder oder must du aus den vorgegebenen Elementen (LUTs) zusammenbasteln.
-
Thread
Dekrementieren vs. Subtrahieren (n-- vs n-1)
richtigen™ funktionalen Sprache werden die redundanten Aufrufe erkannt und wegoptimiert... Die unnötige Division allerdings vermutlich nicht.
-
Thread
EMV Probleme mit SDIO Interface
mir auch > komisch vor (gemessen mit einem 100MHz Oszi). Ja sehr! CLKDIV auf 5 gestellt (d.h. Division des 48MHz-Takt durch 7)? Im RefMan heißt es ja: SDIO_CK frequency = SDIOCLK / [CLKDIV + 2]. Zeig mal deine SDIO-Initialisierung. Sicher dass der Systemtakt korrekt ist? Vielleicht mal den Quarz
-
Thread
HF-Stromtrafo paper
Electronic components & applications / Philips Gloeilampenfabrieken, Electronic Components and Materials Division Ort/Jahr: Eindhoven : Philips, 1978-1992 Ersch.-verlauf: 1.1978/79 - 10.1991/92; damit Ersch. eingest Bibliogr. Zusammenhang: Vorg.: Electronic applications bulletin. Vorg.: Mullard technical
-
Thread
PID-Regler: Wie schnell ist schnell genug?
erfolgen? Nur Du kennst Deinen Regelkreis und weißt, wie schnell er sein muß. Du hast nen Haufen Divisionen durch Konstanten drin, die kann man bequem aus der Schleife herausziehen.
Regelschleife konstant. Du mußt sie daher nur dann neu berechnen, wenn Du sie auch änderst. Divisionen sind recht langsam. Daher lohnt es sich, sie aus der Schleife heraus zu ziehen.
-
Thread
Geteilt Rechnung vereinfachen in C
Ob mit oder ohne Compileroptimierung, die Division dauert immer gleich lang. Es wird immer die gleiche Lib aufgerufen. Man kann zur Optimierung aber auch float statt long nehmen. Float berechnet nur 24 Bit und ist daher schneller.
Zerlegung in einen Kettenbruch Ich werfe mal Subtraktion und Addition in einer Schleife ins Forum. Division ist wiederholte Subtraktion, also kann man das auch so hinschreiben.
-
Thread
STM32F103 Timer 3
50MHz; GPIO_Init(PWMTIM1PORT, &GPIO_InitStructure); TIM_TimeBase_InitStructure.TIM_ClockDivision = TIM_CKD_DIV1; TIM_TimeBase_InitStructure.TIM_CounterMode = TIM_CounterMode_Up; TIM_TimeBase_InitStructure.TIM_Period = 999; TIM_TimeBase_InitStructure.TIM_Prescaler = 0; TIM_TimeBaseInit
50MHz; GPIO_Init(PWMTIM3PORT, &GPIO_InitStructure); TIM_TimeBase_InitStructure.TIM_ClockDivision = TIM_CKD_DIV1; TIM_TimeBase_InitStructure.TIM_CounterMode = TIM_CounterMode_Up; TIM_TimeBase_InitStructure.TIM_Period = 999; TIM_TimeBase_InitStructure.TIM_Prescaler = 0; TIM_TimeBaseInit
-
Thread
Interrupt: - STM32f302cc - TIM2_Handler Wird nicht aufgerufen
htim2.Init.CounterMode = TIM_COUNTERMODE_UP; htim2.Init.Period = 8400; htim2.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; htim2.Init.RepetitionCounter = 0; htim2.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_ENABLE; HAL_NVIC_SetPriority( (IRQn_Type)TIM2_IRQn, 5,1 ); HAL_NVIC_EnableIRQ
htim2.Init.CounterMode = TIM_COUNTERMODE_UP; htim2.Init.Period = 8000; htim2.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; htim2.Init.RepetitionCounter = 0; htim2.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_ENABLE; HAL_TIM_Base_Init(&htim2); HAL_TIM_Base_Start_IT(&htim2);
-
Thread
gcc Division negative int32 Zahl durch unsigned int32 ->Käse..
] cval/=steilheit; return(cval); } [/c] liefert Blödsinn wenn cval vor der Division negativ ist, hätte ich nicht gedacht, ist aber klar mein Fehler, auch wenn der gcc (5.4.0) nicht warnt. Ein cval/=(int32_t)steilheit; vertreibt das Problem. Gruß, Holm
und bleibt ein architektonisches Minenfeld. UB beim Überlauf wenn signed, das Problem hier mit Division und noch schlimmer bei größer oder kleiner, integral Promotion oder %i, die nicht durch einfaches uint_xx portabel werden, ... Und das für all die Werte, die doch "sowieso eigentlich nie" größer 100
-
Thread
Verständnis Einheit dB µV/m/Hz
bei 1 Hz Bandbreite die > Referenzgrösse darstellt (0dB). Du meinst also im Endeffekt, die Division /m in der Einheit der Bezugsgröße ist eine "wirkliche" Division: man kann die Feldstärke mit einer Länge in Meter multiplizieren und erhält eine Spannung. Aber die Division /Hz ist dabei nur eine
Achim S. schrieb im Beitrag #5607271: > Aber die Division /Hz ist dabei nur eine symbolische Angabe: man darf > den Wert nicht mit der Bandbreite in Hz multiplizieren. Sondern man > "weiß" einfach, dass die Bandbreite nur in der Wurzel eingeht, > multipliziert
-
Thread
Unkomplizierte Berechnung oder doch schon Gleitkomma Berechnung?
Berechnung für den Prozessor ein Problem da bzgl. länger Rechnenzeit? Oder sieht er dieses als normale Division an? Lg
Rechnen mit Integer Zahlen finde ich korrekt. Kann man machen, aber da die Zahlen groß werden und Divisionen ohnehin "teuer" sind, könnte der Schuss nach Hinten losgehen. Ich würde beide Varianten ausprobieren, wenn es wichtig ist, Zeit zu sparen. Wenn Zeit egal und float genau genug ist, würde ich das
-
Thread
Rechen-Framework für VHDL
durchaus können könnte und IMO auch können sollte. Z.B. die Berechnung der Vektorbreite nach einer Division zweier Binärzahlen mit Vor- und Nachkommastellen: Die Position des Kommas ist eigentlich fest definiert und kann von mir im Kopf ja auch berechnet werden, Simulink kennt die aber nicht.
-
Thread
Rauschen nichtinvertierender OPA
Vorgehensweise eigentlich die Berechnung des Rauschens am Ausgang ist, und dann das RTI Rauschen durch division mit dem noise gain zu erhalten. -> Der sicherste wäre also zunächst das RTO (referred to output) Rauschen zu berechnen, ohne Berücksichtigung der Bandbreite bzw. endlichen open loop Verstärkung
-
Thread
Timer1ms bei TI Sitara
So kann u.a. aus dem 32768Hz-Signal der RTC ein 1000Hz-Takt erzeugt werden, d.h. praktisch eine Division durch 32,768. Das wird erreicht, indem der Zähler abwechselnd zwischen 32 und 33 umgeschaltet wird, d.h. die Periode des Ausgangstakts so variiert wird, dass in Summe 1kHz rauskommt. Leider wird
-
Thread
ADC: 16 Bit in 10 Bit
fehlt mir momentan der Unterschied / > Vorteil. Ist auch kein Vorteil, aber wenn man sich eine Division statt eines Shifts angewöhnt, stellt sich die Vorzeichenfrage garnicht erst ;)
-
Thread
Ersatz für einen Optokoppler mit langen Lieferzeiten
25000 direkt ab Lager lieferbar https://www.digikey.de/product-detail/de/vishay-semiconductor-opto-division/TCMT4100T0/TCMT4100T0CT-ND/7702407