TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: Luis_Chogi en 29 de Noviembre de 2006, 23:01:57
-
Hola que tal foro...
Estoy intentando hacer unas practicas con el pic16F88, ya lo simule en proteus y todo ok, el problema con proteus es que no exije mucho para hacer funcionar un pic, por ejemplo si no se conecta cristal aunque lo requiera, este funciona........ Bueno mi problema es con un programa muy facil, de hecho me imagino que tiene que ver con la palabre de cofiguracion (Fuses) o algo asi y bueno espero alguien me pueda hacer una mano o me indique como debo de conetar mi circuito para que funcione.
Ahhh.,... se me olvidaba mencionar que estoy usando el oscilador interno.
Aqui mi codigo:
#include <16f88.h> //pic a utilizar
#fuses EC_IO,NOWDT,NOPROTECT,PUT,NOLVP,INTRC_IO //Fusibles
#use delay (clock=4000000) //Fosc=4Mhz
#use standard_io(A)
void main(void)
{
set_tris_a(0b11111101); //PORTA1=Salida
output_a(0x00);
for (;;) { output_low(PIN_A1); // led off
delay_ms(200);
output_high(PIN_A1); //led on
delay_ms(200);
}
Saludos a todos.
-
Pues puede no funcionar por que pones EC_IO y INTRC_IO al mismo tiempo.
si dices utilizar oscilador interno prueba poniendo solo INTRC_IO.
aparte te falta configurarlo con setup_oscillator();
Esto de configurar el oscilador interno ya se ha tratado en el foro, no recuerdo donde, incluso para el pic que mencionas.
Prueba utilizando el buscador y si aun hay dudas, pues pregunta con toda confianza.
Saludos. :D
-
Que tal rulo:
Gracias por la ayuda pero resulta que sigue igual......
lo que no eh probado es eso del setup_oscillator(); voy a ver mas o menos de que se trata y pues veo que puedo hacer.... Ya busque pero creo que anda mal el for pues no me da ni un resultado :?
Alguna otra observacion?..... :-)
-
Pues si, acabo de ver en otro post que por el momento no sirve el buscador.
y bueno tambien te falta cerrar una llave de la funcion principal "Main"
fijate en el archivo 16f88.h donde tienes las opciones de configuracion
#define OSC_31KHZ 0
#define OSC_125KHZ 0x10
#define OSC_250KHZ 0x20
#define OSC_500KHZ 0x30
#define OSC_1MHZ 0x40
#define OSC_2MHZ 0x50
#define OSC_4MHZ 0x60
#define OSC_8MHZ 0x70
// The following may be OR'ed in with the above using |
#define OSC_TIMER1 1
#define OSC_INTRC 2
#define OSC_NORMAL 0
// A second optional parameter may be used with this part to fine
// tune the speed (signed int,0-63)
// Result may be (ignore all other bits)
#define OSC_STATE_STABLE 4
#define OSC_STATE_EXT_RUNNING 8
pues no le veo otra cosa, esperemos a ver quien mas opina.
Saludos :-)
-
El buscador ya esta funcionando.
Saludos.
-
Otra cosa el MCLRE esta habilitado, asegurate de poner una resistencia como de 1K entre el pin de reset y Vcc, si deceas no hacerlo puedes agregar en los fuses "NOMCLR".
Suerte
-
Gracias BrunoF, simpre tan oportuno solucionando los problemas que se presentan en el foro :-/
-
Si ya vi la libreria del pic y pues todo quedo bien pero al momento de probar medio titila el led, el codigo quedo asi.
#include <16f88.h> //pic a utilizar
#fuses NOWDT,MCLR,NOPROTECT,PUT,NOLVP,INTRC_IO //ordenes para el programador
#use delay (clock=4000000) //Fosc=4Mhz
#use fast_io(A)
void main(void)
{
setup_oscillator(OSC_4MHZ);
set_tris_a(0b11111101); //porta1 salida
output_a(0x00);
for (;;) { output_low(PIN_A1); // led off
delay_ms(200);
output_high(PIN_A1);
delay_ms(200);
}
}
La llave no salio en el otro post porque no la copie bien y pues la R a la para del MCRL si la tengo conectada pero como les digo.... medio funciono el programa pues medio titila mientras en mi primero intento prendia muy ocacionalmente. :(
Saludos
-
¿Qué significa 'medio titila '? :shock: No tengo claro si ya te funciona o no...
Suerte!!! ;)
-
VSZENER te explico.... Titilar es como parpadear jejejejeje, pero solo lo hace en forma alocada pues de repente prende y de repente no...... No lo hace como deberia.
-
Jeje suponia que era tema del parpadeo jeje :mrgreen: , ¿eso te pasa en proteus o en la vida real? Si es en Proteus, incrementa el tiempo del delay.
Suerte!!! ;)
-
Hola de nuevo VSZENER.... El problema es en la vida real pues en proteus esta muy bien y bueno un delay de 200 ms se tendria que distinguir muy bien en la vida real y en la simulacion, el problema insisto que radica en no poder configurar bien el oscilador interno...
Saludos-