Hallo, wie kann ich einen 8-Bit Wert in 7-Bit umwandeln bzw. runterrechnen in Assembler. Der Wert kommt vom Analogeingang der ATmega8. Oder kann ich den A/D-Wandler direkt auf 7-Bit einstellen???
einfach einmal right-shift machen :) das geht in assembler ganz einfach
Das shiften ist am schnellsten. Man könnte aber auch durch 2 teilen.
Danke für die Antworten, hab jetzt die Bits um eine Position verschoben und bekomme auch einen Maximalwert von 127. Nur leider wird, bis das Poti zu 90% aufgedreht ist, nur ein Wert von 0 gesendet und die letzten 10% bewirken eine Änderung.
Das hört sich verdächtig nach einem logarithmischen Poti an, oder war die Änderung vor der Programmänderung linear, am besten mal mit einem Multimeter den Widerstand messen und gleichmäßig drehen, dann sieht man sofort on das Poti linear oder logarithmisch ist
Hi >Nur leider wird, bis das Poti zu 90% aufgedreht ist, nur ein Wert von 0 >gesendet und die letzten 10% bewirken eine Änderung. Das Ergebnis des AD-Wandlers besteht aus 2 Werten ADCL und ADCH. Wenn du nur 7 Bit brauchst solltes du erstmal das ADLAR-Bit in ADMUX setzen. Damit wird das Ergebnis linksbündig (die oberen 8 Bit in ADCH) ausgegeben. Wenn du dann ADCH ausliest und 'shr' machst bekommst du dein Ergebnis. MfG Spess
> Das hört sich verdächtig nach einem logarithmischen Poti an, oder war > die Änderung vor der Programmänderung linear, am besten mal mit einem > Multimeter den Widerstand messen und gleichmäßig drehen, dann sieht man > sofort on das Poti linear oder logarithmisch ist Die Änderung war schon vor der Programmänderung nicht linear. Hab jetzt mit einem Multimeter gemessen und bekomme gleichmäßige Werte beim Drehen.
HI
>ich wäre für lsr statt shr...
Stimmt, war gedanklich in der falschen Programmiersprache.
MfG Spess
Hab den Fehler gefunden, hatte die Bits für Port C am Anfang des Programms noch auf Ausgang gesetzt. Da hängt das Poti dran :-) Vielen Dank!
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.