SoloCodigo

Programación Específica => Microcontroladores => Programación en C => Mensaje iniciado por: infrarrojo en Jueves 12 de Octubre de 2006, 17:08

Título: Modificar Programa Para Led
Publicado por: infrarrojo en Jueves 12 de Octubre de 2006, 17:08
Hola a todos;
Tengo hecho un programa en C para q un diodo led se encienda,se apague o parpadee según el valor de un potenciómetro. Ahora quiero q el encendido sea regular, es decir, q a valor cero del potenciómetro siga apagado pero q si vamos variándolo el led se vaya encendiendo progresivamente. Aquí os dejo el primero, si me podéis echar una mano os lo agradecería. Gracias.


static byte myValues[1];  /* Number of channels */

void main(void) {
    byte min = 255/3;
    byte max = (255*2)/3;
    byte err;
    bool s;
    int i;

    for(;;) {
        /* run measurement with set wait for result */
        err = AD1_Measure(TRUE);

        /* Get results */
        err = AD1_GetValue((byte *)myValues);

        /* Compare value and action LED */
        if (myValues[0] > max) {
            s = 1;            /* set LED ON */
        } else {
            if (myValues[0] < min) {
                s = 0;        /* set LED OFF */
            } else {
                s = s^1;      /* invert LED ON <-> OFF */
            }
        }
        for (i = 0; i < 5000; i++); /* delay */
        Bit1_PutVal(s);
    }
}
Título: Re: Modificar Programa Para Led
Publicado por: Huguen_aus_Tirol en Jueves 12 de Octubre de 2006, 18:46
Hola!
Si tu PIC tiene PWM, simplemente cargas el PWM con el resultado de la conversión AD. Conectas el LED a la salida del modulo PWM, y listo...
Saludos