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.