Buenas noches, estoy utilizando el PIC16F887.
Si quiero modificar el brillo de un LED conectándolo a una salida del PWM se configura el valor de la función PWM1_Set_Duty(); pero ¿Como le puedo hacer para hacerlo con dos valores en el duty cada cierto tiempo? con comunicación serial PC-PIC.
El código anterior es lo del brillo del LED controlado por el duty que se ponga, como seria la implementación en el código para utilizar la función UART1_Data_Ready() y UART1_Read() que tras recibir dos números por ejemplo el 30 y después el 90, se configure el PWM a ese porcentaje ingresado y después de 2 o 3 segundos cambie al siguiente. ...
Si quiero modificar el brillo de un LED conectándolo a una salida del PWM se configura el valor de la función PWM1_Set_Duty(); pero ¿Como le puedo hacer para hacerlo con dos valores en el duty cada cierto tiempo? con comunicación serial PC-PIC.
Código:
#
define LED1 PORTC.F2 //Definimos a C2 como LED1
unsigned char DUTY = 128; //Definimos el porcentaje de ciclo DUTY (255=100%/3=1%)
void main()
{
ANSEL = 0; //Configura los pines AN como INPUT/OUTPUT digital
ANSELH = 0; //Configura los pines AN altos como INPUT/OUTPUT digital
C1ON_bit = 0; //Bit Comparador 1 ON/OFF
C2ON_bit = 0; //Bit Comparator 2 ON/OFF
Trisc.f2=0; //Se declara C2 como salida digital
PWM1_Init(500);//Inicializa el modulo PWM a una frecuencia de 500 Hertz
PWM1_Set_Duty(DUTY);//Se establece un ciclo DUTY (ciclo de trabajo) igual al valor de la variable DUTY
PWM1_Stop();//Detiene el PWM
while(1)//Inicio del ciclo infinito
{
PWM1_Start();// Inicializa el PWM
while(1);//Pausa el programa
}
}
El código anterior es lo del brillo del LED controlado por el duty que se ponga, como seria la implementación en el código para utilizar la función UART1_Data_Ready() y UART1_Read() que tras recibir dos números por ejemplo el 30 y después el 90, se configure el PWM a ese porcentaje ingresado y después de 2 o 3 segundos cambie al siguiente. ...