Autor Tema: generar delay de 1 segundo en c18  (Leído 9038 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado black_flowers

  • PIC18
  • ****
  • Mensajes: 450
generar delay de 1 segundo en c18
« en: 04 de Agosto de 2007, 09:48:49 »
hola, a to2, ¿cómo se genera un dalay de 1 segundo en C18? Utilizando alguna funcion de delay.h mejor.

Un saludo.

Desconectado micro_cadaver

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2102
    • blog microembebidos
Re: generar delay de 1 segundo en c18
« Respuesta #1 en: 04 de Agosto de 2007, 14:14:37 »
para 4MHZ:
Delay10KTCYx(100); //dura 1 seg

porque?
  4    *(10k) * 100 =
4MHz

    4      *(10 000) * 100 =
4*10^6

10 000 * 100 = 1 seg
10^6
a cosechar!!!... :P
pic32... ahi voy....
aguante el micro 16f84  !!!!

visita mi pagina: http://www.microembebidos.wordpress.com

Desconectado vszener

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 2395
Re: generar delay de 1 segundo en c18
« Respuesta #2 en: 04 de Agosto de 2007, 16:36:09 »
Tienes que tener en cuenta tu CLK.

Microchip tiene un apartado de librerias de sus compiladores, donde puedes ver las funciones que tienen y cómo usarlas.


Suerte!!! ;)
· Nos vemos en los bares!!!!!
· Mi Blog: Aqueronte

Desconectado black_flowers

  • PIC18
  • ****
  • Mensajes: 450
Re: generar delay de 1 segundo en c18
« Respuesta #3 en: 05 de Agosto de 2007, 07:52:39 »
ok, gracias , entonces para 12mhz: Delay10KTCYx(300);

un saludo.

Desconectado black_flowers

  • PIC18
  • ****
  • Mensajes: 450
Re: generar delay de 1 segundo en c18
« Respuesta #4 en: 05 de Agosto de 2007, 08:47:16 »
de todas formas sigue sin funcionarme, el programa es para un simple parpadeo del porta de un segundo. El codigo es este. El resultado es que el o los led se queda encendidos todo el rato sin parpadear. A lo mejor es un fallo del programa o a lo mejor un fallo en la configuración del winpic. Si es de lo segundo ya lo resolveré más adelante pero en principio...

veis algún fallo en el programa??:

#include <p18f2455.h>
#include "delays.h"
#pragma config WDT = OFF

void main(void)
{TRISA=0x00;
while (1)
{PORTA=0xff;
Delay100TCYx (300);
PORTA=0x00;
Delay100TCYx (300);}
}


Un saludo.

Desconectado micro_cadaver

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2102
    • blog microembebidos
Re: generar delay de 1 segundo en c18
« Respuesta #5 en: 05 de Agosto de 2007, 12:30:44 »
4/12*1000000 * 10 000 * 300 = 1
Delay10KTCYx (300); esto da

4/12*1000000 * 100 * 300 = 1/100
Delay100TCYx (300); esto da

y no olvides setear los bits del porta como digitales  :mrgreen:
ADCON=0; ADCON1=0xFF;

saludos black! :-/
a cosechar!!!... :P
pic32... ahi voy....
aguante el micro 16f84  !!!!

visita mi pagina: http://www.microembebidos.wordpress.com

Desconectado vszener

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 2395
Re: generar delay de 1 segundo en c18
« Respuesta #6 en: 05 de Agosto de 2007, 12:46:28 »
Mirate bien el data sheet del micro, a ver como están por defecto los pines del puertoA.


Suerte!!! ;)
· Nos vemos en los bares!!!!!
· Mi Blog: Aqueronte

Desconectado black_flowers

  • PIC18
  • ****
  • Mensajes: 450
Re: generar delay de 1 segundo en c18
« Respuesta #7 en: 05 de Agosto de 2007, 19:46:25 »
4/12*1000000 * 10 000 * 300 = 1
Delay10KTCYx (300); esto da

4/12*1000000 * 100 * 300 = 1/100
Delay100TCYx (300); esto da

y no olvides setear los bits del porta como digitales  :mrgreen:
ADCON=0; ADCON1=0xFF;

saludos black! :-/


ooops!

Desconectado black_flowers

  • PIC18
  • ****
  • Mensajes: 450
Re: generar delay de 1 segundo en c18
« Respuesta #8 en: 11 de Agosto de 2007, 11:02:34 »
bueno, sigue sin funcionarme. Pongo otra vez el código a ver si alguien ve el gazapo (si es que lo hay). Lo q

Desconectado black_flowers

  • PIC18
  • ****
  • Mensajes: 450
Re: generar delay de 1 segundo en c18
« Respuesta #9 en: 11 de Agosto de 2007, 11:06:20 »
pues sigue sin funcionar.  A ver si alguien ve el gazapo (si es que lo hay, ya que tambien puede ser culpa de algo de la configuracion del winpic).

el codigo es este.

#include <p18f2455.h>
#include "delays.h"
#pragma config WDT = OFF

void main(void)
{ADCON1=0x0f;
TRISA=0x00;
while (1)
{PORTA=0xff;
Delay10TCYx (300);
PORTA=0x00;
Delay10TCYx (300);}
}

lo que debería hacer es hacer parpadear el puerto A cada segundo,

lo que hace es encender el puerto A y dejarlo encendido.

Tambien he probado a sólo encender el puertoA o sólo apagar el puerto A para comprobar si el programa funciona y el resultado es que sí que funciona, es decir el código se ejecuta y el puerto A y la configuracion del puerto A están bien). Solo se me ocurre que haya algun error que no veo en el while, o algo relacionado con la rutina delay o con la configuracion del winpic.

Un saludo.

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: generar delay de 1 segundo en c18
« Respuesta #10 en: 11 de Agosto de 2007, 12:27:05 »
Aquí has olvidado la letra "K"
Delay10TCYx (300);

A ver si es que no te da tiempo a ver el parpadeo porque va muy rápido.

Desconectado micro_cadaver

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2102
    • blog microembebidos
Re: generar delay de 1 segundo en c18
« Respuesta #11 en: 11 de Agosto de 2007, 13:05:51 »
siempre usa el mplabSIM para que veas que esta haciendo el codigo en cuestiones de retardos.
a cosechar!!!... :P
pic32... ahi voy....
aguante el micro 16f84  !!!!

visita mi pagina: http://www.microembebidos.wordpress.com

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: generar delay de 1 segundo en c18
« Respuesta #12 en: 14 de Agosto de 2007, 10:14:43 »
Aquí has olvidado la letra "K"
Delay10TCYx (300);

A ver si es que no te da tiempo a ver el parpadeo porque va muy rápido.

Además que tal vez se haya olvidado del K, el problema es el argumento, solo se acepta un byte, es decir un valor de 0 a 255.

- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado micro_cadaver

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2102
    • blog microembebidos
Re: generar delay de 1 segundo en c18
« Respuesta #13 en: 14 de Agosto de 2007, 23:43:21 »
vaaaaa que boludo que soy!
a cosechar!!!... :P
pic32... ahi voy....
aguante el micro 16f84  !!!!

visita mi pagina: http://www.microembebidos.wordpress.com

Desconectado black_flowers

  • PIC18
  • ****
  • Mensajes: 450
Re: generar delay de 1 segundo en c18
« Respuesta #14 en: 17 de Agosto de 2007, 17:43:35 »
yo sí que soy boludo, !gracias amigos!