-
Thread
Simple Moving Average in Reihe
nicht nur ein bischen Rechenzeit. Pro Arbeitstakt wird eine Addition, eine Subtraktion und eine Division benötigt, und das unabhängig von der Anzahl der Speicherstellen. Bei einem vollwertigen FIR Filter müssen für alle Taps Multiplikationen durchgeführt werden. Im Beispiel wären das für die rote Linie
-
Thread
Arduino: Keine Übersprechdämpfung?
temp = (( highcts / (highcts + lowcts + 0.001)) - 0.320) / 0.0047; // Summand 0.001 soll Division durch Null vermeiden temp = temp * 100; return(temp); } /* void lcdtext(char* txt) { lcd.setCursor(1,0); lcd.print(txt); } */
-
Thread
Servo an Atmega328p funktioniert nicht
Norbert S. schrieb im Beitrag #4820551: > Division kostet immer viel Zeit und Speicher, deswegen "Shift" > ... Dann ist aber auch der Compiler mist wenn er aus einer Division, die eigentlich nur ein Shift ist, kein Shift macht. Sowas erkennen
M. K. schrieb im Beitrag #4820747: > Dann ist aber auch der Compiler mist wenn er aus einer Division, die > eigentlich nur ein Shift ist, kein Shift macht. Sowas erkennen Compiler > schon seit Jahren eigentlich von alleine. Jaaa, das kann Bascom nicht. / 2^n wird ne Division. Mehrere Operationen
-
Thread
STM32F4 ADC DMA Multichannel
TIM2CLK = HCLK/2) TIM_TimeBaseStructure.TIM_Prescaler = 0; TIM_TimeBaseStructure.TIM_ClockDivision = 0; TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure); /* TIM2 TRGO selection */ TIM_SelectOutputTrigger(TIM2, TIM_TRGOSource_Update
-
Thread
ATMega Assember, Ausgabe Nachkommastellen
die Ergebnisse anschließend um ein Byte vesetzt miteinander. Ich erhalte eine 24-Bit-Zahl. Die Division schenke ich mir, denn im höchsten Byte ist dann schon die Ganzzahl des Wertes enthalten, von der ich einfach 6 abziehe. Die Ausgabe erfolgt über eine Schleife, die 100er, 10er abzieht und die Durchläufe
-
Thread
Keine Ahnung in der Entwicklung
Software zu schreiben. Da diese gegenüber den gängigen Problemen (Struktur & Wiederverwendbarkeit, Division by Zero, Deadlocks, etc.) nicht sensibilisiert sind, endet das oft im Chaos. Für die Simulation von Reglern, Algorithmen, etc. ist Matlab/Simulink und seine endlose Menge an Toolkits sehr fein. Gelegentlich
-
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
Programm größer als RAM-Größe
100 Seiten, übersichtlich strukturiert, bitmanipulierbar, A & B-Akkumulator, Multiplikation und Division in Hardware. Konnte man gut noch per Hand in Assembler programieren. Bedingt durch die Registerbänke und den doppelt belegten Bereich ab 0x80 für RAM und SFR taten sich die C-Compiler lange Zeit
-
Thread
8x8 Font auf 96x96 Framebuffer kopieren
Möglichkeit wenn ich wirklich Pixel für Pixel schreiben will ist mir dadurch trotzdem gekommen...Division bzw Modulo...mit der Divison das richtige Byte im Array selektieren und um den Restwert shiften. Pixel für Pixel, Bit für Bit... Hmmm klingt wie wenn da trotzdem viel zum optimieren überbleibt
Möglichkeit wenn ich wirklich Pixel für Pixel schreiben will >ist mir dadurch trotzdem gekommen...Division bzw Modulo...mit der >Divison das richtige Byte im Array selektieren und um den Restwert >shiften. Pixel für Pixel, Bit für Bit... Diesen Unsinn macht keiner, denn das dauert deutlich länger
-
Thread
STM32 PWM-Signal
GPIO_Speed_50MHz; GPIO_Init(GPIOA, &GPIO_InitStructure); TIM_TimeBase_InitStructure.TIM_ClockDivision = TIM_CKD_DIV1; TIM_TimeBase_InitStructure.TIM_CounterMode = TIM_CounterMode_Up; //Prescaler: Frequenz * PWM Steps= 50 * 1000 = 50kHz // (72MHz / 50kHz) -1 = 1439 //Period: PWM Steps -
TIM_TimeBaseStructure.TIM_Prescaler = 23;// Timer loopt aan 24 MHz/24 = 1MHz TIM_TimeBaseStructure.TIM_ClockDivision = 0; TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; TIM_TimeBaseInit(TIM1, &TIM_TimeBaseStructure); //opgelet, interfereert met TIM15 /* PWM1 Mode configuration: TIM 1, Channel1
-
Thread
DIY Frequency Counter mit 10 bis 12 Digits?
Das mag bei Addition und Subtraktion so sein aber bestimmt nicht bei einer Multiplikation / Division. 8 x 8 Multiplikation ist ein Befehl 16 x 16 Multiplikation sind 4 x 8Bit Multiplikation Lo1 x Lo2, Lo1 x Hi2,Lo2 x Hi1 , Hi1 x Hi2 32 x 32 Multiplikation sind dann schon 16 x 8 Bit Multiplikationen
Das mag bei Addition und Subtraktion so sein aber bestimmt nicht bei > einer Multiplikation / Division. Gut. Bei DADD und DSUB sind wir uns schon mal einig. Bei DMUL und DDIV gehe ich davon aus, daß diese ohne Hardwaremultiplizierer des µC per Schiebeoperationen berechnet werden. Wenn ein µC MUL
-
Thread
STM32F4: Datenübertragung extrem langsam
/int/ - Ausdruck, der ist konstant 0. Wolltest Du 0.001 erzeugen, müsstest Du eine /float/ -Division durchführen, also "wait_nms(10.0 / 1000.0)" verwenden. Auch wenn das 'ne Konstante ist: Keine gute Idee. Benenne die Funktion um in wait_microsec() und übergebe ihr einen int, also hier 10.
Dies ist meine Wartefunktion in ms (10/1000) = 0,001 ms. Wenn (und falls) ich annehme, dass die Division, egal aus welchem Zahlenbereich Dividend und Divisor kommen, eine reale Zahl oder auch rationale Zahl ergeben, dann stimmt das im Bereich der Mathematik. Allerdings stimmt das auch in C nicht grundsätzlich
-
Thread
Wie Hilbert-Transformator berechnen
in reversed order! for( n = 0; n < num_taps; n++ ) { if( n == k2 ) { // avoid division by zero b[cix] = 0.0; } else { arg = (n - k2) * M_PI; b[cix] = (1.0 - cos( arg )) / arg; } cix--; } fdata->a_coeff = 0;
zusammenbleibt. > > bi = (1-cos(i-(k/2)π))/(i-(k/2))π Ja was denn nun? Normalerweise sind Division und Multiplikation gleichberechtigt. Da fragt man sich, wie du das mit dem schlußendlichen PI meinst. Soll das so gerechnet werden, wie du es darstellst oder soll es mit in den Nenner? W.S.
-
Thread
Variable nur jeden x-ten Schritt weiterzählen
Mit der Modulo-Operation (%, Division mit Rest) geht das: https://de.wikipedia.org/wiki/Division_mit_Rest Für jeden zweiten Schritt prüfst du ob dein Schleifenzähler i%2=0 ergibt.... denn wenn i durch zwei teilbar ist (und das ist
-
Thread
Datenbank Korrekt?
verkehrt einzufuellen. Adresszusaetze : Supercampus of Hainan University, Hainan, China, Division Supertech, Superlab 2134, Floor 123, .. Hainan University, Hainan, China Hainan, China Da war dann nichts mit 80 Zeichen fuer irgendwas. Wenn man nichts senden muss, am besten ein Textfeld fuer
-
Thread
Cortex-M4 double Berechnungen
Die Division dauert am längsten. Insgesamt bleiben die Grunrechenarten unter 1 µs: https://www.mikrocontroller.net/topic/342688#3779925
-
Thread
ATMega168 @ 20Mhz ADC dauert zu lange DCC NMRA
= U/R) Was willst Du mit dieser elendig langen Rechenorgie, noch dazu mit 2 schnarchlahmen Divisionen. Du willst doch bestimmt nur auf einen Schwellwert vergleichen. Da kann man ganz einfach die Schwelle einmalig in ADC-Schritte umrechnen und erreicht genau das gleiche, bloß 1000-mal schneller
>Was willst Du mit dieser elendig langen Rechenorgie, noch dazu mit 2 >schnarchlahmen Divisionen. geteilt durch 2^10 wird doch bestimmt durch ein shift ersetzt... GRuß J
-
Thread
STM32f4 Timer Overflow Problem
hICtim.Init.CounterMode = TIM_COUNTERMODE_UP; pThis->hICtim.Init.Period = 0xFFFF; pThis->hICtim.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; pThis->hICtim.Init.RepetitionCounter = 0; HAL_TIM_Base_Init(&pThis->hICtim); sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL; HAL_TIM_ConfigClockSource
-
Thread
Laser mit 1MHz modulierbar Poptisch >=1mW (möglichst preisgünstig) gesucht für Entfernungsmessung
können wir aber schon auseinanderhalten?! Mischung ist Subtraktion der Frequenzen, keine Division. Die Phasenbeziehungen bleiben m.W. tatsächlich erhalten.
-
Thread
Software von ST
dennoch strotzt der erzeugte Code nur so von printf-Geraffel und zwei Dutzend verschiedenen Integer-Divisions und Multiplikationsroutinen in allen Varianten, signed und unsigned, lang und kurz und wahrscheinlich ist auch noch ne halbe Tonne float mit drin, ich musste relativ schnell meinen Blick abwenden
strotzt der erzeugte Code nur so von printf-Geraffel und zwei > Dutzend verschiedenen Integer-Divisions und Multiplikationsroutinen in > allen Varianten, signed und unsigned, lang und kurz und wahrscheinlich > ist auch noch ne halbe Tonne float mit drin OMG.. ja, da hat man in der Tat keine Fragen
-
Thread
Manual für HP1615a Logic Analyzer
Birth_of_la.pdf (Seite 27 ein Foto des 1610a) "George Haag, from the California Data Terminals division, led the flagship HP 1610A (Figure 3a) development, a high, wide, and handsome $10,000 state machine." http://www.hpl.hp.com/hpjournal/pdfs/IssuePDFs/1979-10.pdf Seite 18 ebenfalls ein Foto von
-
Thread
Spannungsreferenz justieren
exakt 1mV. Bei 11Bit, 15bit, 16bit bleibt es immer noch beim simplen shiften. Ohne Multiplikation, Division oder sontigen aufwändigen (mit Fehlern behafteten) Rechenschritten. Drum ist 4096mV auch eine sehr schöne Referenzspannung, insbesondere wenn man die früher üblichen 5V Versorgung bedenkt. Und
-
Thread
Pascal und Ada für AVR
nichts gequetscht. Krass Berny Wikkipedia (Cobol) [code] Identification Division. Program-ID. HALLOPGM. Procedure Division. Display "Hallo Welt!" STOP RUN. [/code] Der Zielcode des Cobol-Compilersist nicht länger, als der entsprechende
-
Thread
Atmega88 mit 100kHz
langsam > schalten. Ach, das wusste ich gar nicht. Danke für den Hinweis! Dann ist ein Clock Division Factor von 1, 2, 4, 8, 16, 32, 64, 128 und 256 möglich... gut zu wissen. Damit käme man z.B. auf 125kHz.
-
Thread
STM32F4 Timer OVF Fehler
0xFFFF; TIM_TimeBaseStructure.TIM_Prescaler = 0; TIM_TimeBaseStructure.TIM_ClockDivision = 0; TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; TIM_TimeBaseStructure.TIM_RepetitionCounter = 0; TIM_TimeBaseInit(TIM1, &TIM_TimeBaseStructure); NVIC_InitStructure.NVIC_IRQChannel
-
Thread
Division mit "krummen" 10
und a=b<<1 erzeugt der Compiler exakt den selben Bytecode. Bestimmt _nicht_. Ersteres ist eine Division, letzteres eine Plutimikation ;-)
noch schlechter ist, als die Division.
-
Thread
Timer Interrupt STM32F103
TIM_CounterMode_Up; timerInitStructure.TIM_Period = 500; timerInitStructure.TIM_ClockDivision = TIM_CKD_DIV1; timerInitStructure.TIM_RepetitionCounter = 0; TIM_TimeBaseInit(TIM2, &timerInitStructure); TIM_Cmd(TIM2, ENABLE); TIM_ITConfig(TIM2, TIM_IT_Update, ENABLE); }
TIM_CounterMode_Up; timerInitStructure.TIM_Period = 500; timerInitStructure.TIM_ClockDivision = TIM_CKD_DIV1; timerInitStructure.TIM_RepetitionCounter = 0; TIM_TimeBaseInit(TIM2, &timerInitStructure); TIM_ITConfig(TIM2, TIM_IT_Update, ENABLE); TIM_ClearITPendingBit(TIM2, TIM_IT_Update
-
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
STM32F437: TIM3 CH3 PWM
ARR-Register kommt. Der Timer zählt dann von 0 bis ARR (inklusive), d.h. ein Wert von 10 entspricht einer Division durch (ARR+1) = 11; 84MHz/11 = 7.64MHz
> Der > Timer zählt dann von 0 bis ARR (inklusive), d.h. ein Wert von 10 > entspricht einer Division durch (ARR+1) = 11; 84MHz/11 = 7.64MHz Das war auch die Intension meines Beitrages: steht exakt so im RefMan :-) Der junge Mann wird aber nie selbst Debuggen lernen, wenn ihm die Lösung so auf
-
Thread
for(;;) bedeutung?
einlesen und diese weiter verarbeiten. Dabei wird mit diesen Werten gerechnet und u.a. auch eine Division durch geführt. Dumm bloß wenn dabei ein Wert zufällig 0 ist oder noch blööder bei der Berechnung ergibt sich ein Wert der 0 ist und mit dem muß weiter gerechnet werden. Man könnte das z.B. mit if
einlesen und diese weiter > verarbeiten. Dabei wird mit diesen Werten gerechnet und u.a. auch eine > Division durch geführt. Also komm, wenn ein Algorithmus Divisionen mit Meßwerten macht, dann ist es vollkommen offensichtlich, daß man sich Gedanken machen muß, was bei null herauskommt - und sei es, daß
-
Thread
STM32 Phasenverschobene Sinuswellen
}; [/C] Berechnung der 3 Stellen fuer den 120 Grad Versatz. "zaehl" wird laufend erhöht. Die Division durch 16 macht eine feinere Frequenzeinstellung möglich. [c] arg0 = (zaehl / 16 + 0) % 156; arg1 = (zaehl / 16 + 52) % 156; arg2 = (zaehl / 16 + 104) % 156; [/C] Der Tabellenzugriff