-
Thread
Modulo mit Shift in C, wie?
gewundert; aber beim STM32 kann ich fast nicht glauben, dass es daran liegt. iirc kann der doch Division in Hardware; da waer's sehr verwunderlich, wenn das laenger dauern sollte als eine handgebastelte shifterei. Wie kommst du drauf, dass das lange dauert? Schon mal geguckt, was der Compiler draus
-
Thread
Potiwertebereich für AnalogWrite anpassen
int Variablenüberlauf ist mal eine Ariane-Rakete abgestürzt. Weiter ist dir kekannt daß int divisionen abschneiden. Also 11/12 ist bei int 0!
Und wenn es dann noch ohne Division abgehen soll, geht auch etwas in der Art[pre]y = (x * 1478 - 248130) / 4096[/pre]
-
Thread
Frequenzteiler HC393, ein Rechtecksignal funktioniert, das andere nicht
kurz wie möglich. > > Schau dir mal die Flanken der Signale an bei 500 oder weniger ns pro > Division. Und mit kurzem Gnd-Stripperl der Probe. > > Jeder mm Draht hat ein paar nH Induktivität, bei steilen Signalen > ergeben sich wunderbare Schwingkreise mit den Eingangskapazitäten der > ICs.
alles wie erwartet. > Schau dir mal die Flanken der Signale an bei 500 oder weniger ns pro > Division. Und mit kurzem Gnd-Stripperl der Probe. Blitzsauber, aber das waren sie schon vorher.
-
Thread
Assembler (AVR) Freaks bitte: der schnellste Weg, einen ganzzahligen Wert zu skalieren? Gesperrt
) Division/Addieren, uint8_t, fest > 4) FastScale, template, fest (wie Division/Addieren) > 5) Lookup, template, variabel > 6) Lookup, template, fest > 7) asm,
. Ja. Irgendein Unterschied zwischen <= v6 und >= v7. Die alte(n) Version(en) machen keine Division, die neue(n) aber schon.
-
Thread
STM32F07VG Discovery - Timer + Sleep
TIM_TimeBaseStructure.TIM_Period = 65535; TIM_TimeBaseStructure.TIM_Prescaler = 0; TIM_TimeBaseStructure.TIM_ClockDivision = 0; TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure); /* Prescaler configuration */ TIM_PrescalerConfig(TIM3, PrescalerValue
-
Thread
Hersteller gesucht Bild angefügt
Draloric Electronic GmbH. With the acquisition of Draloric Electronic GmbH by the electronics division of Corning Glass Works in 1981, the name was changed to Corning-Draloric, which lasted until its acquisition by Vishay Intertechnology in 1987. Vishay Draloric is a leading brand for MELF resistors
-
Thread
CAN bus message, stm32f407
auf die ID 0x67 prüfst , dann den Zähler erhöhst. Mit dem Zähler kannst du dann den Rest einer Division durch nehmen und den auf [c] if((counter1 % 10) == 0) [/c] prüfen. Damit sollte es gehen , wenn sende Puffer und Empfangspuffer getrennt sind. Welche ID hat deine Antwort ? Wenn die größer
-
Thread
ETR1 Timer2 PWM
Init.CounterMode = TIM_COUNTERMODE_CENTERALIGNED3; htim2.Init.Period = 500; htim2.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; if (HAL_TIM_Base_Init(&htim2) != HAL_OK) { Error_Handler(); } if (HAL_TIM_PWM_Init(&htim2) != HAL_OK) { Error_Handler(); } sSlaveConfig.SlaveMode
-
Thread
STM32 - DC Motor - PWM Steuerung - Period/Pulse
TIM_TimeBaseStructure.TIM_Prescaler = 0; TIM_TimeBaseStructure.TIM_Period = 8399; TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1; TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up ; TIM_TimeBaseInit(TIM4, &TIM_TimeBaseStructure); TIM_OCInitTypeDef TIM_OCInitStructure; TIM_OCInitStructure.TIM_OCMode
-
Thread
STM32F407V - Counter i = i + 1 (?)
TIM_TimeBaseStructure.TIM_Prescaler = 0; TIM_TimeBaseStructure.TIM_Period = 8399; TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1; TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up ; TIM_TimeBaseInit(TIM4, &TIM_TimeBaseStructure); TIM_OCInitTypeDef TIM_OCInitStructure; TIM_OCInitStructure.TIM_OCMode
-
Thread
Soft-PWM Tiny25
channel_select++; OCR1B=OCR1B_reload[channel_select]; } void main(void) { // Crystal Oscillator division factor: 1 #pragma optsize- CLKPR=(1<<CLKPCE); CLKPR=(0<<CLKPCE) | (0<<CLKPS3) | (0<<CLKPS2) | (0<<CLKPS1) | (0<<CLKPS0); #ifdef _OPTIMIZE_SIZE_ #pragma optsize+ #endif // Input/Output Ports
-
Thread
Frage zu GPIO STM32
); TIM_TimeBaseStructInit(&TIM_TimeBaseInitStructure); TIM_TimeBaseInitStructure.TIM_ClockDivision = TIM_CKD_DIV1; TIM_TimeBaseInitStructure.TIM_CounterMode = TIM_CounterMode_Up; TIM_TimeBaseInitStructure.TIM_Period = 0; setting TIM_TimeBaseInitStructure.TIM_Prescaler
-
Thread
STM32 C++ Memberfunktion in Interrupt
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE); TIM_TimeBase_InitStructure.TIM_ClockDivision = TIM_CKD_DIV1; TIM_TimeBase_InitStructure.TIM_CounterMode = TIM_CounterMode_Up; TIM_TimeBase_InitStructure.TIM_Period = 9; TIM_TimeBase_InitStructure.TIM_Prescaler = 4199; TIM_TimeBaseInit
-
Thread
Zufallszahl mit falscher Verteilung
* (Max - Min) / 256 Dafür brauchst du noch nicht mal Gleitkommaberechnungen da du Anstelle der Division einfach die oberen 8Bit des Ergebnisses der Multiplikation verwenden kannst. Sascha
Warum? Weil sonst die Gleichverteilung flöten geht. Bei deinem Vorschlag entstehen durch die Division Nachkommastellen, die Abstände von benachbarten Zahlen im Zahlenbereich beträgt aber 1. Mit anderen Worten ... Bei einem ganzzahligen Vielfachen kann man die Verteilung gleichmäßig auf den gewünschten
-
Artikel
16/32Bit Computer/Konsole
internal memory; request in internal memory adr = sp; sp = sp + 1 neg da da = 0 - da udivgq da get division qoutinent udivgr da get division remainder udivgqh da get division qoutinent high [31 ..16] udivgrh da get division remainder high [31 ..16] udivsdd da set division divident udivsdv da set division
aus Geschwindigkeit und Hardwareaufwand zu ermöglichen. Wie bei einer normalen Division wird der Divisor und Dividend gesetzt, zusätzlich muss noch die Divsions-Bitbreite angegeben werden (max. 32 Bit). Durch den Befehl udivstep wird eine '1-Bit Division' ausgeführt, d.h. udivstep muss
-
Thread
C-Control PRO AVR32. Atan2 Funktion fehlt
ist. Du müsstest mindestens einen der beiden Operanden in ein Single konvertieren, damit die Division ebenfalls Single ist und damit seine Nachkommastellen behält. Wie das geht, weiß ich nicht. Wenn dir nichts besseres einfällt, kannst du es mit 1.0 * datx / daty versuchen, auch
Falls du nicht weiterkommst, kannst du ja mal die an der Berechnung beteiligten Operationen (Division, fabs, Vergleich, atan und die Ausgabe) mit verschiedenen Operanden (Integer, Single, positiv und negativ) einzeln testen, - um zu sehen, und welchen Bedingungen die Fehler passieren, und
-
Thread
Frage zur Periodenlänge von LFSR (Linear Feedback Shift Register)
+ b^3 denn in Z/3Z ist 1 + 1 + 1 = 0. Prüf's einfach nach und addiere 3 ganze Zahlen, die bei Division durch 3 Rest 1 haben. Das Ergebnis der Addition ist immer durch 3 teilbar, d.h. 0 mod 3, d.h. die 0 in Z/3Z. > Johann L. schrieb im Beitrag #4995576: >> Als Startwert nimmt man s_0 = 1, und in
abziehen, ohne dass sich der Wert mod P ändert. Ist ganz analog zum Rechnen in Z/nZ: Der Rest bei Division durch n ändert sich nicht, wenn man beliebige Vielfache von n addiert: a mod n = (a + k·n) mod n für beliebige a, k aus Z und n aus Z\{0}. > X^2 - 1·(X^2 + 1) = -1 und fehlt da ne Klammer um
-
Thread
STM32 - relativ praezises Delay ohne Timer
Der Trick, die Division für den Takt in eine Init auszulagern, ist allerdings sehr gut. Der Div-Befehl kann je nach Daten unterschiedlich lange dauern. Beim Mul-Befehl muss man nur wissen, ob ST den großen oder nur den kleinen
-
Thread
Atmega 328p Referenzspannung und Kanal wählen
eine schlechte Idee. Da muß der Controller richtig rechnen. Nimm 4 oder 8 Werte. Dann wird die Division mit einer einfachen Schiebeoperation erledigt. Wenn der Akku die Versorgungsspannungsquelle des Controllers ist, kann man die Spannung auch intern und ohne externe Beschaltung mit Bandgap gegen
eine schlechte Idee. Da muß der Controller > richtig rechnen. Nimm 4 oder 8 Werte. Dann wird die Division mit einer > einfachen Schiebeoperation erledigt. Das ist eine gute Idee. Viele Grüße Torsten
-
Thread
Alternativen zum Binärsystem?
nicht proportional n bzw. log(n) ist sondern fix (2) je Operation Einsatz z.Bsp. in Serieller Division (digit online), Aktivierungsfunktion eines Neurons, Flächenreduzierter CORDIC ... Also über all, dort wo man in der Arithmetik möglichst frühzeitig einen Größenvergleich für die weitere Berechnung
-
Thread
Gemischte Datentypen
einer arithmetischen Operation in > die Variable eines anderen Datentyps zu speichern? Für Division (32 Bit geteilt durch 16 Bit ergibt 16 Bit) ginge das, für alle anderen klassischen Operationen (Addition, Subtraktion, Multiplikation, beliebige Bitoperationen) nicht.
S. R. schrieb im Beitrag #4989038: > Georg M. schrieb: > > Für Division (32 Bit geteilt durch 16 Bit ergibt 16 Bit) ginge das, für > alle anderen klassischen Operationen (Addition, Subtraktion, > Multiplikation, beliebige Bitoperationen) nicht. Nein stimmt nicht
-
Thread
Atmega32 ADC0 bis ADC7 nur High oder Low erkennen
einfach nur, aber ausgeführt wird er doch zur Laufzeit. Sprich es findet eine Multiplikation und eine Division mit float Werten statt. Einzig der Wertevergleich ist dann auf Integerbasis und sollte schneller gehen. Das Rechnen mit float Werten spart man sich dadurch ja nicht. Oder meintest Du, dass damit
-
Thread
Was definiert die Bittigkeit einer CPU
www.easy68k.com/paulrsm/doc/dpbm68k3.htm 1983, Thomas W. Starnes, Motorola Inc., Microprocessor Division
-
Thread
STM32: OC Timer - Problem
Init.Prescaler = 0; htim2.Init.CounterMode = TIM_COUNTERMODE_UP; htim2.Init.Period = 80; htim2.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; HAL_TIM_OC_Init(&htim2); sMasterConfig.MasterOutputTrigger = TIM_TRGO_OC1; sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE; HAL_TIMEx_MasterConfigSynchronization
-
Thread
10Bit ADC Aufgabe
hier der 2er) können durch Logarithmieren mit einer vorhandenen Basis (hier 10) und anschließender Division durch den Logarithmus der gewünschten Basis (hier 2) aufgrund der vorhandenen Basis (hier 10) ersetzt werden. Mit Hilfe dieses Verfahrens kann man auch in Datenblättern Angaben wie SNR oder ENOB
-
Thread
Erweiterung des Messbereiches durch Bit-Verschiebeung
aber Grundlagen! Du hast es ja schon selber gesagt: Ganzzahl kennt keine Kommastellen. Bei einer Division wird alles nach dem Komma ignoriert. Wird dann wieder multipliziert, sind die Kommastellen verloren und dein Resultat verfälscht. Also musst du entweder die Rechnung entsprechend umstellen+skallieren
-
Thread
Phase Locked Loop - guter IC
durch zwei Clock-Prescaler durchjage, beide noch am Ende genau Phasengleich (halt um den Faktor der division Berücksichtigt) ? Sind diese IC´s also so flott, dass ich ein Signal durch zwei Prescaler durchjagen kann, sodass sie nachher immer mit dem ursprünglich nicht veränderten MasterClock noch zusammenspielen
-
Thread
Verständnisfrage Wandlung nach Float sowie Verständnis von Q8.4 bei NXP Pressure Sensor
((Wire.read()<<8) + Wire.read()) / 256.0; Beachte das 256.0: dadurch wird erreicht, dass die Division nicht in Integer, sondern in float geschieht. Sonst gingen die Nachkommastellen verloren.
-
Thread
einen einzigen Puls
gebraucht wird Den Repetition Counter lasse ich auch weg, wird nicht gebraucht. wähle die Clock division= 1; und den Prescaler = 0; dann wähle ich Trigger Mode (SMS) und wähle den Trigger (TS) im SMCR setze das OPM bit für one pulse und setze das UG bit dann fehlen noch die Polarität OC2P
configuration*/ TIM15->CR1 &= ~TIM_CR1_CKD; /* Set CKD -> clock division to 1 */ TIM15->PSC = Presc; /* Set the Prescaler value */ TIM15->ARR = period - 1; /* Set the Auto-reload value*/
-
Thread
AVR Dezimalzahlen in Binärzahlen umrechnen
Luis F. schrieb im Beitrag #4975057: > Von einer Modulo-Division wusste ich bis jetzt noch nichts, aber diese > ist ja auch nicht fähig einen Rest auszuspucken, richtig? Es gibt in C auch kein Modulo-Division, da hast du recht. Aber es gibt eine Divisions-Operation
Jetzt belies dich mal über arithmetische Rechenoperationen mit Integerzahlen. Insbesondere über die Division. Was passiert also, wenn du deine Zahl durch 10 teilst? Ja, du kriegst 1/10 der Zahl dabei heraus - und zugleich auch noch den Rest. Der entspricht deiner hintersten Stelle. Wenn du nun das Ergebnis