-
Thread
STM32 parallel 8-16 fallende Flanken erkennen
locker zu machen. Naja, locker vielleicht nicht, aber es geht schon, denke ich. Vor allem da es die Division im STM32 als Befehl gibt. War die kostspieligste Stelle im 1284p.
-
Thread
stm32f103 3phase-generator
TIM_CounterMode_Up; TIM_TimeBaseStructure.TIM_Period = 0x00FF; TIM_TimeBaseStructure.TIM_ClockDivision = 0; TIM_TimeBaseStructure.TIM_RepetitionCounter = 0; TIM_TimeBaseInit(TIM1, &TIM_TimeBaseStructure); TIM_UpdateRequestConfig(TIM1, TIM_UpdateSource_Global); TIM_UpdateDisableConfig(TIM1,DISABLE
-
Thread
ltSpice: Ladung Kondensator anzeigen
Excel-Berechung leider falsch. Wenn ich es richtig sehe, summierst du dort I*dt/V auf. Was soll die Division durch V (durch den Momentanwert der Kondensatorspannung?) Die hat an der Stelle nichts verloren.
Beitrag #5231140: > Wenn ich es richtig sehe, summierst du dort I*dt/V auf. Was soll die > Division durch V (durch den Momentanwert der Kondensatorspannung?) Die > hat an der Stelle nichts verloren. C=I*t/V Q=C*U somit Q = I*t/V*V = I*t richtig, '*V' vergessen IST hab ich jetzt 15,41mC
-
Thread
"if" wird nicht richtig ausgeführt
reinpassen) und nur mit signed-Operatoren. Also kein Einer-Komplement ("~") und auch kein shift statt Division. Der Compiler kennt diese Tricks selber, aber er weiß auch, wann er sie benutzen darf. Erst wenn Bits und Takte ganz knapp werden, dann kann/muß man tricksen. Davor ist es nur verschwendete Zeit.
-
Thread
Timer Interrupt am STM32F103
RCC_APB1Periph_TIM2, ENABLE); // Timer konfigurieren TIM_TimeBase_InitStructure.TIM_ClockDivision = TIM_CKD_DIV1; TIM_TimeBase_InitStructure.TIM_CounterMode = TIM_CounterMode_Up; TIM_TimeBase_InitStructure.TIM_Period = 1999; TIM_TimeBase_InitStructure.TIM_Prescaler = 17999; TIM_TimeBaseInit
TIM_CounterMode_Up; TIM_TimeBaseStructure.TIM_Period = 0x00FF; TIM_TimeBaseStructure.TIM_ClockDivision = 0; TIM_TimeBaseStructure.TIM_RepetitionCounter = 0; TIM_TimeBaseInit(TIM1, &TIM_TimeBaseStructure); TIM_UpdateRequestConfig(TIM1, TIM_UpdateSource_Global); // <<< TIM_UpdateDisableConfig(
-
Thread
Newbi braucht hilfe Pic 16f876
Temperaturregister addieren (16 Bit Addition) ; 3. Temperaturregister durch 101 dividieren (16 Bit Division) ; 4. Vom Temperaturregister 150 subtrahieren (16 Bit Subtraktion) ; 5. Temperaturregister in BCD umrechen (3-stellig), Vorzeichen beachten mainloop ; Startwert für korrektes Runden
xw0 call Add16 ; 16-bit add: f = f + xw decfsz NrMessung, f goto Messung ; Division durch 101 movlw 0x00 ; 101 = 00 65 h movwf xw1 movlw 0x65 movwf xw0 call Div16 ; Division f:= f / xw ; 150°C Offset entfernen bcf Negativ ; angenommen: positive
-
Thread
ADC bei Atmega 32
Eine Frage: Wird das Ergebnis einer Division in C gerundet? Wenn nicht, habe ich eine Lösung^^ Mfg Christoph
>Wird das Ergebnis einer Division in C gerundet? >Wenn nicht, habe ich eine Lösung^^ Wie sieht die aus? Die einfachste Methode ist: double x; int y; y = x+0.5; // Aufrunden
-
Thread
70000 / 5 = 888
pulstimerwert (pulstimerwert ist immer restlos durch 5 teilbar) über die 65535 (16 bit) kommt, die Division kein richtiges Ergebnis mehr liefert – 70000 / 5 = 888. Ich habe schon verschiedene andere Datentypen ausprobiert – int, uint, long, uint16_t, uint32_t – und die Rechenoperation auf eine Zwischen
ähnlich? ist ähnlich. Aber er braucht ja nichts aus der math Library. Das ist eine popelige long Division.
-
Thread
ADC mit ATMEGA8
letzten sind für den Prescaler. In diesem Fall steht 0bxxxxx101 für 1/32... weil ADPS2 ADPS1 ADPS0 Division Faktor 1 0 1 32
-
Thread
langsame Division
Hallo, ich hab eine Frage zur Laufzeit einer Division einer 32Bit Ganzzahl. Wenn ich eine normale Division a3 = a1 / a2; habe, dann dauert die ca 38mu s. Ich programmiere mit dem AVR Studio 4 in C und hab einen Atmega128 mit 16MHz Quarz. Ist diese
verkraftbar sein), kleine Rechenungenauigkeit (muss je nach Anwendungsfall angepasst werden). Ersparnis: Division.
-
Thread
Bestimmte Code-Teile nicht optimieren
. mit bestimmten leeren asm-statements behelfen, wenn der Compiler beispielsweise eine langsame Division genau in das Codestück reinschiebt, in dem man es partout nicht gebrauchen kann.
-
Thread
Ringbuffer in C optimieren?
x:=(x+1) mod max; > Auf einem PC würde ich das auch so machen. Aber ein AVR ist mit einer Division durch 38 nicht so glücklich. Da macht er lieber einen Vergleich mit anschliessendem 0-setzen.
spess53 schrieb: > Hat C keinen Modulo-Operator? Natürlich. Aber meinst Du, der Aufruf einer Divisionsroutine ist schneller? Auch will man nicht unnötig SRAM verschenken und auf die nächste 2-er Potenz aufrunden müssen. Peter
-
Thread
Mittelwert von ADC über 3 Minuten ?
256 + Neu / 256. Das ist in ASM eine einfache Subtraktion und eine einfache Addition, wobei die Division durch 256 durch Byteshifting (Umbenennung) erfolgt und nix kostet. Wenn es unbedingt die 3 Minuten sein müssen, dann würde ich 256 Bytes Ringbuffer anlegen, den ADC frei durchlaufen lassen und
der Wert gebraucht, addiert man den Inhalt des Ringbuffers und wirft das Low-Byte weg, was einer Division durch 256 (Byteshifting) entspricht. In ASM lächerlich einfach und effizient, in einer Hochsprache vermutlich etwas kryptisch. ...
-
Thread
Division mittels Array umgehen - Problem: großer Zahlenbereich
genau sein muß, lässt sich da vielleicht ein Faktor 30 reinrechnen, dann kommst du mit einer 16-bit-Division aus. Oliver
leicht und bringt deine 90000 auf 45000 runter. 45000 passt aber in einen unsigned int -> 16 Bit Division anstatt 32 Bit Division.
-
Thread
Der Microcontroller und seine Datentypen
verwendet man nicht Zehnerpotenzen als Multiplikatoren, sondern Zweierpotenzen. Damit lassen sich Divisionen und Multiplikationen als Bitschiebeoperationen ausdrücken. Wenn man das so macht, kann es sein, dass in einer Variable das 65536 fache des eigentlich zu berechnenden Werts steht, in einer anderen
Diener schrieb im Beitrag #1846039: > Multiplikatoren, sondern Zweierpotenzen. Damit lassen sich Divisionen > und Multiplikationen als Bitschiebeoperationen ausdrücken. Wenn man das > so macht, kann es sein, dass in einer Variable das 65536 fache des > eigentlich zu berechnenden Werts steht, in einer
-
Thread
UART sendet Zeichen mehrmals ATMega1280
Modulo 16 ist z.B. ein Ver-Unden mit 0x0F. Oder Pufferlänge 32 --> 0x1F Da ist keine aufwendige Division mehr nötig. EDIT: Du schreibst: > uart.h: [c] //**************************************************************** // Dateiname : uart.h ... void initusart0(void) { ... }
-
Thread
Uhr nur in der Simulation genau
Das ist falsch. Um durch n zu teilen, muss OCR mit n-1 geladen werden. Hat er. Seine formale Division ist falsch angeschrieben. Es muss lauten [code] 10MHz / 64 / 15625 = 10Hz =100ms [/code] OCR auf 15624 ist korrekt. (Ich habs 3 mal nachgerechnet)
-
Thread
astudio mit winavr float a = ?
durch 2. Da 7.0f ein float ist, wird auch der Integer 2 zu einem float 2.0f umgewandelt. Die Division, die zur Ausführung kommt, lautet also: 7.0f / 2.0f Und das ergibt 3.5 Weise diese 3.5 an a zu. Sieht so aus, als ob du mit Datentypen und deren Umwandlung und vor allen Dingen wie Operationen
gelesen? Was ist denn 7 (vom Datentyp her) Was ist denn 3 (vom Datentyp her) Welche Art der Division kommt daher zum Zug? (Geh nochmal zum Link und lies den nächsten Abschnitt auch noch mit)
-
Thread
einen einzigen DS18s20 auslesen + LCD
in C umsetzen. ((scratchpad[7] - scratchpad[6]) / scratchpad[7] das ist eine Integer Division und keine Gleitkommadivision. Und ausserdem muss temperatur dann eine double Variable sein, so wie du das hast. Ich kenn jetzt deine Anwendung nicht, für meine Anwendungen würde dieser Genauigkeitsboost
-
Thread
Sensorkennlinie
wahrscheinlich ähnlich viel Speicher, die Berechnung dauert aber deutlich länger, allein schon wegen der Division.
-
Thread
Brauche eure Hilfe zum Programmieren
; Durchschnittswert aus 256 Durchläufen mov AV_H,CL ; BL fällt weg = Division durch 256 rcall print_current ; LCD-Ausgabe Strom rcall stop_pwm ; PWM aus rcall get_voltage ; Spannung messen rcall start_pwm ; PWM wieder
; Durchschnittswert aus 256 Durchläufen mov AV_H,CL ; BL fällt weg = Division durch 256 rcall print_voltage ; 1/Sek Spannung ausgeben cpi t_min,60 ; wenn 60 Minuten um breq vct ; weiter mit Trickle-Charge rcall print_minutes
-
Thread
Wie funktioniert DSSS/WLAN?
Natürlich nicht: OFDM = Orthogonal Frequency Division Multiplex Bedeutet, dass auf mehereren Trägerfrequenzen gleichzeitig übertragen wird. Das Spektrum wird also dadurch gespreizt, indem mehrere Trägerfrequenzen verwendet werden. Bei DSSS wird immer
-
Thread
Probleme mit I-Anteil / Regler
gewonnen. (*) in der Praxis wird man nicht 10 nehmen, sondern eine 2-er Potenz, damit die Division für den µC trivial wird.
-
Thread
MSP430 erstellen einer LUT
sich da ein signifikanter Unterschied ergeben. Wenn ich mich dunkel entsinne, dauert eine float-Division über die Bibliothek bei einem MSP430F1232 (hat keine HW-Multiplizierer) mit 5MHz CPU-Clock (MCLK) einige 100µs.
-
Thread
lineare interpolation auf dem PIC
wir uns nach dem Komma verschafft haben, sind mehr als die 4 bits, die wir durch die notwendige Division durch 16 (wegen der 16 Schritte) wieder verlieren. Jetzt machen wir die Iteration, und unser Ergebnis holen wir uns aus den oberen 8 bits unseres 16bit Additionsergebnisses. Ich weiss im Moment
-
Thread
Ich suche eine schnelle ADC / DAC Berechnungs Routine für eine 32 Bit Plattform
Überlauf findet erst bei Sollspannung>=175261(mV) statt. Damit umgehst du dir die komplizierte Division.
Überlauf findet erst bei Sollspannung>=175261(mV) statt. > > Damit umgehst du dir die komplizierte Division. Vielen Dank für die schnelle Antwort. Hätte nicht gedacht, dass man da noch so viel rausholen kann. Du hast eine komplette Division eingesparrt. Das macht Performanz-technisch einiges aus !!!
-
Thread
Systementwicklung mit FPGA
Ach ja, und für die Division (zweite Zeile) benötigt man eben den schon angesprochenen Devider entsprechender Breite. Wenn A z.B. auf 32 Bit genau sein muss, braucht man in der Regel eine 66 Bit Division, die man auch 2-stufig ausführen kann (2x40). So eine 40 Bit Division braucht etwa eine viertel us. So lange muss die fsm warten / bzw takten, bis das Ergebnis ok ist. Wenn Du aber mehrere Division hast, kann man es pipelinen (-> Megawizzard). Dann kann man jeden clk
-
Thread
AD Wandler ungenaue Messung
übrigens praktisch, als mittelungsfaktor eine Wert 2^x zu nehmen (also 8,16 oder 32), weil dann die Division einfach und schnell mit Rechtsschieben erledigt werden kann. Gruß Johannes
-
Thread
Ladungsmessgerät
% ist Modulo Division. Das heißt die 3600 fallen weg, der Rest bleibt. Ginge wohl auch mit minus.
natürlich, aber wenn man mit Resourcen (Flash, Zeit) geizen müsste, würde man Modulo (bzw. allgemein Division) möglichst durch Subtraktion oder Zuweisung "summe=0" ersetzen. Laut Schaltplan kriegt AVCC keine Spannung!?! Gruß Frank
-
Thread
Mittelwert sinnvoll bilden
die summe den wert um dein problem zu lösen,.. TIPP: wenn du kein bock auf umständige division hast, addiere erst 2 neue werte auf und dan diviere mit nen shift nach rechts (damit umgehst du die division mit "krummen" divisoren), ... ich hoffe ich habe geholfen,.. grüüüße
Mehr ist es bei mir ja auch nicht (Bei Fensterbreiten von 2,4,8,16 usw. ist die Division ja auch nur ein Bitshift).
-
Thread
Was mache ich falsch ?
Temp = 500 / 1023 Das ergibt nämlich 0kommanix. Du musst die Formel so umstellen dass du die Division (wenn du eine brauchst) erst ganz zum Schluss ausführst. Gruß Roland
10 Hoffe das hast jetzt verstanden, wie das mit Einsetzen und umstellen funktioniert. Die Division sollte man halt erst nach allen Multiplikationen ausführen, weil es sonst zu großen numerischen Fehlern kommt . Gruß Roland
-
Thread
Sekunden in "hh:mm:ss" umwandeln
DerSchelm wrote: > Ihr habt es schon gesagt: Divisionen sind richtig teuer. Versuch es mal mit dem guten alten Modulus!
zwar jetzt sehr ineffizient aussehen, braucht jedoch _viel_ weniger Rechnenzeit als klassische Divisionen. Plus Du könntest da sogar die Unterstützung für das Datum reinbauen, und dann mit Unixzeit arbeiten. [1] Mit etwas Überlegen kannst Du sogar einen Algorithmus für Schaltjahre machen. Eventuell
-
Thread
Datenübertragung per Stehlampe :)
www.youtube.com/watch?v=0fKIHEdlT3s&feature=related >Wieso? Die kann man doch filtern. Oder Time Division
-
Thread
DSO mit Logic-Unit aufrüsten? Kaufempfehlung 2024
beigelegt hat. Ist gleich zu Anfang im gleichen Thread. > WTF... > When i adjust minimum vertical division,it has a large ripple at 55KHz and large noice.... > I guess it may come from power supply. > I replaced power supply for it from my samsung notebook.Now it looks fine.
-
Thread
Hilfe zu MSP430 programmierung...!?
ich keine Probleme, ich schreibe mir alles selbst: binär zu dezimal (48Bit), dezimal zu binär, division, cached LCD, GLCD, I2C... alles halt. Das meiste hab ich bis jetzt mit PIC18Fs gemacht, hab auch mal mit AVR probiert liegt mir aber irgendwie nicht so... MfG Martin
-
Thread
selbstgebasteltes Display ansteuern
Hi, hier eine Applikation, die benutzt das "Division durch 10 Verfahren", um eine 16-Bit Zahl darzustellen: http://www.specs.de/users/danni/avr/soft/dcf77/index.htm Die eigentliche Routine: http://www.specs.de/users/danni/avr/soft/dcf77/dec_out.inc
-
Thread
FPGA Coprozesser Blöcke werden wegoptimiert
a * b schreiben und da kommt auch irgendwas raus, aber sollte man das auch so machen? Bei der Division habe ich schon gesehen, dass es besser ist, dass richtig zu machen so wie von der Seite von Lothar Miller. Aber wie sieht es bei der Multiplikation aus? Sollte man das auch "zu Fuß" machen? Grüße
, die Division durchführe und dann, je nach Vorzeichen, das Ergebnis wieder nach unsigned wandeln und ausgeben. Ich verwende ISIM. Das mit den Signalen habe ich gefunden. Funktioniert. Da kann ich sehen, was
-
Thread
Benutzt hier jemand die Cortex-M4-FPU?
das ABI bleibt immer gleich. Fun fact: Der Linux Kernel hat Funktionen für Software Integer Division, und prüft beim Hochfahren ob der Prozessor Hardware Integer Division kann (udiv/sdiv). Falls ja, werden diese Funktionen mit dieser Instruktion überschrieben (Self Modifying Code).
-
Thread
Arduino Nano vs UNO , Spannungsteiler, Werte ungenau
für einen Analogrechner. Keinesfalls ist ist ein solcher Analogrechner ungenau. Jede digitale Division trägt das Potential in sich viel ungenauer zu sein.
-
Thread
stm32 timers synchronisieren in encoder mode
htim1.Init.CounterMode = TIM_COUNTERMODE_UP; htim1.Init.Period = 65535; htim1.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; htim1.Init.RepetitionCounter = 0; htim1.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE; sConfig.EncoderMode = TIM_ENCODERMODE_TI1; sConfig.IC1Polarity
-
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
Tipps und Tricks zum Thema Rechnen in ganzen Zahlen?
abgequält und wurde mit Rundungsfehlern und Überläufen bestraft. Auf einem 8-Bitter ist z.B. die Division in float schneller gegenüber int32_t, da sie nur 24 Bits berechnen muß.
möchtest, > schau mal nach "Restklassenrechnung". Das ist aber ne komplett andere Baustelle, weil Division komplett anders funktioniert. Z.B: in Z/5Z 1/2 = 3 weil 2*3 = 1 mod 5.
-
Thread
2x 4bit auf einen Port ausgeben
addiert, subtrahiert, multipliziert oder dividiert. Anschließend wird die Zahl dezimal mithilfe der Division durch 10 (Zehner) und duch Division mit 10 und Rest (Einer) auf zwei 7-Segment Anzeigen ausgegeben. All das funktioniert auch super. Jedoch schaffe ich es nicht, beide Stellen, also Zehner (4bit)
mich jetzt nicht wirklich grossartig problematisch aus. In Relation dazu sind die nachfolgenden DIvisionen das viel größere 'Problem'.
-
Thread
Modulo und uint32_t funktioniert nicht
Ergebnis der Operation passt definitiv in 16 Bit und hat so oder so nimmer ein Vorzeichen, die Division funktioniert problemlos so wie ich es gebaut hab ... :/ übrigens geh ich strikt davon aus, dass ICH was falsch mache nur versteh ich es noch nicht was :/ ... es scheint dann wohl doch beim format
-
Thread
Suche speichersparende Möglichkeit für exp10()
- 3te Ordnung brauch 6 Multiplikationen mehr als 1-te Ordnung sowie einige Additionen mehr. Divisionen werden nicht benötigt bzw. können vermieden werden. - 3te Ordnung liefert doppelte Genautigkeit im Vergleich zu 1er Ordnung, d.h. doppelt so viele Nachkommastellen Wenn es interessiert
Yalu X. schrieb im Beitrag #2673882: > Da die >>-Operation einer Division mit Abrunden entspricht, habe ich > schließlich alle Ausdrücke der Form a>>b durch a+(1<<b-1)>>b ersetzt, so > dass gewöhnlich gerundet und damit die Genauigkeit noch etwas verbessert > wird.
-
Thread
volatile Variablen lokal zwischenspeichern?
Allerdings kann dann Code von außerhalb mit in das ATOMIC-Macro hineingezogen werden. Bei einer Division sind dann also Interrupts für lange Zeit gesperrt. Der Vernachlässigung der volatile und atomic Problematik ist bestimmt für 90% der Bluescreens und Abstürze verantwortlich. Peter
-
Thread
Zwei Angebote, welches ist das richtige?
1: http://al-ko.com/ 2: http://www.rheinmetall-defence.de/en/rheinmetall_defence/company/divisions_and_subsidiaries/rheinmetall_man_military_vehicles/index.php
-
Thread
C# Ausnahmebehandlung
Programmierfehler, und genau so sollten Exceptions benutzt werden. Beispiele I/O Error, DB Error, Division durch Zero, Null Pointer Exception, Cast Exception, Konvertierfehler (String in Zahl), ... Und in den Fällen ist die Performance genau wie bei benutzereingaben das allerletzte was wichtig ist.
-
Thread
c progammfehler
deine Division kannst du löschen das Ergebnis ist immer 0
-
Thread
21 % Verzinsung in 5 Jahren 87 Tagen entspricht welcher jährlichen Verzinsung?
kennst: Schwamm drüber. Wer so etwas nicht täglich braucht, schaut wo nach. ABER: Die einfache Division des Bankberaters MUSS ja falsch sein, weil hier ja offensichtlich Zinseszins-Effekte völlig außen vor bleiben. Dass der Typ ein Blender ist, weißt du also auch OHNE hier nachzufragen. Links