Hemos vuelto !!
Con novedades... por ejemplo texto más enriquecido para escribir (podéis ocultar para invitados), si pasas el ratón por encima de los títulos saldrá una previsualización del primer post y último, debajo de los hilos tienes hilos sugeridos, puedes cancelar y eliminar tu usuario y mensajes desde el panel de usuario y más que tendremos.
ImagenImagenImagen

Problemas con delay_ms() en CSS

Postea aqui toda la parte de programación del lenguaje C

Moderadores: Moderadores, Junta Directiva

Avatar de Usuario
jcobreros
Novato
Novato
Mensajes: 11
Registrado: Vie Abr 18, 2008 7:18 pm

Problemas con delay_ms() en CSS

Mensajepor jcobreros » Sab May 10, 2008 11:38 pm

Estoy teniendo problemillas al programar una Skypic (16f876A) con ccs.
Al hacer delay_ms(100) el pic hace el delay correctamente, pero si hago delay_ms(variable) se los inventa. La variable ahora mismo es Float, pero con Int pasa lo mismo. Alguien tiene el mismo problema?
Muchas gracias de antemano

joviwap
Usuario Avanzado
Usuario Avanzado
Mensajes: 299
Registrado: Dom Sep 11, 2005 9:33 pm
Nombre: José Vicente Sogorb
Ubicación: Alicante
Contactar:

Re: Problemas con delay_ms() en CSS

Mensajepor joviwap » Sab May 10, 2008 11:58 pm

Pues la verdad es creo que no debería darte error, pero sino siempre puedes probar usando esta función:

void delay_milis(int n) {
for (;n!=0; n- -)

delay_us( 1000 );
}

UCfort
Moderador
Moderador
Mensajes: 759
Registrado: Lun Ago 22, 2005 6:30 pm
Nombre: Vicente Torres Torres
Ubicación: Ibiza
Contactar:

Re: Problemas con delay_ms() en CSS

Mensajepor UCfort » Lun May 12, 2008 1:02 am

Yo de ti haria lo que dice joviwap. ten en cuenta que el delay_ms, no cuenta el tiempo, lo que hace realmente es que el compilador crea un codigo que segun la velocidad de reloj que le hayas dicho que vas a usar, se dedica ha hacer bucles perdiendo el tiempo, pero ese codigo, mas los nop's necesarios mas los bucles anidados y tal y tal, se crea al compilar, por eso, supongo la ayuda del CCS pone ese ejemplo para delays variables.

Avatar de Usuario
Heli
Usuario Experto
Usuario Experto
Mensajes: 731
Registrado: Mar May 23, 2006 7:47 am
Nombre: Heli Tejedor
Ubicación: Alcala de Henares
Contactar:

Re: Problemas con delay_ms() en CSS

Mensajepor Heli » Lun May 12, 2008 6:44 am

A la función delay_ms (time) hay que pasarle como parámetro un int16, no puedes pasarle un float y no puedes hacer delays de fracciones de ms. Para eso has de usar delay_us (time). Quizás ese es el error. El compilador no da warning (extraño) pero no creo que funcione bien. Mejor convertir el float a int16 con un casting:
delay_ms ((int16)time)
¡No es imposible, lo que pasa es que no sabes como hacerlo!
http://heli.xbot.es/

Bastian
Usuario Avanzado
Usuario Avanzado
Mensajes: 384
Registrado: Mié Feb 13, 2008 9:29 pm
Nombre: David Carmona
Ubicación: Utiel
Contactar:

Re: Problemas con delay_ms() en CSS

Mensajepor Bastian » Lun May 12, 2008 8:07 am

Hola!
A mi me pasó lo mismo hace tiempo, pero no recuerdo como lo solucioné (si es que lo solucioné)... de todas formas lo de Joviwap debe de funcionar, ademas el codigo te ocupará menos :wink:

Salu2!
Existen 10 tipos de personas...
los que saben binario y los que no.

El conocimiento es un arma poderosa... Aprende!!!


Mi blog: Robotica Lúdica Pingubot

Avatar de Usuario
jcobreros
Novato
Novato
Mensajes: 11
Registrado: Vie Abr 18, 2008 7:18 pm

Re: Problemas con delay_ms() en CSS

Mensajepor jcobreros » Lun May 12, 2008 3:29 pm

Muchas gracias por las respuestas! he probado la funcion que ha dicho joviwap y funciona genial. supongo que tengo que jugar con la precision que quiero que tenga, y tener encuenta que tardará algo más por hacer los bucles, pero vaya, qur funciona.
Gracias

Avatar de Usuario
Mif
Usuario Desarrollador
Usuario Desarrollador
Mensajes: 1094
Registrado: Jue Mar 23, 2006 6:24 pm
Nombre: Ángel
Ubicación: Madrid
Contactar:

Re: Problemas con delay_ms() en CSS

Mensajepor Mif » Mar May 13, 2008 12:12 am

jcobreros, el problema (que yo también lo tuve) es que delay_XX() sólo acepta constantes. Podrías intentar colársela con un redireccionamiento a un registro o algo así... quiza un puntero... pero no sé si se tragará eso.

8wck9
Mensajes: 1
Registrado: Jue Ene 10, 2013 2:27 am
Nombre: jose

Re: Problemas con delay_ms() en CSS

Mensajepor 8wck9 » Jue Ene 10, 2013 2:48 am

Hola amigo como lo resolviste? es que tengo exactamente el mismo problema que tù,no me genera el delay con una variable ya intente hacer lo de joviwap pero no me funciono este es mi còdigo modificado, no se que hice mal

Código: Seleccionar todo

void delay_milis(int16 n)
{
   for (;n!=0; n--)

delay_us( 1000 );
}


void SALIDA(int Frec, int num)
   { 
      PERI = (1/(Frec/2))*1000;
      bit_set(PORTC,num);
      delay_milis(PERI);
      bit_clear(PORTC,num);
      delay_milis(PERI);
   }


Lo que pretendo que haga mi programa es encender dos led con distintas frecuencias en los pines C5 Y C6 del puerto C.

Las variable "Frec" es una variable en la cual se ingresa una frecuencia X,
"PERI" Es la variable que calula el periodo de la frecuencia ingresada anteriormente, la multiplica por 1000 para eliminar los decimales y quedarme con la parte entera, misma que es ingresada a la funcion delay_ms(PERI) y num es bit del Puerto C que se uso , osea C5 Y C6

Codigo original:

Código: Seleccionar todo

void SALIDA(int Frec, int num)
   { 
      PERI = (1/(Frec/2))*1000;
      bit_set(PORTC,num);
      delay_ms(PERI);
      bit_clear(PORTC,num);
      delay_ms(PERI);
   }



gracias y disculpas por escribir tanto, saludos


Volver a “Lenguaje C”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado