Autor Tema: Tensión de salida del convertidor A/D del 16f873  (Leído 5109 veces)

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

Desconectado rferrero

  • PIC16
  • ***
  • Mensajes: 113
Tensión de salida del convertidor A/D del 16f873
« en: 03 de Abril de 2004, 12:02:00 »


   Hola a todos. Llevo un tiempo intentando que el convertidor A/D del 16f873 me muestre en unos leds (a modo de codificación) el valor de la tensión de salida de dicho convertidor, pero no hay manera. El dispositivo conectado es un gp2d12 (que da salida analógica), pero no consigo hacer que funcione de ninguna de las maneras.

     Usando sentencias en C, se pone dato=read_adc(); y ya está?? Cómo se comprueba que termina de adquirir el dato?? No se pone nada?? No se testea el bit adif??  Dato debe ser entero o float??

    Socorro!!!!!!!!!!!!! cualquier ayuda será bien recibida y agradecida de antemano. Un saludo.

Desconectado pocher

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 2569
RE: Tensión de salida del convertidor A/D del 16f873
« Respuesta #1 en: 04 de Abril de 2004, 13:24:00 »
El gp2d12 no lo conozco,¿como funciona?

Mostrar el resultado de la conversión en LEDs y que se enciendan más o menos LEDs dependiendo de un potenciómetro (por ejemplo) conectado a su entrada analógica, es fácil.

Si quieres pega en programa y lo revisamos.

Un saludo

Desconectado rferrero

  • PIC16
  • ***
  • Mensajes: 113
RE: Tensión de salida del convertidor A/D del 16f873
« Respuesta #2 en: 05 de Abril de 2004, 09:33:00 »
   

    Ya funciona!! El gp2d12 es un sensor de infrarrojos, muy útil para robots, como es mi caso. El asunto es que me gustaría sacar el resultado por una pequeña pantalla lcd, pero no consigo que funcione!!! En C, con el CCS-PCW. EL comando setup_lcd no me lo reconoce y la rutina de ejemplo es bastante liosa. Me podrías echar un cable??  

   Gracias. Un saludo.

Desconectado pocher

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 2569
RE: Tensión de salida del convertidor A/D del 16f873
« Respuesta #3 en: 05 de Abril de 2004, 11:45:00 »
Lo intentaré, pero sin ver el programa es un poco complicado.

El comando setup_lcd no lo he usado nunca, según pone en el manual es para inicializar el controlador 923/924. La LCD que yo uso lleva el controlador 44780 de Hitachi.

Qué es lo que te funciona? ... el encendido de los LEDs?

Lo dicho, pon el programa y expon tus dudas acerca de cosas concretas.

Un saludo

Desconectado rferrero

  • PIC16
  • ***
  • Mensajes: 113
RE: Tensión de salida del convertidor A/D del 16f873
« Respuesta #4 en: 07 de Abril de 2004, 09:54:00 »
   El problema es, usando las directivas que adjunto, cómo sacar un dato por pantalla. Por ejemplo, un int que contiene un dato de 8 bits. Me da lo mismo el formato de salida. Es que soy incapaz con estas instrucciones!!! Si no, con qué otro compilador podría??   Gracias. Un saludo.LCD_LOAD()   Sintaxis:       lcd_load(buffer_pointer, offset, length);Parámetros:      buffer_pointer -> apunta a un dato de usuario para enviar al LCD.                                             offset -> desplazamiento dentro del segmento de memoria del LCD para                                             escribir el dato.         length -> número de bytes a transferirRequerimientos:      Las constantes están definidas en el archivo devices.hFunción:      Cargará longitud en bytes desde buffer_pointer en área de datos del segmento                                            LCD 923/924, empezando por el offset (0-15). Lcd_symbol proporciona una          manera más sencilla de escribir el dato en el segmento de memoria.Ejemplo:         lcd_load(buffer,0,16);LCD_SYMBOL()Sintaxis:         lcd_symbol(symbol, b7_addr, b6_addr, b5_addr, b4_addr, b3_addr,          b2_addr, b1_addr, b0_addr);Parámetros:      symbol -> constante de 8 bits.         bX_addr -> bit de direcciones representando la localización del segmento a ser usado para el bit X de symbol.Función:      Carga 8 bits dentro del segmento de área de datos para el LCD con  cada bit de          dirección especificado. Si el bit 7 en símbolo está  a 1, el segmento en la          dirección  B7 está a 1 también. De  otra forma, está a 0. Lo mismo es cierto para          todos los otros bits en símbolo. B7_addr es un bit de direcciones en la RAM del          LCD.Requerimientos:      Las constantes están definidas en el archivo devices.hEjemplo:         byte CONST DIGIT_MAP[10]=         {0X90,0XB7,0X19,0X36,0X54,0X50,0XB5,0X24};                  #define DIGIT_1_CONFIG         COM0+2,COM0+4COM05,COM2+4,COM2+1,COM1+4,COM1+5         for(i=1;i<=9;i++)       {         LCD_SYMBOL(DIGIT_MAP,DIGIT_1_CONFIG);         delay_ms(1000);      }SETUP_LCDSintaxis:         setup_lcd(mode, prescale, sements)Parámetros:      mode -> puede ser una de estas constantes del archivo devices.h:          LCD_DISABLED, LCD_STATIC, LCD_MUX12, LCD_MUX13, LCD_MUX14.         prescale -> puede ser de 0 a 15 para los segmentos de reloj del LCD. Puede ser          cualquiera de las siguientes constantes o varias a la vez: SEGO_4, SEG5_8,          SEG9_11, SEG12_15, SEG16_19, SEGO_28, SEG29_31, ALL_LCD_PINS.Requerimientos:      Las constantes están definidas en el archivo devices.hEjemplo:         setup_lcd(LCD_MUX14|STOP_ON_SLEEP,2,ALL_LCD_PINS);

