PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : ADC -> PWM



zwanzischmark
15.12.2007, 16:43
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

dennisstrehl
15.12.2007, 17:00
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...

zwanzischmark
15.12.2007, 17:43
hm, wenn man es einfach als word lässt geht es lol

trotzdem danke

stefan_Z
15.12.2007, 18:00
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...