Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

21/02/2012 #1


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



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
21/02/2012 #2

Avatar de Eduardo

cocolizop dijo: Ver Mensaje
...
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--)
21/02/2012 #3


Eduardo dijo: Ver Mensaje
"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!!

---------- Actualizado después de 21 minutos ----------

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

a que crees que se deba?

este es el diagrama



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..



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
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.