Colapsar columna

Menu Usuario -

Hola, Visitante
avatar


Mas Activos -

nocturno
Mensajes: 2011
Meta
Mensajes: 276
djfreeman
Mensajes: 272
spiderman
Mensajes: 257
HJ.0x00
Mensajes: 224

Autor Tema: Ayuda para Crear intervalos de una hora con un pic 16f628a  (Leído 1655 veces)

Desconectado osmelfb5

  • Amigo MicroPIC
  • **
  • Mensajes: 19
Buenas a todos resulta que estoy tratando de crear un proyecto en cual me permita cada una hora mantener en uno logico  en un pin determinado y luego apagar en una hora, este procedimiento debe mantenerse en un periodo repetitivo , no soy un gran experto, pero e visto que tambien es usa un delay ms en ccs pero en fin si existiera algun procedimiento un poco + eficiente.

Desconectado nocturno

  • Administrator
  • MicroPIC Gurú
  • *****
  • Mensajes: 2011
    • MicroPIC
Re:Ayuda para Crear intervalos de una hora con un pic 16f628a
« Respuesta #1 en: Abril 07, 2021, 07:16 »
Hola Osmel, si sólo quieres hacer eso con delay_ms es lo más sencillo. ¿A qué te refieres como más eficiente?, ¿a que haya menor consumo eléctrico?, si es así podrías usar el modo Sleep y despertarlo con la interrupción del Timer, contando el número de interrupciones necesarias para llegar a la hora que buscas.
Un saludo desde Sevilla, España

Desconectado osmelfb5

  • Amigo MicroPIC
  • **
  • Mensajes: 19
Re:Ayuda para Crear intervalos de una hora con un pic 16f628a
« Respuesta #2 en: Abril 07, 2021, 13:43 »
buenos dias admin me referi a la la palabra eficiente por el uso del codigo a la programación como e visto algunos ejemplo de relojes pense para el tiempo de una hora no era eficiente el uso del dilay lo otro como podria yo simplificar la unidad de medida en tiempo para delay por que creo que se me hace un poco engorroso la concersion de ms a hora.

Desconectado nocturno

  • Administrator
  • MicroPIC Gurú
  • *****
  • Mensajes: 2011
    • MicroPIC
Re:Ayuda para Crear intervalos de una hora con un pic 16f628a
« Respuesta #3 en: Abril 07, 2021, 16:36 »
Pon tu código y miramos de hacerlo más eficiente como dices, pero sin verlo es difícil opinar.
Un saludo desde Sevilla, España

Desconectado osmelfb5

  • Amigo MicroPIC
  • **
  • Mensajes: 19
Re:Ayuda para Crear intervalos de una hora con un pic 16f628a
« Respuesta #4 en: Abril 08, 2021, 01:02 »
Buenas Tardes Nocturno aqui mi codigo Fuente:
#INCLUDE <16f887.h>
#USE DELAY(CLOCK=4000000)
#FUSES XT,NOPROTECT,NOWDT,NOBROWNOUT,PUT,NOLVP
#DEFINE LED PORTB,0
#BYTE PORTB= 6

MAIN()
{
   SET_TRIS_B(0B11111110);    //Configura el puerto B
   WHILE(TRUE)                // Haga por siempre
   {
      BIT_SET(LED);           // Active el led
      DELAY_MS(500);          // Retardo de 0.5 segundo
      BIT_CLEAR(LED);         // Apagar el led
      DELAY_MS(500);          // Retardo de 0.5 segundo
   }
}

Me gustaria saber si este codigo puede ser micrado a otrs pic como el 16f73 o pic16f873

Desconectado nocturno

  • Administrator
  • MicroPIC Gurú
  • *****
  • Mensajes: 2011
    • MicroPIC
Re:Ayuda para Crear intervalos de una hora con un pic 16f628a
« Respuesta #5 en: Abril 08, 2021, 09:03 »
Pero con ese código no consigues un parpadeo cada hora, sino cada segundo. Para hacerlo cada hora tendrías que meter esto en cada parpadeo, por ejemplo:
Código: [Seleccionar]
for (i=0; i<3600; i++ ) delay_ms(1000);
Un saludo desde Sevilla, España

Desconectado osmelfb5

  • Amigo MicroPIC
  • **
  • Mensajes: 19
Re:Ayuda para Crear intervalos de una hora con un pic 16f628a
« Respuesta #6 en: Abril 09, 2021, 01:49 »
buenas noches Nocturno muchas gracias por recomendarme el codigo hice lo que me recomendo al parecer me falta por declarar algun parametro ya que el compilador no me compila el codigo recuerde que soy apenas unamprendis en la materia.

Desconectado nocturno

  • Administrator
  • MicroPIC Gurú
  • *****
  • Mensajes: 2011
    • MicroPIC
Re:Ayuda para Crear intervalos de una hora con un pic 16f628a
« Respuesta #7 en: Abril 09, 2021, 19:35 »
Sí, claro, tienes que declarar la variable i antes de usarla.

Añade
Código: [Seleccionar]
    int16 i;
en la línea siguiente al SET_TRIS_B
Un saludo desde Sevilla, España

Desconectado osmelfb5

  • Amigo MicroPIC
  • **
  • Mensajes: 19
