-
Thread
Zähler bis 1 Mio aber wie?
Darstellung um später die Umwandlung in der Anzeige auf einem LCD zu vereinfachen. Sprich ohne Divisionen auskommen zu können. Gruß Hagen
-
Thread
Constraint Programming für Mikrocontroller-Peripherie
// Configure the timer mode TIM1->CR1 = (0 << TIM_CR1_CKD_Pos) | TIM_CR1_ARPE; // Set clock division to 1 and enable auto-reload preload TIM1->CR2 = 0; // Default value // Set the PWM mode TIM1->CCMR1 = (6 << TIM_CCMR1_OC1M_Pos); // PWM mode 1 on channel 1 TIM1->CCMR1 |= TIM_CCMR1_OC1PE; //
-
Thread
Suche Library ADS1220 an ATmega328 ohne Arduino
verstehen. Dann darfst du auf kleineren CPUs auch nicht mit 32-Bit Integer rechnen. Und eine Division geht garnicht, nicht einmal mit 8 Bit. Keine Hardware, nur Softwaregebastel...
-
Thread
HP461 - Verstärker 20/40dB
als Beifang in der Mitte noch ein paar Test-Microstrips. Im TDR-Plot sind die beiden Ohren bei t-Division 7 und 8 die beiden Precision-SMA-Stecker, dazwischen ist die Platine. Die SMAs sind noch etwas überkompensiert; mit den üblichen Löt-Wohlfühlpads sackt die Impedanz auf einem knappen Zentimeter
-
Thread
ATMega Temperatur
Hallo Forum, die Überschrift sagt alles. Also ich kann ua binäre Division und Multiplikation und so einiges mehr, nur beim Thema Thermometer versage ich so richtig. Bevor jetzt wieder so Komentare kommen wie "Zu faul zum Suchen", "Fange erst mal mit was leichten an" usw
-
Thread
x86 Prozessor
16Bit-Comandos. Mit anderen Befehlen wie movem.l d0-d7/a0-a6,a7 (Move Multiple) und divs.l d0,d1 (32Bit-Division) ist der 68000 dann klar im Vorteil. Allerdings benötigt der 68000 dann auch 4 Takte für 32Bit-Operationen da die Alu im 68000 16Bit breit ist und der quasi bei 32Bit-Operationen 2 mal schalten muß
-
Thread
Long(Int) -> ASCII Umwandlung
t-dezimal-Umwandlung dient. Die Unterroutine ist in Assembler gecoded, benutzt eine Schleife (keine Divisionen) und ist auf einem AtMega8 92 Byte gross. Falls das jemand benutzen sollte, so kann er ja mal posten, ob die Routine bei ihm funktioniert. Gruß Marco
normalen/standard' befehle zurückgreifen. wenn du's schneller haben willst kannste du ja einfach die division mit reciprokaler multiplication ersetzten. is dann zwar auch nich so schnell wie die routine im gem, aber doch schon einiges schneller und nur einwenig größer.statt: loop_1: xor edx, edx
-
Thread
int in BCD
sind aber ~ 300k Speicher weg :-) Ansonsten halt immer wieder durch 10 Teilen und den Rest der Divisionen speichern. Matthias
Ich glaube mit dem % (Modulus) Operator. 34 % 10 = 4; 4 ist der ganzzahlige Rest der Division. 34 / 10 = 3; So müßte es gehen. Michael
-
Thread
itoa in Verbindung mit Einerstellen im "xx" Format.
wäre eine Division Overkill, weil nämlich: Marius MWH schrieb im Beitrag #6204398: > ...ne, zu krass. itoa macht mir schon fast zuviel selbst :) Außerdem: sind das nicht sogar zwei Divisionen? Oder schafft es
das Ergebnis einer Division und den Rest in einem Abwasch bekommen? Das scheint zumindest im C Quelltext nicht möglich zu sein. foobar schrieb im Beitrag #6204666: >> sind das nicht sogar zwei Divisionen? Oder schafft
-
Thread
Prozessor 8085 MFA-Mediensystem
behaupten - auch wenn ich lange nicht alles weiß. übrigens, die von ATMEL haben multiplikation und division, die 8051er Reihe afaik auch, bei den PIC's bin ich nicht ganz sicher. Der 8085 ist (im übrigen auch kein Controller) imho einfach überaltet, aber das ist jedem seine eigene Meinung ;) bYE
@Tec, die 8051 haben Multiplikation und Division, bloß nützt dir das z.B. bei 16 oder 32 Bit Division gar nichts. Die meisten AVRs haben weder noch, sondern nur die ganz neuen ATMegas haben Multiplikation (der ATMega103 nicht). Das der 8085
-
Thread
Hilfe! Muss in MFC einen Taschenrechner Programmieren.
Um Berechnungen wie Addition, Subtraktion, Division, ... durchzuführen, schreib dir doch für jede Rechenart eine Funktion. z.B. int addiere(int a, int b) { int c; c = a + b; return c; } Als Anfänger solltest du das ganze erstmal
-
Thread
Tester mit älteren und aktuellen Windows PCs gesucht (dauert 5 Minuten)
stehen. Kannst ja, wenn Du Lust und Laune hast, die beiden Schleifen im Testprogi abändern, also die Division rausnehmen. for (tr = 0; tr < TESTLOOPS / 4; tr++) // warm up Die Zeiten sehen allgemein etwas "unruhig" aus, die Referenz wird langsamer. Daß SSSE3 und SSE4.1 so schlecht abschneiden, wundert
-
Thread
LED-Streifen dimmen
hängt natürlich davon ab, wieviel Array man einsparen kann, und ob die nötigen Mulitplikations/Divisionsroutinen sowieso schon im Projekt verwendet werden oder nicht. Quick&Dirty für 8Bit -> 8Bit: [c] prog_uint8_t red_calibration[]= { 0,0, 50,10, 100,30, 150,80, 200,140, 0xFF,0xFF }; prog_uint8
-
Thread
3D Kennfeld mit Mikrocontroller verarbeiten
Geht eigentlich recht einfach, sehr effizient und superschnell (ohne echte Division), dann, wenn die Stützstellen auf 2hochN liegen, also 2,4,8,16 oder 32.. usw. Pseudo-Code in C: [c] #define DIV (8) // Abstand zwischen 2 Stützstellen #define MASK (DIV-1) // interpolate
Beitrag #6875862: > Geht eigentlich recht einfach, sehr effizient und superschnell (ohne > echte Division), dann, wenn die Stützstellen auf 2hochN liegen, also > 2,4,8,16 oder 32.. usw. Man verwendet besser 2^n Intervalle, also 2^n+1 Stützstellen (3, 5, 9, ...). Bei der Interpolation fällt eine Division
-
Thread
SPICE MODEL 6SA7GT wie funktioniert ?
subcircuit werde ich den aus einem Fertigen abwandeln? ..irendwann bring der Recher "Error, division by zero". > > Hasst du schon mal mit Spice aktiv selber Simuliert , oder modeliert`? Ich habe mit Spice bisher nur passiv moduliert, .. apperatiert hat bisher imemr der Rechner. > diese
-
Thread
Gibt es das in C oder C++ nicht?
sinnvoller, d.h. ein Bereich [0,360) oder [-180,180). Und bei echter modularer Arithmetik ist die Division ziemlich ungewohnt: 7*52° = 364° = 4°. Daher ist 4°/7 = 52° und nicht etwa 0° :-) sowas hat man z.B. bei Kryptosystemen (die natürlich nicht in ° rechnen), aber es verdeutlicht das Problem,
-
Thread
Division mit Rest
schneller gehen muss, und auch mit höheren Zahlen. Eventuell funktioniert es ja auch ohne die Division, sondern mit Operatoren, aber obwohl ich prinzipiell weiss, was die Operatoren machen, kann ich mir nicht vorstellen wie ich das anstellen könnte. Diejenigen die schonmal ein Fat in C programmiert
Btw., die Division ist eine recht kostspielige Angelegenheit (die teuerste der vier Grundrechenarten). Prinzipbedingt fällt bei den Divisionsalgorithmen der Rest der Division gleich immer nebenbei mit ab. Von daher
-
Thread
CPLD-Problem: moving average
Der eigentliche Trick: bei geeigneter Wahl der Filtertiefe (als Zweierpotenz) ist keine wirkliche Division nötig... Und hier mit Filtertiefe 32 in VHDL: [pre] akku <= akku - akku/32 + in_data when rising_edge(clk); out_data <= akku/32; [/pre]
eigentliche Trick: bei geeigneter Wahl der Filtertiefe (als > Zweierpotenz) ist keine wirkliche Division nötig... Ja, nur so ist es eigentlich auch Sinnvoll. Dann ist es nur noch eine Schiebeoperation. Eigentlich ist das Ganze doch nur ein FIFO mit N Werten des ADCs. Bei jedem neuen Wert des ADCs
-
Thread
RGB Farbkreis RGB werte
Rundungsfehler haben kann - bei deinem Code wäre ich mir da nicht ganz sicher, bei den ganzen Divisionen/Modulo die du da drin hast. Dani schrieb im Beitrag #3471490: > Und auf dem µC werde ich das Ganze mit einer Look Up Table lösen. Nicht notwendig und Platzverschwendung. Die Kurven sind mit
-
Thread
EPJ15 S. 7: PWM mit FPGA
> Nur wird man die dann > > mit mehr Hirnschmalz pipelinen und nicht so brachial mit zig Divisionen > > (die es ja nun auch nicht umsonst gibt) aufbauen... Wenn "man" es korrekt macht, braucht man keine einzige Division, denn es sind lediglich funktionelle Teilung. Tatsächlich sind es ja
ich Lothar völlig recht geben. Es gibt elegantere Wege > eine PWM zu realisieren. Modululo und Divisionen sind auch in Hardware > kein Problem. So lange man es zur richtigen Basis macht ;-) Die Modulo und Divisionen sind eigentlich nur für die Anzeige auf den 7Seg Anzeigen wichtig. Mit der PWM-Erzeugung
-
Thread
Modul erhält auf Grund der Architektur zwei Clocks, Lösung?
Rauten-Architektur. Beim Modul C handelt es sich um dieses hier: http://www.lothar-miller.de/s9y/archives/29-Division-in-VHDL.html
so ist das, wenn man ungefragt Zeug zusammenkopiert... :-P Und ich dachte schon, in meiner Divisionroutine wäre da noch ein Fehler. Zum Hintergrund: http://www.lothar-miller.de/s9y/archives/16-Takt-im-Prozess.html
-
Thread
Taschenrechner aus AND- OR- NOT- usw. -Gattern
riesige Herausforderung. Machbar aber unglaublich fordernd. Vor allem noch mit Multiplikation und Division, ich glaube das kannst du dir gleich mal rausstreichen aus deinem Pflichtenheft. Gruss Gordon
Logikschaltung aufgebaut sondern in einen uC einprogrammiert. Und dann sind Multiplikation und Division nur reine Software.
-
Thread
uhr richtig anzeigen lassen 00:00
#2739530: > S[1] = '0'+(Stunde div 10) > S[2] = '0'+(Stunde mod 10) Jetzt auch noch zwei Divisionen für eine Operation, die, wenn man die originalen BCD-Daten verwenden würde, nicht mehr als ein Dutzend Prozessortakte braucht. Vielleicht sollte man das ganze als Julianisches Datum rechnen, dann
-
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
Übertragungsfunktion aus diskreten Werten
Du erhälst mit der Division der Fouriertransformierten des Ausgangssignals durch die Fouriertransformierte des Eingangssignals die Fouriertransformierte der Impulsantwort. Das hat bei mir, als ich das damals gebraucht habe,
-
Thread
Effizient Datum und Uhrzeit vergleichen
manipulieren (Uhrzeit stellen up/down), erfordert alles minimale Rechenzeit ohne Multiplikation und Division. Was bescheiden geht sind Zeitdifferenzen zu berechnen. Und der Speicherbedarf ist halt etwas höher, 7 Byte reichen aber für hh:mm:ss, dd.nn.yy und wday.
-
Thread
Problem: Attiny45 mit 16MHz PLL Takt
CLKPS bits will be reset to 0000. If CKDIV8 is programmed, CLKPS bits are reset to 0011, giving a division factor of eight at start up." (in 6.5.2 CLKPR - Clock Prescale Register). Ich würde das daher für mindestens einen Dokumentations-Bug halten, wenn nicht gar für einen echten Hardware-Bug.
-
Thread
Satellitensequenz
Tabelle der Reste per Additionen inkrementiert für den nächsten Kandidaten. So filtert man ganz ohne Divisionen alle Zahlen raus die durch alle Primzahlen < 2^16 teilbar sind. Danach benutzt man verschiedene Testverfahren wie zb. Rabin Miller oder wie bei mir den Baile/Selfridge/Wagstaff Strong Lucas Pseudo
-
Thread
Wie baue ich ein digitales Filter auf?
ersten Leute (sogenannte 'Profis') auftauchen, die eine Multiplikation für 'schädlich' und eine Division für total verboten halten ;-) https://www.mikrocontroller.net/topic/391954#new
Leute (sogenannte 'Profis') > auftauchen, die eine Multiplikation für 'schädlich' und eine > Division für total verboten halten ;-) Bin schon da, du meintest doch mich, oder ?-) > gefiltert = (short)( (63 * (int)gefiltert + adcout + 32) / 64 ); Selbst wenn ADC 1023 und gefiltert 1022 ist,
-
Thread
Ampere- und Volt- Meter verstehen
die Batterie des Multimeters. das ist ja überschauber, weil die werte per Multiplikation oder division proportional zu einander stehen, ohmsches gesetzt
-
Thread
font editor 2bpp
.255), dann die 8-2 = 6 LSB entfernen. Also einfach "shr 6" oder in C ">> 6". Das entspricht einer Division durch 2^6 = 64. Und wenn du 0..255 durch 64 dividierst, hast du schön 0..3 (also 2bpp). Bei 4bpp (also 0..15) Graustufen einfach 4-2 = 2 LSB entfernen, also "shr 2". Dann brauchst nur noch das
-
Thread
C-Code while schleife
die Zahl? [C] fputc( (int_tmp/i) + '0', 0 ); [/C] Aaaah. zim Ergebnis der Division wird noch der Zeichencode von '0' dazugezählt. Alles klar, das ist eine 'Verschiebung' eines einstelligen Rechenergebnisses in den Coderaum der sichtbaren Zeichen. So gibt es viele Dinge, und jeder
-
Thread
Taktfrequenz vom ATxmega
weg. Ich mache das so: 16MHz rein, PLL auf 4x stellen => 64MHz Takt. Dann den CPU-Takt auf Divisionsfaktor 2 stellen. Das gibt dann: - 32MHz CPU Takt - 64MHz Peripherietakt (Speicher etc.) Die Architektur des XMegas und der Mega AVRs sind sehr verschieden. Beim XMega wurde halt auch ordentlich
> Ich mache das so: 16MHz rein, PLL auf 4x stellen => 64MHz Takt. Dann den > CPU-Takt auf Divisionsfaktor 2 stellen. Das gibt dann: > - 32MHz CPU Takt > - 64MHz Peripherietakt (Speicher etc.) Der RAM läuft auf 64MHz gescheit? Habe dazu (noch) keine Info im Datenblatt finden können. Wie kann
-
Thread
Frage zur Reichweite eines Funksystems
verschiedenen Verstärkungen und Dämpfungen (die ja von ihrer Natur her eigentlich Multiplikationen und Divisionen sind) durch die Logarithmierung einfach addieren kannst. Natürlich kannst du zu einem Absolutwert nur relative Werte addieren, um am Ende wieder einen Absolutwert zu haben. Oder du subtrahierst
-
Thread
ADC auslesen geht nicht richtig!
1024/ (wie es korrekt im Kommentar steht)? Zumal Du dem Programm damit keinen Gefallen tust. Eine Division durch 1023 ist /signifikant/ aufwändiger als eine durch 1024 (abgesehen davon, dass 1024 in diesem Fall der einzig richtige Divisor ist)!
-
Thread
Problem: Nullpunktverschiebung bei ADC-Weret
Zahlen und mach erst für die Ausgabe einen Volt-Wert daraus. Dann aber nicht einfach durch eine Division, sondern mach die Ausgabe z.B. in 100stel Volt oder in mV und füge an der richtigen Stelle ein Komma ein.
eben *nicht* gerundet. Erinnere Dich mal zurück an die Schule. Da ist normalerweise das erste an Division, was man lernt, die ganzzahlige Division mit Rest. Und genau das macht eine Integer-Division in diesem Fall auch. Es ist keine Rundung, sondern ein "Abschneiden" des Nachkommateils. > Theoretisch
-
Thread
Stromflussanalyse in PHP - wer kriegt das hin?
genügen. > Die Probleme, die aufgetreten sind waren immer eine > der drei Möglichkeiten Division durch Null bzw. > falsche/unlösbare Gleichungen, Endlosschleifen bei > der Bildung der Gleichungen oder einfach komplett > falsche Ergebnisse. Ich mache irgendwo Fehler bei den > Gleichungssystemen
Beitrag #6937529: > Die Probleme, die aufgetreten sind waren immer eine der drei > Möglichkeiten Division durch Null bzw. falsche/unlösbare Gleichungen, > Endlosschleifen bei der Bildung der Gleichungen oder einfach komplett > falsche Ergebnisse. Ich mache irgendwo Fehler bei den Gleichungssystemen
-
Thread
Problem mit Joystick an AVR
mit 16Bit treten aber massig Rundungsfehler auf, vorallem an Stellen in der Berechung, an denen Division durchgeführt wird. Zudem muss man bei einer Multiplikation darauf achten, dass die 16it nicht überschritten werden, man kann eben nicht einfach zwei 16Bit Zahlen miteinander multiplizieren.
Tobi: Du bekommst genau an einer Stelle den Rundungsfehler - eben bei der Division. Wie ich oben geschrieben und per Tabelle nachgerechnet habe, wirkt der sich erst in der ersten Nachkommastelle des Poti-Wertes aus - also nicht, weil man das Poti sowieso nur "ungenauer" einstellen
-
Thread
Divisionen optimieren
optimieren von divisionen
einen festen Wert und da soll man schon vorher überlegen was schneller ist - z.B. eine binäre Division mit 8 dauert in Software länger als eine Division mit 1024 - von 32 oder 64 gar nicht zu reden...
-
Thread
Lohnt sich der Einstieg in die MSP430 Welt?
Operationen zu verwenden. Selbstverständlich habe ich auch irgendwann einmal Produkt- und Divisionsrechnungen programmiert, da einige MSP430 damals keine Mathemodul besaßen. So, wenn Du wirklich etwas vollständig lernen willst, fange ganz klein an. Später, wenn Du das Prinzip verstanden hast, kannst
-
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
Was darf man von einer PCB-Antenne erwarten?
Gefährliches Halbwissen. Ist dir schon mal aufgefallen, dass all diese Satelliten im CDM (code division multiplex) auf der gleichen Frequenz senden? Von wegen da stört ja niemand... P.S. Ausserdem gibt es illegale Störsender für diese Frequenz im Handel, damit z.B. der Kapitän der Landstrasse nach
-
Thread
ungenaue Festkommadarstellung
Ich moechte zB eine Aufloesung der Konstanten von vielleicht 1/1000 haben, also 4 Stellen. Die division (62623/279) ergibt 260.297. So waehle ich meine Konstante als 1041, mit implizit div 4. Das ergibt dann bei 1040-> 279.31, resp 1041->279.05 Grad, Etwa 0.3 Grad bei 300Grad. Der Benutzer gibt seine
Weil früher generell und heute auch noch je nach Mikrocontroller Multiplikation und insbesondere Division sehr langsame Operationen waren. Shiften war sehr viel schneller aber halt nur mit Zweierpotenzen möglich. Heutzutage sind Mikrocontroller allgemein viel schneller und Multiplikation meistens genau
-
Thread
16 Bit Timer
= (((double)a_time1/16000.0-0.5)/0.04+0.6); >a_y = (((double)a_time2/16000.0-0.5)/0.04); 4 Divisionen und 3 Subtraktionen/Additionen. Schon mal simuliert? MFg Falk
selbst wenn ich eine einzige Dummy Division mache, merkt man das schon deutlich an der Framerate... das kann doch nicht normal sein oder?
-
Thread
printf-Alternative für AVR
unsigned-Variante dauern länger als 320 Ticks (incl. CALL + RET). Wem das langsam erscheint: Eine einzige Division durch 10 im o.g. Code kostet /mindestens/ 215 Ticks. Über die bis zu 5 Ziffern summiert sind das zu schlappen 1000 Ticks aufwärts. Ausgabe- und Konvertierroutinen müssen zwar nicht schnell sein,
-
Thread
AVR-GCC seit 2007 verschlechtert (Speicherbedarf)
Wegen deiner Division. Schau mal in den Code, ob du tatsächlich unsigned Variablen benutzt hast. Bei signed Variablen ist Schieben (bzw wie in diesem Fall ein Byte weglassen) eben nicht identisch zur Division und für den gcc daher ein Grund, eine Division einzusetzen.
-
Thread
ATmega8: sprintf & float liefert nur "?"
100 Grad genau berechnen. Additionen und Subtraktionen laufen wie gewohnt. Bei Multiplikationen/Divisionen muss man den Skalierfaktor einmal rausrechnen und bei der Ausgabe/Eingabe wird der Kommapunkt an die entsprechende Stelle eingeschmuggelt. Das ist die Kurzfassung von Fixed Point Arithmetik :-)
10 ist kein so guter Skalierfaktor. Eine 2-er Potenz wäre besser, dann sind Disivion bzw. Modulo-Division trivial :-)
-
Thread
Zahlenformat 100000L?
gearbeitet wird. Diesmal passt dann die 40000 ohne weiteres in einen "unsigned long", und nach Division durch 2 erhält man am Ende wie erwartet 20000 als Wert für a. Dass das Ergebnis am Ende einem "int" zugewiesen wird spielt hier keine Rolle, es werden immer nur jeweils die beiden Operanden der
-
Thread
UART Datenstrom mit Array vergleichen
Das %7 berechnet aus einem Wert dessen Divisionsrest beim Teilen durch 7. D.h. der Wert in den Bereich 0 bis 6 verschoben und der Index bleibt dadurch immer im Feld; anstatt hinten rauszulaufen fängt man wieder vorne an.
-
Thread
Bandbreite digitaler Übertragungskanäle
Nutzer verwendet werden. Der Name des Übertragungsverfahrens ist auch hier Programm. CDMA Code Division Multiple Access. Jeder Teilnehmer bekommt einen Spreizcode zugeordnet, mit dem das Spektrum des Sendesignals über die gesamte Kanalbandbreite gespreizt wird. Der Empfänger sieht also ein gemisch