Autor Tema: GLCD Nokia 3310 en Proteus  (Leído 24225 veces)

0 Usuarios y 4 Visitantes están viendo este tema.

Desconectado jeremylf

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1341
Re: GLCD Nokia 3310 (Proyecto de Cucaracha) simulado en Proteus
« Respuesta #15 en: 09 de Agosto de 2009, 17:41:45 »
La funcion nokia_punt(...) tb ya funciona! Tuve problemas al principio con el algoritmo para hacerlo senoidal y todo alfinal esta en los casts. La funcion queda asi:
Código: [Seleccionar]
void nokia_punto (int8 x, int8 y, int1 color)
{
   int16 ddram;
   
   ddram = x + (((int16)(y / 8) * 84));
   
   if (color)
       MemoriaVideo[ddram] = MemoriaVideo[ddram] | (1 << (y % 8));
   else
       MemoriaVideo[ddram] = MemoriaVideo[ddram] & (0xFF - (1 << (y % 8)));
}

Solo le agrege el cast para trabajar a 16 bits.

Y, al llamar a la funcion para gener puntos como una onda de forma senoidal, hay que hacerlo de esta manera:
Código: [Seleccionar]
nokia_punto(i, (int8)(24 + sin((i + j) * 3.1416 / 20) * 22), NEGRO);

Es necesario hacer cast a todo el algoritmo ya que la funcion requiere de una variable de 8 bits nomas, sino no aparece nada.

Seguire probando.
Salu2.


Desconectado jeremylf

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1341
Re: GLCD Nokia 3310 (Proyecto de Cucaracha) simulado en Proteus
« Respuesta #17 en: 09 de Agosto de 2009, 23:09:00 »
Y ya esta! Toda las fuciones de tu libreria nocturno estan adaptadas para el CCS!

*PIC18F2550 a 20MHZ
*CCS 4.023
*Proteus 7.4 SP3

// Por eso de los 40000 caracteres no pongo los codigos xD pero esta adjuntado bueno.

Una foto:


Y un video...  :mrgreen:
[/youtube]

Se ve medio lento porque la PC estaba como al 90% por la grabacion de la pantalla y todo...

Decir que la base de todo esto ha sido la inclusion de casts en muchas partes del codigo original, tambien cambios en tipos de variables y en el prorama de ejemplo tambien otros casts y demas...

Espero que a alguien le sirva, porque a mi de echo que si  :-/


Gracias por tan buena libreria nocturno, y gracias a esta adaptacion he entendido gran parte de este glcd y tus funciones y todo!

Dejo todo, la simulacion, el proyecto en CCS, el c, el hex, etc.. todo adjuntado en RAR. Ah! menos la libreria para el nokia porque post anteriores ya lo pusieron y bueno.


Salu2.
« Última modificación: 09 de Agosto de 2009, 23:28:26 por jeremylf »

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: GLCD Nokia 3310 en Proteus
« Respuesta #18 en: 10 de Agosto de 2009, 01:48:02 »
Estupendo, te quedo exactamente igual.
Enlazaré tu versión de la librería desde mi artículo para que los visitantes puedan descargar la que más les convenga.

Desconectado jeremylf

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1341
Re: GLCD Nokia 3310 en Proteus
« Respuesta #19 en: 10 de Agosto de 2009, 03:21:18 »
Un gran honor  :-/
Gracias.

Desconectado Suky

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: GLCD Nokia 3310 en Proteus
« Respuesta #20 en: 10 de Agosto de 2009, 09:36:32 »
Excelente jeremylf , muy buen trabajo!

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

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: GLCD Nokia 3310 en Proteus
« Respuesta #21 en: 10 de Agosto de 2009, 12:47:18 »
Excelente trabajo jeremy  :-/

Gracias por el aporte.

Saludos
El papel lo aguanta todo

Desconectado pablomanieri

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 639
Re: GLCD Nokia 3310 en Proteus
« Respuesta #22 en: 10 de Agosto de 2009, 19:32:03 »
Muy bueno jeremylf. Saludos
« Última modificación: 10 de Agosto de 2009, 19:34:22 por pablomanieri »

Desconectado jeremylf

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1341
Re: GLCD Nokia 3310 en Proteus
« Respuesta #23 en: 10 de Agosto de 2009, 22:42:39 »
Gracias a todos. Ahora solo falta probarlo en fisico, pero el lcd que tenia noc q paso pero parece que se quemo por tanto meterle cautin JA! xD
En unos dias seguro ya tengo otro o almenos eso espero, y vere que tal.