Re:Ayuda para Crear intervalos de una hora con un pic 16f628a
« Respuesta #8 en: Abril 10, 2021, 04:20 »
Buenas noches Amigo Nocturno logre compilar el codigo sin problemas pero no logro que el led en este caso se apague despues de la hora el codigo me quedo de esta forma;
#INCLUDE <16f887.h>
#USE DELAY(CLOCK=4000000)
#FUSES XT,NOPROTECT,NOWDT,NOBROWNOUT,PUT,NOLVP
#DEFINE LED PORTB,0
#BYTE PORTB= 6

MAIN()
{
   SET_TRIS_E(0B11111110);    //Configura el puerto B
   WHILE(TRUE)                // Haga por siempre
   {
   int16 i;
   for (i=0; i<3600; i++ )
      BIT_SET(LED);           // Active el led
      delay_ms(1000);          // Retardo de 0.5 segundo
      BIT_CLEAR(LED);         // Apagar el led
      delay_ms(1000);          // Retardo de 0.5 segundo
   }
}
me gustaria que me explicaras   for (i=0; i<3600; i++ ) en gran parte entiendo el uso de la sentencia for vendria significando que el valor de i = 0 si i es mayor   que 3600 incrementa el valor de i verdad disculpa que te pregunte tanto en estos momentos estoy estudiando el manual de fundamentos C para pic.

Desconectado nocturno

  • Administrator
  • MicroPIC Gurú
  • *****
  • Mensajes: 2011
    • MicroPIC
Re:Ayuda para Crear intervalos de una hora con un pic 16f628a
« Respuesta #9 en: Abril 10, 2021, 18:09 »
Para que se apague a la hora tendrías que hacerlo así:
Código: [Seleccionar]
#INCLUDE <16f887.h>
#USE DELAY(CLOCK=4000000)
#FUSES XT,NOPROTECT,NOWDT,NOBROWNOUT,PUT,NOLVP
#DEFINE LED PORTB,0
#BYTE PORTB= 6

MAIN()
{
   SET_TRIS_E(0B11111110);    //Configura el puerto B
   WHILE(TRUE)                // Haga por siempre
   {
   int16 i;
   for (i=0; i<3600; i++ )
      delay_ms(1000);
   BIT_SET(LED);           // Active el led
   for (i=0; i<3600; i++ )
      delay_ms(1000);
   BIT_CLEAR(LED);         // Apagar el led
   }
}
Un saludo desde Sevilla, España

Desconectado osmelfb5

  • Amigo MicroPIC
  • **
  • Mensajes: 19
Re:Ayuda para Crear intervalos de una hora con un pic 16f628a
« Respuesta #10 en: Abril 11, 2021, 04:20 »
Buenas noches Nocturno e intentado de varias maneras con lo que me recomendaste y solo e logrado que dicho led encienda por unos pocos seguntos y luego se apague y más nunca vuelve a encender haste que se reset o se vuelva a conectar al parecer no queda de otra que intentar con el timer0

Desconectado nocturno

  • Administrator
  • MicroPIC Gurú
  • *****
  • Mensajes: 2011
    • MicroPIC
Re:Ayuda para Crear intervalos de una hora con un pic 16f628a
« Respuesta #11 en: Abril 11, 2021, 07:11 »
No entiendo por qué no funciona. Confírmame si esto parpadea cada 5 segundos, por favor.
Código: [Seleccionar]
#INCLUDE <16f887.h>
#USE DELAY(CLOCK=4000000)
#FUSES XT,NOPROTECT,NOWDT,NOBROWNOUT,PUT,NOLVP
#DEFINE LED PORTB,0
#BYTE PORTB= 6

MAIN()
{
   int16 i;
   SET_TRIS_E(0B11111110);    //Configura el puerto B
   WHILE(TRUE)                // Haga por siempre
   {
   for (i=0; i<5; i++ )
      delay_ms(1000);
   BIT_SET(LED);           // Active el led
   for (i=0; i<5; i++ )
      delay_ms(1000);
   BIT_CLEAR(LED);         // Apagar el led
   }
}
Un saludo desde Sevilla, España

Desconectado osmelfb5

  • Amigo MicroPIC
  • **
  • Mensajes: 19
Re:Ayuda para Crear intervalos de una hora con un pic 16f628a
« Respuesta #12 en: Abril 11, 2021, 22:38 »
Buenas tardes amigo Nocturno solo logro que se quede prendido el led infinitamente, no se que estaria faltando.

Desconectado osmelfb5

  • Amigo MicroPIC
  • **
  • Mensajes: 19
Re:Ayuda para Crear intervalos de una hora con un pic 16f628a
« Respuesta #13 en: Abril 12, 2021, 00:20 »
hola amigo Nocturno compile el ultimo codigo que pulicas y se demora 5 segundos ahora que debo hacer para que me dure una hora.

Desconectado nocturno

  • Administrator
  • MicroPIC Gurú
  • *****
  • Mensajes: 2011
    • MicroPIC
Re:Ayuda para Crear intervalos de una hora con un pic 16f628a
« Respuesta #14 en: Abril 12, 2021, 07:07 »
Pues si el parpadeo es de 5 segundos, para cambiarlo por una hora únicamente habría que modificar el 5 que está en los dos bucles FOR por un 3600.
Pero así es como lo teníamos antes y me dijiste que no funcionaba.
Un saludo desde Sevilla, España


 

login