Hi ich hab folgendes Problem ich bekomme ja bei meinem ADC Werte von 0...255 , bei 0 will ich eine Schleife 100 mal durchlaufen lassen . . . bei 127, 150 mal und . . . bei 255, 200 mal hat jemand eine Idee wie ich für alle Schritte eine Art Formel oder so bekomme ich steh nämlich gerade aufm Schlauch alles einzeln eingeben wäre die doofste Lösung ! :-) Danke
:
Gesperrt durch User
Hallo, möchtest du dann hier Werte abfragen oder einfach eine Maschinenzyklenzeit von 100 etc. durchlaufen lassen ?
Wenn du das nicht im Kopf hinbekommst, tip die drei Wertepaare in Excel ein, laß dir eine xy-Diagramm zeichnen und füge eine Trendlinie hinzu mit Option "Gleichung im Diagramm darstellen"
Eigentlich dachte ich daran sowas wie ne Soft-PWM daraus zu machen denn 100 Schleifendurchgänge sind 1ms (Servo-Ansteuerung) 150 Durchgänge sind 1,5 ms 200 dann 2ms
Alexander Schmidt schrieb: > Schleifendurchläufe = 100 + 100 * ADC / 255 JAAA das is doch mal was :-))) Kannst mir das noch erklären wie du darauf gekommen bist ? weil ich mich gerade auch sehr dumm fühle ! :-) Danke
DhscR schrieb: > eine Art Formel oder so ((AdcValue * 100) / 255) + 100 Mathematisch musst du AdcValue durch 2,55 teilen, damit wird es aber auf dem AVR problematisch, da der nicht gerade ein Rechengenie ist. Mit obiger Formel kannst alles mit Integer rechnen, sofern du mit den Rundungsfehlern leben kannst. Noch einfacher wird es mit ((AdcValue * 100) / 256) + 100. Dann kannst du dir das dividieren ersparen indem du ((AdcValue * 100) >> 8) + 100 rechnest. Wie schon gesagt, wenn du mit den Rundungsfehlern leben kannst. Es wird eben immer abgerundet, bzw. abgeschnitten. mfg.
DhscR schrieb: > Eigentlich dachte ich daran sowas wie ne Soft-PWM daraus zu machen > denn 100 Schleifendurchgänge sind 1ms (Servo-Ansteuerung) Das macht man doch nicht mit Schleifen Modellbauservo Ansteuerung
Thomas Eckmann schrieb: > Noch einfacher wird es mit ((AdcValue * 100) / 256) + 100. Wenig erstaunlich ist allerdings, dass die weniger aufwendige Methode (Division durch 256 statt der falschen 255) auch mathematisch korrekter ist...
Ja weiß ich aber ich hab nur nen Attiny 13 und der hat nur nen 8 bit TC. Deswegen versuch ich ne bessere Auflösung so zu bekommen .
Ok hab es mit delay Versucht nur nimmt er mir Jetzt kein DDRB an und die Ports lassen sich nicht mehr ansteuern ? (wenn ich bei AVR-Studio Simuliere)
DhscR schrieb: > Ok hab es mit delay Versucht nur nimmt er mir Jetzt kein DDRB an und die > Ports lassen sich nicht mehr ansteuern ? > > (wenn ich bei AVR-Studio Simuliere) delays kannst du im AVR-Studio vergessen. So ein delay auf zb 1 Millisekunde bedeutet, dass der µC ein paar Hundertausend mal in einer Schleife Däumchen drehen muss. Da simuliert sich der Simulator zu Tode. (Es geht schon, nur dauert die Simulation der Warteschleife entsprechend lange). Brenne es in den Tiny, häng dein Servo an, sorg für eine stabile Versorgungsspannung und die _delay_us, wie im Link angegeben, wird funktionieren (wenn deine Taktfrequenz stimmt) Wenn dein Servo dann korrekt reagiert, fängst du an den ADC einzubauen. Aber bitte nicht wieder mit so einer goto Orgie wie in deinem anderen Link. Beitrag "Servo dreht nur nach Links"