Hola, soy yo otra vez. Sigo con el tema de la programación-simulación en C. Resulta que hoy estoy intentando hacer parpadear LEDs en ciertas secuencias, aunque he acabado haciendo un contador... Me ocurre lo mismo. Hace un par de días hice un programa que hacía parpadear todos los LED del puerto B con delay, y funcionó perfectamente (aunque en la mitad de tiempo del que debería). Sin embargo, y ya me ha ocurrido en otras ocasiones, en éste programa al simularlo se "vuelven locos", es decir, con un delay y frecuencia del reloj declarados correctamente, funciona tan rápido que no se ve. ¿Alguien podría decirme si es un problema de simulación o de programación? Muchas gracias, os dejo el código:
Código:
#include <16f84a.h>
#use delay(clock=4000)
#byte port_b=0x06
#byte port_a=0x05
#byte TRISB=getenv("SFR:TRISB")
#byte TRISA=getenv("SFR:TRISA")
#fuses NOWDT
void main(){
TRISB=0;
port_b=0;
while(true){
port_b=port_b+1;
delay_ms(1500);
if(port_b==0xff){
port_b=0;
}
}
}
Última edición por un moderador: