Autor Tema: una duda con delay_ms y cristal de 4mhz  (Leído 1335 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado EDJMM9

  • PIC10
  • *
  • Mensajes: 8
una duda con delay_ms y cristal de 4mhz
« en: 26 de Febrero de 2014, 19:37:37 »
saludos a todos ,  tengo una duda , si aplico DELAY_MS (180000);  deberia ser 3minutos.  solo que simulo en proteus y no dura exactamente 3 minutos  dura un poco mas de 1 minuto no se cual es el problema  tengo que cambiar la frecuencia del cristal ? .. este es mi codigo para que entiendan mejor

#include <16f84a.h>
#use delay (clock=4M)
#byte TRISB=0x86 //.............................//
#byte PORTB=0x06 //.............................//
#byte TRISA=0x85 //.............................//
#byte PORTA=0x05 //.............................//


void main (){

set_tris_a(0b111111);  // como entrada todo el puerto A //
set_tris_b(0b0000000); // como salida todo el puerto B //

output_b (0b00001000); // pin b3 comienza apagado



while (true){

IF(PORTA==0B00010){   //  si se pulsa "
DELAY_MS(30);  // retardo
OUTPUT_B(0B10000100); // enciende el  "led"  en b2
DELAY_MS (180000);       // espera 180000 ms  (3 minutos) !  <...........  el error esta aqui  no dura exactamente 3minutos como quiero
output_b (0b00001000);  // luego se apaga                                         
}                                                                                                     
}                                                                                                   

}


Desconectado rivale

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1707
Re: una duda con delay_ms y cristal de 4mhz
« Respuesta #1 en: 26 de Febrero de 2014, 19:55:12 »
la función delay_ms solo acepta enteros de 16 bits, es decir, el máximo valor que puedes cargar es 65535 y tu le estas cargando 180,000. puedes hacer retardos mas pequeños y anidarlos para que sumen los 3 minutos
"Nada es imposible, no si puedes imaginarlo"


 

anything