Hallo, Wie kann man Prozentrechnung mit einem atmega 8515 "machen"? könnt Ihr helfen?
mit den angaben aus deiner frage kann wohl niemand was anfangen. geht es um asm/c/basic und was ist genau dein problem!?
Also, ich habe gelogen. Man kann in .asm auch Prozentrechnen. Z.B.: 1% + 1% = 2% Das geht. Und: 34% - 30% = 4% geht auch.
@unbekannt Hier bekommt man einfach keine vernünftigen antworten. @all Die "maschine" soll Werte Auswerten und ausgeben. Ich habe einen Fader der steht z.B auf dem Wert 80 und einen Weiteren Fader ( masterfader) der steht z.B auf 125 ausgegeben soll dann der wert 40. Wie rechne ich das?
Wenn Du uns sagst, warum bei dem Bsp. "40" ausgegeben werden soll, dann dürfte die Antwort zu deiner Frage nicht mehr weit sein ;-) Dennis
Welchen Zusammenhang haben die 80, die 125 und die 40? 80 sind 64% von 125. Was soll die 40 da bedeuten?
Ich gehe mal davon aus, dass du einen 8-bit AD/Wandler hast und den Fader in Abhängigkeit des Mastere errechnen willst. Das wäre dann Faderwert * Masterwert >> 8. Oder hab ich's doch nicht verstanden? MW
> Ich habe einen Fader der steht z.B auf dem Wert 80 und einen > Weiteren Fader ( masterfader) der steht z.B auf 125 ausgegeben > soll dann der wert 40. Wie rechne ich das? Na, das ist doch einfach: wert = masterfader - fader - 5 Also für Dein Beispiel: wert = 125 - 80 - 5 = 40 Da braucht's nicht mal Prozentrechnung. > Hier bekommt man einfach keine vernünftigen antworten. Doch, bekommt man! Jede Frage bekommt genau die Antwort, die sie verdient!
> Hier bekommt man einfach keine vernünftigen antworten. Wer vernünftige Fragen stellt, bekommt auch vernünftige Antworten. Deine Frage ist ungefähr so präzise, wie "was muß ich tun, wenn ich beim Autofahren an einem Schild vorbeikomme?" Also, bevor du dich über die Antworten aufregst, lern bitte erstmal, Fragen so zu stellen, daß man was damit anfangen kann. > Die "maschine" soll Werte Auswerten und ausgeben. > Ich habe einen Fader der steht z.B auf dem Wert 80 und einen > Weiteren Fader ( masterfader) der steht z.B auf 125 ausgegeben > soll dann der wert 40. Und warum soll dieser Wert rauskommen?
Also bitte, das ist ja mal wirklich das kleine 1 mal 1. Wenn ich einen Wertebereich von 0-255 auf 0-100 runterechnen will, dann teilt man den Wert einfach durch 2,55. Wenn man die Verwendung von fliesskommazahlen scheut, weil man gerade in Asm unterwegs ist, erweitert man beide Seiten mal 100 (bsp: 25500/255=100). Dadurch ist man natürlich dann gezwungen, 16bit Rechnungen zu verwenden. Der kleine Hobbyprogrammierer von nebenan sollte das aber locker hinbekommen.
Also 80 sind 40% von 200. Unter der Annahme, dass ein Fader einen Wertebereich von 0...200 hat würde das Sinn machen. Was das alles mit dem Masterfader zu tun hat... Tja da wäre etwas mehr Info hilfreich. Beschreib doch mal genau was du vorhast, sofern du es den weisst. Es wäre z.B. interessant zu wissen, wie du die Werte der Fader überhaupt in den µC bekommst und was dann hinten wieder rauskommen soll. Wenn du etwas genauer wirst, bekommst du evtl. sogar von "Unbekannter" ne sinnvolle Antwort
@Rahul:
> Und wie macht man das in ASM?
Na, das ist noch einfacher:
ld a, (hl) # Fader
ld b, a
inc hl
ld a, (hl) # Masterfader
sub a, b
sub a, 5
Wir schmeissen HEX-Darstellung und dezimale Darstellung durcheinander. Wer rechnen kann ist klar im Vorteil: 40h = 64d 80h = *128*d Wie gross ist dein Maximalwert? Der ist vermutlich nicht konstant. Dann wird es schwer...
Ich versteh immernoch nicht wirklich welcher Zusammenhang da besteht. Vor allem mit der 125. Schreib halt mal ganze Erklärungen, und nicht immer nur Satzfragmente. Im Interpretieren von Texten war ich noch nie gut, und ich denke, das geht der Mehrheit hier so. @Unbekannter Bist du sicher, dass es so geht? Ich glaub nämlich nicht... Aber einfach ist es allemal.
@Sebastian: Bisher ist die Beschreibung des Problems von "René" immernoch so uneindeutig, das derzeit keine vernüftiger Lösungsweg vorgeschlagen werden kann. Deshalb schliesse ich mich diesem Lösungsweg von "unbekannter" einfach mal an.
Der wertebereich sollte von 0-255 dezimal gehen. wertebereich fader1 auch von 0-255 fader 1 = z.B Dez 40 Master 50% (128 im wertebereich 0-255) es sollte herrauskommen 20 Fader 1 = Dez 255 master 100% ergebniss 255 usw.
hast du dir mal die Multiplikations- und Divisions-Application Notes auf atmel.com angeguckt? Bernhard Schulz hat die auch in der Codesammlung zu "papier" gebracht. Allerdings für 32Bit.
Nun, dann hab ich dir den Weg doch gezeigt. Ersetze das ">>8" durch eine Division durch 255. Ist etwas genauer, aber langsamer. Musst halt sehen, ob du die Genauigkeit brauchst. Aber, Assembler lernen musst du schon selber. MW
Lösungsvorschlag: Fader-Wert mit 100 Multiplizieren und dann solange den Masterfader-Wert davon abziehen, bis <=0. Sieht vermutlich fast genauso aus, wie die Lösung des Unbekannten...
Ich würde mal sagen die Lösung scheint trivial, allerdings stellt sich mir die Frage was Rene für ein Problem hat. Das wird wieder ein ewiglangen Thread bis sich der Ersteller entschließt sein Problem zu definieren! Viel Spaß noch dabei.....
Hallo, es geht darum einen RGB Dimmer zu steuern Fader 1 = Rot Fader 2 = Grun Fader 3 = Blau Gerät funktioniert ganz gut soweit. jetzt soll der master hinzukommen und ich suche nach ansätzen wie man das am besten macht. Es kamen immer wieder Vorschläge von Leuten wir sollten noch einen weiteren Fader zur verfügung stellen der sozusagen als master fungiert um z.B. eine Eigestellte RGB Farbe in der Helligkeit verändern zu können ohne alle Drei fader bewegen zu müssen sonderen mit einem Fader dem "Masterfader". Ich hoffe das leuchtet ein. Bitte jetzt nicht mit das kannst Du dir doch kaufen bla bla..
Ist doch simpel: Annahme: Fader hat einen Wertebereich von 0 bis 255 Master hat einen Wertebereich von 0 bis 255 dann ist der zu setzende Wert Wert = Fader * Master / 255; Prozentrechnung halt, nur entspricht ein Wert von 255 den 100%. Wo liegt das Problem? Schreib dir oder besorg dir eine 16 Bit Arithmetik und los gehts.
Aha. Also mit den neuen Information würde ich folgenden Algorithmus vorschlagen: a.) Den Fader und den Master in Prozent umrechnen. Beispiel: Fader 20 = 7,843% Master 128 = 50,196% b.) Die Prozentwerte in Binäre-Brüche umwandeln. Beispiel: 7,843% = 0b111,110101... 50,196% = 0b11010,001... c.) Die beiden Binärebrüche miteinander multiplizieren. d.) Das Ergebnis mit 0b0,00000110100001... multiplizieren. Fertig! Das war schon alles! Das alles natürlich mit mindestens 32 Bit Genauigkeit rechnen, sonst gibt's Fehler!
70% aller erwachsenen Deutschen können mit Prozentrechnung rechnen, die anderen 40% nicht.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.