Hola todos, porfavor si me puede ayudar les agradezco, estoy tratando mediante un potencimetro realizar el control de velocidad de un motor, me funciona pero no con la maxima resolucion del PWM. es decir solo un rango del poteciometro, que tendre mal en codigo?
Gracias
#include <p18f452.h>
#include <delays.h>
#include <adc.h>
#include <stdio.h>
#include <stdlib.h>
#include <pwm.h>
long ciclo;
int y;
int z;
/*DESHABILITACION DE WDT, LVP*/
#pragma romdata CONFIG
_CONFIG_DECL(_CONFIG1H_DEFAULT & _OSC_HS_1H,\
_CONFIG2L_DEFAULT,\
_CONFIG2H_DEFAULT & _WDT_OFF_2H,\
_CONFIG3H_DEFAULT,\
_CONFIG4L_DEFAULT & _LVP_OFF_4L,\
_CONFIG5L_DEFAULT,\
_CONFIG5H_DEFAULT,\
_CONFIG6L_DEFAULT,\
_CONFIG6H_DEFAULT,\
_CONFIG7L_DEFAULT,\
_CONFIG7H_DEFAULT);
void main (void)
{
OpenADC( ADC_FOSC_16 & ADC_RIGHT_JUST & ADC_8_TAD & ADC_8ANA_0REF,ADC_CH0 & ADC_INT_OFF );
Delay10TCYx( 5 ); // Delay for 50TCY
ConvertADC(); // Start conversion
while( BusyADC() ); // Wait for completion
y = ReadADC(); // Read result
CloseADC(); // Disable A/D converter
TRISD= 0b11100000;
OpenPWM1(0xff);
PORTDbits.RD2=1;
PORTDbits.RD1=1;
z=y*1.246;
SetDCPWM1(z);
//Delay10TCYx( 50 );
//PORTDbits.RD3 == 3;
//Delay10TCYx( 50);
//PORTDbits.RD4 == 4;
//Delay10TCYx( 50 );
}