-
-
ADC -> PWM
Hallo,
Folgendes Problem:
Ich will einen vom ADC eingelesenen Wert direkt als PWM Signal wieder ausgeben. Wenn ich Timer1 mit 10bit nehme geht das wunderbar, aber ich brauche 3 Kanäle und Timer2 hat leider nur 8bit. Den ADC kann man wohl auch nicht auf 8bit runtersetzen?!?
Wie kann ich also einen 10bit Wert sinnvoll als 8bit PWM ausgeben. Nach meinem Verstand einfach durch 4 Teilen, aber das scheint Bascom nicht zu mögen.
bytezahl = wordzahl / 4
Paul
-
Erfahrener Benutzer
Roboter Experte
Vielleicht ist eine Typkonvertierung oder so notwendig? In C geht das so:
uint8_t wert8bit = (uint8_t)(wert10bit>>2);
bzw.
uint8_t wert8bit = (uint8_t)(wert10bit/4);
Die Typkonvertierung sollte aber eigentlich automatisch geschehen...
-
hm, wenn man es einfach als word lässt geht es lol
trotzdem danke
-
Erfahrener Benutzer
Roboter Experte
dann schreibt er einfach nur die 8 niedrigsten Bits in das Register - da du aber ja schon geteilt hast, macht das nix, die oberen 8 Bit sind dann eh 0...
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen