Aumentar la resolución PWM

#1
Hola a todos, tengo que aumentar la resolucion de un pwm el cual trabaja de 0 a 50%, desperdiciando el otro 50% que podria usar para aumentar la resolucion, utilizo el adc a 10 bits. Aca dejo el codigo:

if(input(PIN_A7))
{
delay_ms(100);
// (input(PIN_A7))
// delay_ms(20);
count++;
if(count==512)//
count=511;//

}
if(input(PIN_A6))
{
//delay_ms(20);
//while(input(PIN_A6))
delay_ms(100);
count--;
if(count<1)
count=1;
}

x=count;
set_pwm1_duty(x); //cargo el valor 0-1024 al PWM

ct=(x)*10/102.4;
lcd_gotoxy(1,2);
printf(LCD_PUTC"Val=%01.1f",ct);

Gracias por su ayuda.
 
#3
No entiendo mucho, y si estoy diciendo una burrada, perdón, pero un conversor AD significa analógico/digital, y un PWM es una disposición para obtener una salida analógica en función a una entrada digital (varía el ancho del pulso en función de x). El PWM no está limitado por la cantidad de bits. El conversor AD sí.
Podrías subir un esquema de lo que querés hacer?
 

Dr. Zoidberg

Well-known-Papá Pitufo
#4
El PWM no está limitado por la cantidad de bits
No Black, si lo está, por que digitalmente es un contador de N bits que se precarga a un valor X y desde ahí cuenta hasta cero...y queda en cero hasta el próximo pulso de precarga.

Cuanto mas alto el valor X, mas tiempo está en alto la señal. Como el PWM tiene 10 bits de resolución, tenés entonces 1024 valores de ancho de pulso posibles...y por supuesto, el reloj que excita al contador debe tener una frecuencia 1024 más alta que la frecuencia del PWM...

Saludos!
 
#5
Gracias a todos.
1jabato1, con eso aumento el porcentaje del pwm, yo no necesito que llegue al 100%, con el 50 estoy sobrado. Quiero que con esos 1024 llegue maximo hasta el 50%, por lo tanto con 1024 pasos estare al 50% y no como ahora con 512. Me explico?
 

Dr. Zoidberg

Well-known-Papá Pitufo
#6
Leíste lo que puse arriba sobre como opera un modulador digital de PWM????
Y como harías vos para cambiar el módulo de conteo para que de 1024 valores pase a 2048...que es eso lo que pretendés hacer....
Si solo querés la mitad del maximo ancho posible - el 50% - pues entonces tenés 512 cuentas disponibles. Si querés usar 1024, vas a tener que hacer uan regla de 3...pero eso es lo mismo que decir:
1024 equivale a 512
1000 equivale a 500...y así...con lo cual no aumentás ninguna resolución...

Creo que vas a tener que estudiar un poco....
 

Dr. Zoidberg

Well-known-Papá Pitufo
#9
Última edición:
Arriba