Desconectado pocher

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 2569
RE: Tensión de salida del convertidor A/D del 16f873
« Respuesta #5 en: 08 de Abril de 2004, 02:11:00 »
Mira es más sencillo que todo eso. Lo mejor será que te ponga un pequeño ejemplo de como sacar un entero por LCD.

Voy a buscarlo.

Desconectado pocher

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 2569
RE: Tensión de salida del convertidor A/D del 16f873
« Respuesta #6 en: 08 de Abril de 2004, 04:04:00 »
En el subforo de ejemplos para simular he dejado un ejemplo sencillo de un voltímetro con representación en LCD.

La representación en LCD es con float, para tener decimales en la tensión, si lo quieres sin decimales, como entero de 8 bits (16 bits), tienes que poner %u (%lu).

Espero que ahora puedas representar en la LCD.

Un saludo

Desconectado rferrero

  • PIC16
  • ***
  • Mensajes: 113
RE: Tensión de salida del convertidor A/D del 16f873
« Respuesta #7 en: 10 de Abril de 2004, 05:39:00 »

      Siento tener que volverte a dar la lata, pero no me compila. Me aparece error en la librería lcd.c, concretamente en boolean, que no lo reconoce. Lo cambio por int1, pero más abajo me dice que a byte const ... le falta (.  
 
      Qué versión de compilador usas?? La mía es:
 
      ide version 3.14
      pcb version 3.094
      pcm version 3.094

     

Desconectado pocher

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 2569
RE: Tensión de salida del convertidor A/D del 16f873
« Respuesta #8 en: 10 de Abril de 2004, 06:42:00 »
La librería no la tienes porque tocar, a no ser que quieras cambiar la asignación de pines a la LCD. Si no estas seguro de lo que haces no la modifiques.

Aquí en la librería no tendría porqué aparecer errores.

La versión del compilador para este programa en concreto, no tiene nada que ver, siempre y cuando esté bien instalado.

Un saludo



Desconectado rferrero

  • PIC16
  • ***
  • Mensajes: 113
RE: Tensión de salida del convertidor A/D del 16f873
« Respuesta #9 en: 10 de Abril de 2004, 09:23:00 »

             Al compilar, me aparece
 
     A #device required before this line.    Y aparece en la línea donde está
      struct lcd_pin_map {                 // This structure is overlayed
           BOOLEAN enable;           // on to an I/O port to gain
           BOOLEAN rs;               // access to the LCD pins.
           BOOLEAN rw;               // The bits are allocated from
           BOOLEAN unused;           // low order up.  ENABLE will
           int     data : 4;         // be pin B0.
        } lcd;

    justo al principio del fichero lcd.c   He probado a poner #device PIC16F873 y me aparece otro error. Es lo único que he tocado y no aparece nada más.  Para hacer una prueba, me puedes mandar el hex o decirme qué compilador y versión usas??


   Muchas gracias. Un saludo.


Desconectado pocher

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 2569
RE: Tensión de salida del convertidor A/D del 16f873
« Respuesta #10 en: 10 de Abril de 2004, 09:53:00 »
Vale te envio todos los ficheros resultantes de la compilación por privado.

Desconectado rferrero

  • PIC16
  • ***
  • Mensajes: 113
RE: Tensión de salida del convertidor A/D del 16f873
« Respuesta #11 en: 10 de Abril de 2004, 11:28:00 »

    Perdona que te maree, de verdad. He usado el .hex, el original y demás, compilado y nada. Se iluminan mucho unos leds, parpadeando (siempre los mismos) y no aparece nada en la pantalla.

    En lcd_init() no hace falta inicializarla o poner algún parámetro?? Dónde se ponen las salidas de los puertos como entrada o salida??? Me refiero a "tris_".
 
   GRACIAS.


Desconectado pocher

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 2569
RE: Tensión de salida del convertidor A/D del 16f873
« Respuesta #12 en: 14 de Abril de 2004, 09:34:00 »
LEDs? qué LEDs?

Qué tipo de LCD estas usando y a qué pines del PIC la estás conectando?

En lcd_init() no debes poner nada.

No hace falta definir los tris_



 

anything