Autor Tema: Problemas con GLCD usando FAST_GLCD  (Leído 3530 veces)

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

Desconectado camigod

  • PIC10
  • *
  • Mensajes: 40
Problemas con GLCD usando FAST_GLCD
« en: 18 de Diciembre de 2009, 17:25:25 »
Hola a todos,

Estoy ensayando con un pequeño Touchscreen y una pantalla grafica de 128x64, hasta el momento todo funciona muy bien pero quisiera no ver el molesto "barrido" cada vez que limpio la pantalla.

Estoy usando un pic 18F4550 a 4mhz y estoy usando ls librerias de PIC C:
#include <HDM64GS12.c>
#include <graphics.c>

Y sin mas preambulos el problema es el siguiente:

La pantalla no muestra nada cuando utilizo glcd_update() despues de funciones como glcd_rect... o glcd_line... por otro lado si no defino FAST_GLCD la pantalla funciona bien.

Alguien tiene idea de que modificaciones hay que hacerle a la libreria para que funcione definiendo FAST_GLCD...

Gracias,

Un hombre no muere cuando su corazon deja de latir, un hombre muere, cuando deja de pensar

Desconectado ALE1973

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 229
Re: Problemas con GLCD usando FAST_GLCD
« Respuesta #1 en: 19 de Diciembre de 2009, 08:13:07 »
Hola, esta usando o creaste alguna función para dibujar, que utilice punteros?. Yo tenia el mismo problema justamente con una funcion que utilizaba unos punteros para graficar, al estar definidos como int, no funcionaba, tuve que definirlos como int16 y se soluciono el problema.

Saludos.
Alejandro.

Desconectado camigod

  • PIC10
  • *
  • Mensajes: 40
Re: Problemas con GLCD usando FAST_GLCD
« Respuesta #2 en: 19 de Diciembre de 2009, 12:48:59 »
Hola Alejandro, gracias por la respuesta, pero no, estoy usando solo las funciones definidas en las librerias que mencione, si las utilizo sin FAST_GLCD todo funciona bien, pero al definirlo y utilizar la funcion que mencionan en la libreria (glcd_update) la pantalla muere... solo funcionan unas cuantas funciones.

Gracias
Un hombre no muere cuando su corazon deja de latir, un hombre muere, cuando deja de pensar

Desconectado chelomiche

  • PIC10
  • *
  • Mensajes: 11
Re: Problemas con GLCD usando FAST_GLCD
« Respuesta #3 en: 16 de Noviembre de 2011, 17:46:24 »
Tengo el mismo problema. Cuando no uso el FAST GLCD me funciona bien. Pero cuando lo pongo en el Proteus me sale mal graficada la pantalla y si lo pruebo en el PIC no me sale nada.
No tengo definidos ningun puntero.
Espero que alguien nos pueda ayudar al respecto

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Problemas con GLCD usando FAST_GLCD
« Respuesta #4 en: 16 de Noviembre de 2011, 18:39:32 »
Subí las partes de código que interesa, sino es muy difícil detectar el problema. Telequinesis, por ahora nada  :mrgreen:
No contesto mensajes privados, las consultas en el foro

Desconectado chelomiche

  • PIC10
  • *
  • Mensajes: 11
Re: Problemas con GLCD usando FAST_GLCD
« Respuesta #5 en: 17 de Noviembre de 2011, 12:34:00 »
Jajajaja. Es lo unico que te falta Suky. Ser telequinetico
El programa es muy largo. Pero en este pedazo de programa ya no me anda, asi que sirve de ejemplo. SI yo comento #define FAST_GLCD y glcd_update() el programa me imprime en la pantalla lo que quiero. Y cuando dejo de comentarlas no me escribe nada.
Cualquier ayuda se los voy a agradecer, ya he visto el foro de arriba abajo y no encuentro solución.

Código: [Seleccionar]
    #include <18f4550.h>
    #device adc=10
    #fuses XTPLL,MCLR,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL1,CPUDIV1,NOVREGEN
   
    #use delay(clock=48000000)
    #define FAST_GLCD
    #include <HDM64GS12.c>
    #include <GRAPHICS.c>

    #ifndef GLCD_WIDTH
    #define GLCD_WIDTH   128
    #endif

    ////////////////////////////////////////////////////////////////
    // Definir Variables Globales
    ////////////////////////////////////////////////////////////////

    char Logo[] = "todopic";
    char Tiempo[] = "Tiempo:";
    char Text_Modo[] = "RES";
    char Nivel[] = "Nivel";

    ////////////////////////////////////////////////////////////////
    // Definir Prototipo de Funciones
    ////////////////////////////////////////////////////////////////

    void imprime_formato();

    void main(){

    disable_interrupts(global);
    disable_interrupts(int_timer1);
    disable_interrupts(int_rda);
    disable_interrupts(int_ext);
    disable_interrupts(int_ext1);
    disable_interrupts(int_ext2);
    setup_adc_ports(NO_ANALOGS);
    setup_adc(ADC_OFF);
    setup_spi(FALSE);
    setup_psp(PSP_DISABLED);
    setup_comparator(NC_NC_NC_NC);
    setup_vref(FALSE);
    port_b_pullups(FALSE);   

    // Definir Varibles
    SET_TRIS_B(0x00);

    glcd_init(ON);

    while(true){

    imprime_formato();

    delay_ms(20);
    glcd_fillScreen(OFF);
    glcd_update();
    }//while

    }// main

   
    void imprime_formato(){

    glcd_rect(0, 0, 127, 63, NO, ON);
    glcd_rect(0, 0, 63, 15, NO, ON);
    glcd_text57(5,4,Logo,1,1);
    glcd_text57(90,4,Text_Modo,1,1);
    glcd_text57(5,24,Nivel,1,1);
    glcd_rect(4, 32, 39, 40, NO, ON);
    glcd_text57(5,48,Tiempo,1,1);
    }

Desconectado MerLiNz

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2463
Re: Problemas con GLCD usando FAST_GLCD
« Respuesta #6 en: 17 de Noviembre de 2011, 12:48:11 »
segun veo, escribes uan serie de rectas y texto, luego borras la pantalla (glcd_fillScreen(OFF);) y luego lo actualizas?

deberia ser, borras la pantalla, escribes las rectas y texto, y luego actualizas.

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Problemas con GLCD usando FAST_GLCD
« Respuesta #7 en: 17 de Noviembre de 2011, 13:09:31 »
Exactamente, el llamado a glcd_update() debe estar al final de imprime_formato(), de esa manera se dibujan las rectas y textos. Además el glcd_fillScreen(OFF) lo colocaría al inicio del imprime_formato()  ;-)


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado chelomiche

  • PIC10
  • *
  • Mensajes: 11
Re: Problemas con GLCD usando FAST_GLCD
« Respuesta #8 en: 17 de Noviembre de 2011, 13:27:15 »
SON UNOS GRANDES!!!! Problema solucionado!!!