Saludos.
En este momento estoy aprendiendo a programar PIC en lenguaje C y me surge una novedad:
Cuando hago la programación en PIC C y luego hago la simulación en proteus, todo sale bien pero resulta que cuando hago el montaje en el protoboard, el PIC no espera las instrucciones y parte a ejecutar todas las acciones una por una ignorando las entradas.
Cabe acotar que me pasé por los do-while, if-else, while, modifiqué las configuraciones de entradas y salidas de varias maneras y el resultado fue el mismo.
Espero puedan ayudarme.
Adjunto uno de los programas que estoy montando para aprender este mundo de la automatización.
La idea es activar diferentes secuencias según el pulsador.
En este caso el PIC ejecuta una por una sin esperar alguna instrucción.
Agradecido por la ayuda que puedan suministrarme.
En este momento estoy aprendiendo a programar PIC en lenguaje C y me surge una novedad:
Cuando hago la programación en PIC C y luego hago la simulación en proteus, todo sale bien pero resulta que cuando hago el montaje en el protoboard, el PIC no espera las instrucciones y parte a ejecutar todas las acciones una por una ignorando las entradas.
Cabe acotar que me pasé por los do-while, if-else, while, modifiqué las configuraciones de entradas y salidas de varias maneras y el resultado fue el mismo.
Espero puedan ayudarme.
Adjunto uno de los programas que estoy montando para aprender este mundo de la automatización.
PHP:
#include <16f877a.h>
#fuses xt, nowdt
#use delay(clock=4000000)
#define p1 Pin_b0
#define p2 pin_b1
#define p3 pin_b2
#define blanco pin_d7
#define rojo pin_d6
#define amarillo pin_d5
#define verde pin_d4
void main()
{
set_tris_b(0xff);
set_tris_d(0x00);
output_d(0x00);
output_b(0x00);
while (true)
{
if(input(p1)==1)
{
output_high(blanco);
delay_ms(2000);
output_low(blanco);
}
if(input(p2)==1)
{
output_high(rojo);
delay_ms(2000);
output_low(rojo);
}
if(input(p3)==1)
{
output_high(blanco);
delay_ms(700);
output_low(blanco);
output_high(rojo);
delay_ms(700);
output_low(rojo);
output_high(amarillo);
delay_ms(700);
output_low(amarillo);
output_high(verde);
delay_ms(700);
output_low(verde);
}
}
}
En este caso el PIC ejecuta una por una sin esperar alguna instrucción.
Agradecido por la ayuda que puedan suministrarme.
Última edición por un moderador: