Autor Tema: Pausas con compilador PICCLITE de HI-TECH  (Leído 3095 veces)

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

Desconectado dekike

  • PIC10
  • *
  • Mensajes: 20
Pausas con compilador PICCLITE de HI-TECH
« en: 11 de Marzo de 2007, 17:30:02 »
Hola a todos. Despues de hecharle ojo a ejemplos y ejemplos, aun no he podido implementar correctamente las pausas en PICCLITE usando el Pic16f84a.

Si alguno es tan amable de colaborarme con lo siguiente le estare agradecido:

Necesito un ejemplo basico comentado de parpadeo de led, con las rutinas de pausa explicadas. Estoy utilizando DelayMs(x) pero al comprobar tiempos con un cronometro con coinciden.

Mejor dicho, necesito ejemplos basicos con este compilador para el pic16f84a y pic16f877, con 4Mz y otros cristales.

Si siguen las dificultades, tendre que probar el CCS.


Gracias por ayuda.   

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: Pausas con compilador PICCLITE de HI-TECH
« Respuesta #1 en: 11 de Marzo de 2007, 20:09:08 »
Todas las rutinas Delaymsg(x) que conozco necesitan se les indique "de alguna forma" que cristal es el que se va a usar.

En el caso del CCS, esto se indica al principio del programa.

Es altísimamente probable que debas hacer lo mismo con el de Hitech.
- 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 PalitroqueZ

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5474
    • Electrónica Didacta
Re: Pausas con compilador PICCLITE de HI-TECH
« Respuesta #2 en: 12 de Marzo de 2007, 12:47:14 »
te comento dekike , que los retardos que usa el CCS mediante delay_xs() no siempre dan el tiempo exacto.

asumo que el compilador usará el timer para generar esos retardo.

si quieres precisión en tiempo en lenguaje C lo mejor es que montes un código en ensamblador usando por el ejemplo el software picdelay y lo llames en una función:

Código: C
  1. void retardo_n(){
  2. #asm
  3. pega y ajusta el codigo generado por picdelay
  4. #endasm
  5. }

no sin antes haber declarado las variables. Ojo esto sería en CCS, tienes que buscar como sería la directiva en Hitech

Salu2
Pedro
La propiedad privada es la mayor garantía de libertad.
Friedrich August von Hayek

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: Pausas con compilador PICCLITE de HI-TECH
« Respuesta #3 en: 12 de Marzo de 2007, 16:06:15 »
te comento dekike , que los retardos que usa el CCS mediante delay_xs() no siempre dan el tiempo exacto.

Pero en general uno cuando usa estas rutinas no es buscando la precisión del centésimo sino esperar un tiempo determinado entre tarea y tarea, para mostrar como destella un led o cosa similar.

asumo que el compilador usará el timer para generar esos retardo.

Opino que esto no es así.  Todos los compiladores que conozco de hecho realizan un delay con un bucle de instrucciones. Dejan los timers libres para el usuario

- 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 PalitroqueZ

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5474
    • Electrónica Didacta
Re: Pausas con compilador PICCLITE de HI-TECH
« Respuesta #4 en: 13 de Marzo de 2007, 11:07:12 »
...
asumo que el compilador usará el timer para generar esos retardo.

Opino que esto no es así.  Todos los compiladores que conozco de hecho realizan un delay con un bucle de instrucciones. Dejan los timers libres para el usuario


Tienes razón Mauricio, ya lo comprobé viendo el listado en ensamblador, los retardos del compilador son puros ciclos de instrucciones.

tal vez mi duda se veia reflejada, porque tienen el mismo comportamiento de los retardos usando los timers (en estos, la precisión depende del cristal y de las ecuaciones)

Salu2
Pedro
La propiedad privada es la mayor garantía de libertad.
Friedrich August von Hayek

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: Pausas con compilador PICCLITE de HI-TECH
« Respuesta #5 en: 13 de Marzo de 2007, 19:49:44 »
tal vez mi duda se veia reflejada, porque tienen el mismo comportamiento de los retardos usando los timers (en estos, la precisión depende del cristal y de las ecuaciones)

Y sí, salvo que uses una base de tiempo externa y que encima entre en sincronismo con las instrucciones del pic, sería muy difícil que hagas una base de tiempo que no dependa de la velocidad de procesamiento de tu pic si usas tu pic (valga la redundancia).   :) :)
- 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 vszener

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 2395
Re: Pausas con compilador PICCLITE de HI-TECH
« Respuesta #6 en: 15 de Marzo de 2007, 13:24:15 »
Como te han dicho, comprueba que en tú programa declaras la frecuencia.


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

Desconectado eclipse

  • PIC10
  • *
  • Mensajes: 8
Re: Pausas con compilador PICCLITE de HI-TECH
« Respuesta #7 en: 20 de Marzo de 2007, 12:29:58 »
Hola a todos,

tan solo decir que yo sí he usado esas rutinas de retardo con el compilador de HiTech  y funcionan de maravilla.
Como han dicho por ahí, no hay que olvidarse de definir la velocidad del oscilador.
En tu caso, si es de 4MHz como has dicho, tendrías que escribir la siguiente línea de código en el fichero "delay.h":

#define PIC_CLK 4000000

espero que esto sirva de ayuda.

Saludos a todos,

Eclipse.


 

anything