Autor Tema: generar pulso sin el modulo ccp  (Leído 1166 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado eloysn

  • PIC10
  • *
  • Mensajes: 16
generar pulso sin el modulo ccp
« en: 03 de Abril de 2012, 08:02:47 »
hola,a ver si me pueden ayudar tengo el sigiente codigo:



#include <16f876.h>
#fuses XT,NOWDT,NOPROTECT,NOLVP
#USE DELAY (CLOCK=4000000)
#INCLUDE <kbd.c>
#USE STANDARD_IO (a)

VOID MAIN()
{
   CHAR k,kant='0';     //k valor de teclado, k valor anterior de teclado
   char PWMH=0,PWML=0;  //Semiperiodo alto y bajo
   kbd_init();
   PORT_B_PULLUPS(TRUE);

WHILE (1) {                    //Bucle infinito (siempre consulta el teclado)
      k=kbd_getc();            //Lee en ASCII el valor de la tecla pulsada
      if (k=='\0') k=kant;     //Si no se pulsa tecla (\0) se usa el valor anterior
      if ((k=='*') || (k=='#')) k='0';  //Si se pulsa * o # se asigna un valor cero.
      kant=k;                          //Se guarda tecla pulsada
       k=k-48;                         //Se convierte de ASCII a valor numérico
       PWMH=k*28;                     //Proporción entre valor tecla y semiperiodo Alto.
       PWML=255-PWMH;                 //Semiperiodo Bajo
      for(PWMH;PWMH>0;PWMH--){        //Obtención de la salida a nivel alto
       OUTPUT_HIGH(PIN_A0);}
      for(PWML;PWML>0;PWML--){      //Obtención de la salida a nivel bajo
      OUTPUT_LOW(PIN_A0);}
  }
}



Lo que hace es generar un pulso en funcion de la tecla que se pulsa en un teclado ,pero lo que no logro entender es como
funciona el bucle for en este caso concreto.