Salu2.

Desconectado AKENAFAB

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 3227
Re: GLCD Nokia 3310 en Proteus
« Respuesta #24 en: 10 de Agosto de 2009, 23:27:16 »
 :-/ :-/ :-/ :-/

Muy bueno , Felicitaciones!


Desconectado pablomanieri

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 639
Re: GLCD Nokia 3310 en Proteus
« Respuesta #25 en: 11 de Agosto de 2009, 12:29:11 »
lo probé en físico con un display de nokia 5120 y un 18f4550 y funciona casi perfecto.
solo tiene el problema que la bola saltarina solo se mueve en forma horizontal sobre el borde superior de la pantalla, no se cual puede ser el problema ya que en la simulación se ve que salta.

Desconectado jeremylf

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1341
Re: GLCD Nokia 3310 en Proteus
« Respuesta #26 en: 11 de Agosto de 2009, 21:57:25 »
Yo tb tuve ese problema, pero lo solucione con un cast previo a la funcion nokia_bitmap de 8 bits para las funciones de seno que se usaban ahi. Se supone que deberia funcionar bien, la verdad que tampoco se que podria estar pasando ya que en la simulacion anda bien. Sera el nokia que es distinto ?


Bueno, gracias por probarlo, almenos funciona en un 95% por asi decirlo, en fisico xD!
Gracias AKENAFAB por los  :-/  :D


Salu2

Desconectado jeremylf

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1341
Re: GLCD Nokia 3310 en Proteus
« Respuesta #27 en: 12 de Agosto de 2009, 03:37:18 »
Nocturno, las letras 'Ñ' y 'ñ' (almenos a mi) no aparecen cuando uso nokia_text(...). Nose si a ti si te han funcionado correctamente  :?

Bueno, para solucion esto solo me basto agregar estas dos lineas despues del While en dicha funcion, quedando esta asi:
Código: [Seleccionar]
void nokia_texto(signed int8 x, signed int8 y, int8 fuente, char *caracter)
{
   int16 ind_bitmap, ind_memoria, xx, desplazamiento;
   int8 letra, alto, ancho, EscribirByte;

   if (fuente == 1)
   {
      ancho = 3;
      alto = 6;
   }
   else if (fuente == 2)
   {
      ancho = 5;
      alto = 7;
   }
   else
   {
      ancho = 7;
      alto = 8;
   }

   letra = *caracter;
   
   while (letra != 0)
   {
      if (Letra == 0xF1) {Letra = 0x80;}
      else if (Letra == 0xD1) {Letra = 0x81;}
   
      for (xx = 0; xx < ancho; xx++)
      {
         if (((xx + x) < 84) && ((xx + x) >= 0) && (y >= 0)&& (y <= 40))
         {
            ind_memoria = xx + x + (int16)(y >> 3) * 84;
            ind_bitmap = (int16)(letra - 0x20) * ancho + xx;
            desplazamiento = y % 8;

            if (fuente == 1)
            {   
               EscribirByte = Fuente_3_6[ind_bitmap];
            }
            else if (fuente == 2)
            {
               EscribirByte = ASCII_TABLE[ind_bitmap];
            }
            else
            {
               EscribirByte = Fuente_7_8[ind_bitmap];
            }
                   
            MemoriaVideo[ind_memoria] = MemoriaVideo[ind_memoria] | (EscribirByte << desplazamiento);
                 
            if (desplazamiento)
            {
               MemoriaVideo[ind_memoria + 84] = MemoriaVideo[ind_memoria + 84] | ((EscribirByte >> (8 - desplazamiento)) & (0xFF >> (8 - desplazamiento)));                       
            }
         }
      }
           
      caracter++;
      letra = *caracter;
      x = x + ancho + 1;
   }
}

Y listo.


Salu2.

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: GLCD Nokia 3310 en Proteus
« Respuesta #28 en: 12 de Agosto de 2009, 04:29:07 »
Pues ahora mismo no lo recuerdo, pero muy probablemente no estuvieran implementadas.

Desconectado pablomanieri

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 639
Re: GLCD Nokia 3310 en Proteus
« Respuesta #29 en: 12 de Agosto de 2009, 19:08:40 »
ya pude hacer saltar la bolita, el tema es que la variable k no se inicia con un valor definido, esntonces al tomar un valor muy alto, el seno parece que no calcula bien.