Problema al compilar en Pic C

Hola estoy teniendo un problema al compilar un ejemplo del libro:

Compilador C Ccs Y Simulador Proteus Para Microcontroladores Pic

Libro.JPG


el error que me sale es el siguiente :

Warning 207: code has no effect


Este es el codigo:

Código:
#include <16f876A.h>
#FUSES XT, NOWDT, NOPUT, NOPROTECT, NOLVP
#USE delay(clock=4000000)
#USE fast_IO (B)
#USE fast_IO (A)
#define use_portb_kbd TRUE
#include <kbd.c>


//funcion principal---------------------------------------------------
void main()
{
//configuracion de puertos--------------------------------------------
SET_TRIS_B(0xFF); // Configuramos como entrada todo el puerto B,   FF = 255 en decimal = 1111 1111 en binario
SET_TRIS_A(0x01); // Configuramos como salidas todo el puerto A

//variables-----------------------------------------------------------
char k,kant='\0'; // k valor teclado, kant valor anterior del teclado
char pwmh=0,pwml=0; // semiperiodo alto y bajo

//inicializa----------------------------------------------------------
kbd_init(); // Inicializa teclado
port_b_pullups(true);


while(true) // Bucle infinito
{
k=kbd_getc(); // Pide tecla en ACSII

if (k == '0')
k = kant;

if ((k == '*') || (k == '#'))
k = '0';

kant=k;
k=k-48; // Convierte de ASCII a Decimal
pwmh=k*28;
pwml=255-pwmh;

//pwm-------------------------------------------------------------------

for (pwmh;pwmh>0;pwmh--){
output_high(pin_a0);}

for (pwml;pwml>0;pwml--){
output_low(pin_a0);}
}
}

adjunto una imagen del PICC y el problema,

al parecer el problema esta en donde declaro los ciclo FOR, desconozco la razón.

Ojala alguien sepa como arreglar esto.

Gracias
 

Adjuntos

  • Captura.JPG
    Captura.JPG
    78.5 KB · Visitas: 12
Última edición:
...
el error que me sale es el siguiente :

Warning 207: code has no effect
"Warning" no significa "Error", significa "Advertencia"

Te advierte que hay una línea con código al p*do.

En este caso, escribís en dos partes for(pwmh;pwmh>0;pwmh--) y en lugar de hacer una inicialización de variables escribís pwmh, que no hace nada.
El compilador simplemente te advierte que eso está sobrando.

Lo correcto hubiera sido for( ; pwmh>0 ; pwmh--)
 
"Warning" no significa "Error", significa "Advertencia"

Te advierte que hay una línea con código al p*do.

En este caso, escribís en dos partes for(pwmh;pwmh>0;pwmh--) y en lugar de hacer una inicialización de variables escribís pwmh, que no hace nada.
El compilador simplemente te advierte que eso está sobrando.

Lo correcto hubiera sido for( ; pwmh>0 ; pwmh--)


Muchas gracias, problema resuelto!!



No me esta funcionando el codigo en proteus....

a que crees que se deba?

este es el diagrama

proteus.JPG


me di cuenta que configure mal el puerto A
y lo cambie a salidas asi--> SET_TRIS_A(0x00); // Configuramos como salidas todo el puerto A

ya que lo tenia asi SET_TRIS_A(0x01); // Configuramos como salidas todo el puerto A

y aun asi no funciona como debería, el motor se activa solo al momento de iniciar la simulacion..

proteus2.JPG


se queda funcionando con un tren de pulsos constante

la forma en que deberia funcionar es con el teclado, la tecla '1' velocidad baja , continua subiendo la velocidad mientras aumenta la tecla hasta el '9' que es la velocidad mas alta de 252 bits
 
Última edición:
Atrás
Arriba