Autor Tema: Comando PPRINT  (Leído 4297 veces)

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

Desconectado khasistos

  • PIC18
  • ****
  • Mensajes: 493
Comando PPRINT
« en: 29 de Agosto de 2004, 11:36:00 »
Hola:
Bueno despues de dar vueltas he mas o menos dominado la presentacion con letras y numeros grandes en un display de 128 x 64 en PBplus ,pero ahora la otra sorpresa.....las letras y numeros de un set de caracteres ,luego de convertirlas al formato del pbplus llama al comando PPRINT y este si lo editas limita el alto de los caracteres a 3 bytes de alto ,en la practica no te deja mas de 9 mm de alto en el caracter..algien sabe como vencer esta barrera???o ha presentado con otro comando caracteres mas grandes dado que en el ancho no hay limites pero en el alto si

Saludos
khasistos

Desconectado Sispic

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1700
    • winpic800
RE: Comando PPRINT
« Respuesta #1 en: 29 de Agosto de 2004, 12:54:00 »
Lastima que en C hay muchos ejemplos .




http://www.8052.com/users/mkaras/GraphLCD.phtml


Desconectado Sispic

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1700
    • winpic800
RE: Comando PPRINT
« Respuesta #2 en: 29 de Agosto de 2004, 13:36:00 »
Y lo que buscabas en PBP PLUS



http://users.picbasic.org/Howto/PPRINT/pprint_enabling_variable_fonts_o.htm

Suerte con tu proyecto .

Desconectado khasistos

  • PIC18
  • ****
  • Mensajes: 493
RE: Comando PPRINT
« Respuesta #3 en: 29 de Agosto de 2004, 16:02:00 »
Hola sispic

Gracias ante todo por responder...

El ejemplo que has posteado tiene su maximo permitido por la subrutina PPrint.inc  de 3 bytes de alto o sea en TEORIA 24 pixeles que en realidad no es asi pues se reservan entre 3 y 6 pixeles de offset para el alineado de las letras con lo que en realidad son 19 pixeles maximo de altura  de caracter Eso esta dado por las instrucciones dadas por la sub PPrint escrita en asm que solo por curiosidad te la envio dado que es muy pequeña por si te interesa verla y no lo tomes por favor como una imposicion solo si quieres echale una ojeada pues es raro que limiten el alto y no el ancho .....
Ahora que despues de mil historias con los displays , los borrados y los caracteres he hecho lo que queria me encuentro en el final con esta tan desagradable sorpresita.........que como explique esta relacionada con el PPrint y me faltan 5 mm de altura caracter para terminar mi proyecto como dicen JODERSE...
En fin te mando un gran saludo y si tienes alguna sugerencia sera muyyy bien venida mientras sigo dando vueltas a ver por que lado lo puedo solucionar
Khasistos

El archivito lo mande a tu privado pues aqui no hay espacio  
   
   

Desconectado Sispic

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1700
    • winpic800
RE: Comando PPRINT
« Respuesta #4 en: 30 de Agosto de 2004, 13:28:00 »
No se de donde has sacado esta macro , pero tendrias que intentar modificarla en esta parte

Codigo:

;----[START OF PPRINT SUBROUTINE]-----------------------------------------------------------       
PRINT
       if($ > 2047)
          set@page setup@lcd
       endif
       Call   setup@lcd                      ; Setup the LCD if it hasn"t been setup already
       Movwf    _PCHAR#DATA                      
       Movwf   PP3                            ; Save contents of WREG   
       Movlw    32
       Subwf    _PCHAR#DATA,F                   ; Subtract the ASCII offset for the FONT table                  
   
; Calculate if we require the new PFONT shift values and how many lines to print
       Movfw     _GLCD_YPOS                            ; Have we calculated the info for this line already?
       Subwf   _GLCD_YPOS#TEMP,W
       set@page OVER@PRINT_CALC
       Btfsc   STATUS,Z
;       Goto      P@STRT                               ; No so do the calcs
       Goto      OVER@PRINT_CALC                    ; Yes so just print
   
;P@STRT
       Movlw     7                                     ; Work out how much to shift data
       Andwf     _GLCD_YPOS,W
       Movwf     _PSHIFT#LEFT
   
         Movfw     _PSHIFT#LEFT                       ; Calc the lines to print
       Addwf     _PFONT#HT,W
       Movwf     PP5
             
          Movfw   _GLCD_FLAG                       ; Clear the control flags
       Andlw   B"00000111"                      ; But leave the modifier flags alone
       Movwf   _GLCD_FLAG
   
       Movlw     9
       Subwf   _PFONT#HT,W                          ; Is this > 8 pixels high
       Btfsc   STATUS,C        
;       Goto      IFTHENEXIT@L1
       Bsf       TWO_BYTE@FONT                         ; Yes
   
;IFTHENEXIT@L1
       Movlw     17                                    ; Is this > 16 pixels high
       Subwf   _PFONT#HT,W
       Btfsc   STATUS,C
;       Goto    IFTHENEXIT@L2
       Bsf       THREE_BYTE@FONT                       ; Yes
   
;IFTHENEXIT@L2
       Movlw     9                                     ; 2 Lines to be printed?
       Subwf    PP5,W
       Btfsc   STATUS,C
;       Goto      IFTHENEXIT@L3    
       Bsf       PYLINE2@REQ                           ; Yes
   
;IFTHENEXIT@L3  
       Movlw     17                                    ; 3 Lines to be printed?
       Subwf    PP5,W
       Btfsc   STATUS,C
;       Goto    IFTHENEXIT@L4
       Bsf       PYLINE3@REQ                           ; Yes
   
;IFTHENEXIT@L4
       Movlw     25                                    ; 4 Lines to be printed?
       Subwf    PP5,W
       Btfsc   STATUS,C
;       Goto      IFTHENEXIT@L5
       Bsf       PYLINE4@REQ                           ; Yes
   
;IFTHENEXIT@L5
       Movfw   _PFONT#HT                             ; Work out no rotates for masks
       Sublw   32
       Movwf   _PPRINT#TEMP2
       Movlw   255
       Movwf   _OVERWRITE#MASK                    ; _OVERWRITE#MASK = $FFFFFFFF
       Movwf   _OVERWRITE#MASKH
       Movwf   _OVERWRITE#MASKHH
       Movwf   _OVERWRITE#MASKHHH  
       Incf      _PPRINT#TEMP2,F
       
RR_LOOP@L1                                            ; Rotate mask first right
       Decf      _PPRINT#TEMP2,F
       set@page RREXIT@L1
       Btfsc   STATUS,Z        
       Goto    RREXIT@L1
       Clrc
       Rrf      _OVERWRITE#MASKHHH,F
       Rrf      _OVERWRITE#MASKHH,F
       Rrf      _OVERWRITE#MASKH,F
       Rrf      _OVERWRITE#MASK,F
       if($ > 2047)
          set@page RR_LOOP@L1
       endif
       Goto    RR_LOOP@L1
   
RREXIT@L1
       Movfw     _PSHIFT#LEFT
       Movwf   _PPRINT#TEMP2
       Incf      _PPRINT#TEMP2,F                       ; Then left
RL_LOOP@L1
       Decf      _PPRINT#TEMP2,F
       set@page RLEXIT@L1
       Btfsc   STATUS,Z
       Goto    RLEXIT@L1
       Clrc
       Rlf      _OVERWRITE#MASK,F
       Rlf      _OVERWRITE#MASKH,F
       Rlf      _OVERWRITE#MASKHH,F    
       Rlf      _OVERWRITE#MASKHHH,F        
       if($ > 2047)
          set@page RL_LOOP@L1
       endif
       Goto      RL_LOOP@L1
   
RLEXIT@L1
       Comf      _OVERWRITE#MASK,F                    ; LASTLY INVERT
       Comf      _OVERWRITE#MASKH,F
       Comf      _OVERWRITE#MASKHH,F
       Comf      _OVERWRITE#MASKHHH,F
       
       Movfw     _GLCD_YPOS
       Movwf   _GLCD_YPOS#TEMP                      ; Make note for next time



 

Desconectado khasistos

  • PIC18
  • ****
  • Mensajes: 493
RE: Comando PPRINT
« Respuesta #5 en: 30 de Agosto de 2004, 14:27:00 »
Hola sispic

Esta macro es la que llama el comando PPrint ,cuando le dices que vas a usar una font interna y vive tranquila dentro de la carpeta .inc que viene con el PBplus por eso te decia que sospecho que la limitacion esta ahi dentro.Le mande un mail al que edito el articulo que tu mandaste y se hizo el tonto diciendo que si podia plotear letras de 4 bytes de altura ,que solo me iba a costar un poco mas de trabajo setear el FontConverter que es el programa que viene con el PBPlus para crear letras de 4 bytes de altura ,el programa a que hago referencia es a prueba de BOBOS y si tiene una opcion para crear letras de 4 bytes de altura cosa que hace pero cuando quieres poner esa letra convertida en el display grafico solo aparecen garabatos del tamaño de la nueva letra ,ademas me contesto que de ahora en mas solo respondia preguntas de la version 2.15 que es la que salio hace 1 semana,es lo que se llama un GRAN TIPO..........
Te mando un gran saludo y las gracias por atender mis inquietudes
Khasistos

Desconectado Sispic

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1700
    • winpic800
RE: Comando PPRINT
« Respuesta #6 en: 31 de Agosto de 2004, 06:00:00 »
En este caso yo me lo curraria todo desde cero , es decir me haria yo mismo todas las funciones para el manejo del lcd . Es el problema de depender de funciones ya hechas .

Hechar mano del Data Sheet , ya veras que ademas de aprender solucionaras tu problema .
Estoy seguro que no te costará mas esfuerzo del que has hecho para llegar hasta  aquí .

Lo pruebas fisicamente ó con algun simulador ? .
De que modelo LCD se trata ?.

Haver si encuentro mis pinitos que hice  .

Desconectado khasistos

  • PIC18
  • ****
  • Mensajes: 493
RE: Comando PPRINT
« Respuesta #7 en: 31 de Agosto de 2004, 19:01:00 »
Hola sis

Lo estoy haciendo funcionar en el mundo real ,el display es un samsug 108 128x64 que todo funciona ,depues de haber descubierto que viene en inverse es decir hay 4 soldaduras preparadas en el anverso para elegir si lo quieres inverso o no o sino la orden del Plus GLCD_inverse 1 .Ya postee en el forum de crownhill y dando vueltas admiten que si que la limitacion esta ahi y claro me sugieren cambiar a la version 2.15, de la cual nadie habla nada al respecto si esto esta "corregido "
A ver si encuentras tus pinitos..........pues todavia no puedo updatear .................................AHHH y sacame ese cartel de michael karas que cada vez que lo veo me amargas........ahora no voy a pasar al c por 5 mm de alto.............

Abrazos
khasitos

Desconectado Sispic

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1700
    • winpic800
RE: Comando PPRINT
« Respuesta #8 en: 02 de Septiembre de 2004, 05:36:00 »
Que controlador trae tu LCD , donde puedo conseguir el Data ?

Desconectado khasistos

  • PIC18
  • ****
  • Mensajes: 493
RE: Comando PPRINT
« Respuesta #9 en: 02 de Septiembre de 2004, 18:42:00 »
Hola sispic:
es un 12864 A de powertip  con controlador samsung S6B0108
y un S6B0107
ya te posteo la data  

http://www.powertip.com.tw/product/PG%20SERIES/PG%2012864-A_K.pdf
Un gran saludo
Khasistos

Desconectado Sispic

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1700
    • winpic800
RE: Comando PPRINT
« Respuesta #10 en: 03 de Septiembre de 2004, 09:23:00 »
Parece que tu lcd es compatible con KS0108 , he encontrado un programita para convrtir las fuentes .
Te gusta esta por ejemplo ?
Codigo:

      /* "1" charwidth: 16 */
      0x00, 0x00, 0x00, 0x00,    /*  [                ]  */
      0x00, 0x00, 0x00, 0x00,    /*  [                ]  */
      0x00, 0x00, 0x00, 0x00,    /*  [                ]  */
      0x00, 0x00, 0x00, 0x00,    /*  [                ]  */
      0x00, 0x00, 0x00, 0x00,    /*  [                ]  */
      0x00, 0x00, 0x00, 0x00,    /*  [                ]  */
      0x00, 0xC0, 0x00, 0x00,    /*  [        **      ]  */
      0x00, 0xC0, 0x00, 0x00,    /*  [        **      ]  */
      0x01, 0xC0, 0x00, 0x00,    /*  [       ***      ]  */
      0x03, 0xC0, 0x00, 0x00,    /*  [      ****      ]  */
      0x0F, 0xC0, 0x00, 0x00,    /*  [    ******      ]  */
      0x0F, 0xC0, 0x00, 0x00,    /*  [    ******      ]  */
      0x0F, 0xC0, 0x00, 0x00,    /*  [    ******      ]  */
      0x01, 0xC0, 0x00, 0x00,    /*  [       ***      ]  */
      0x01, 0xC0, 0x00, 0x00,    /*  [       ***      ]  */
      0x01, 0xC0, 0x00, 0x00,    /*  [       ***      ]  */
      0x01, 0xC0, 0x00, 0x00,    /*  [       ***      ]  */
      0x01, 0xC0, 0x00, 0x00,    /*  [       ***      ]  */
      0x01, 0xC0, 0x00, 0x00,    /*  [       ***      ]  */
      0x01, 0xC0, 0x00, 0x00,    /*  [       ***      ]  */
      0x01, 0xC0, 0x00, 0x00,    /*  [       ***      ]  */
      0x01, 0xC0, 0x00, 0x00,    /*  [       ***      ]  */
      0x01, 0xC0, 0x00, 0x00,    /*  [       ***      ]  */
      0x01, 0xC0, 0x00, 0x00,    /*  [       ***      ]  */
      0x01, 0xC0, 0x00, 0x00,    /*  [       ***      ]  */
      0x01, 0xC0, 0x00, 0x00,    /*  [       ***      ]  */
      0x01, 0xC0, 0x00, 0x00,    /*  [       ***      ]  */
      0x01, 0xC0, 0x00, 0x00,    /*  [       ***      ]  */
      0x01, 0xC0, 0x00, 0x00,    /*  [       ***      ]  */
      0x00, 0x00, 0x00, 0x00,    /*  [                ]  */
      0x00, 0x00, 0x00, 0x00,    /*  [                ]  */
      0x00, 0x00, 0x00, 0x00,    /*  [                ]  */
      0x00, 0x00, 0x00, 0x00,    /*  [                ]  */
      0x00, 0x00, 0x00, 0x00,    /*  [                ]  */
      0x00, 0x00, 0x00, 0x00,    /*  [                ]  */
      0x00, 0x00, 0x00, 0x00,    /*  [                ]  */
      0x00, 0x00, 0x00, 0x00,    /*  [                ]  */
      
      /* "2" charwidth: 18 */
      0x00, 0x00, 0x00, 0x00,    /*  [                  ]  */
      0x00, 0x00, 0x00, 0x00,    /*  [                  ]  */
      0x00, 0x00, 0x00, 0x00,    /*  [                  ]  */
      0x00, 0x00, 0x00, 0x00,    /*  [                  ]  */
      0x00, 0x00, 0x00, 0x00,    /*  [                  ]  */
      0x00, 0x00, 0x00, 0x00,    /*  [                  ]  */
      0x01, 0xE0, 0x00, 0x00,    /*  [       ****       ]  */
      0x07, 0xF8, 0x00, 0x00,    /*  [     ********     ]  */
      0x0F, 0xFC, 0x00, 0x00,    /*  [    **********    ]  */
      0x1E, 0x1E, 0x00, 0x00,    /*  [   ****    ****   ]  */
      0x1C, 0x0E, 0x00, 0x00,    /*  [   ***      ***   ]  */
      0x38, 0x07, 0x00, 0x00,    /*  [  ***        ***  ]  */
      0x38, 0x07, 0x00, 0x00,    /*  [  ***        ***  ]  */
      0x00, 0x07, 0x00, 0x00,    /*  [             ***  ]  */
      0x00, 0x07, 0x00, 0x00,    /*  [             ***  ]  */
      0x00, 0x0E, 0x00, 0x00,    /*  [            ***   ]  */
      0x00, 0x1E, 0x00, 0x00,    /*  [           ****   ]  */
      0x00, 0x7C, 0x00, 0x00,    /*  [         *****    ]  */
      0x01, 0xF8, 0x00, 0x00,    /*  [       ******     ]  */
      0x03, 0xE0, 0x00, 0x00,    /*  [      *****       ]  */
      0x07, 0x80, 0x00, 0x00,    /*  [     ****         ]  */
      0x0F, 0x00, 0x00, 0x00,    /*  [    ****          ]  */
      0x1E, 0x00, 0x00, 0x00,    /*  [   ****           ]  */
      0x1C, 0x00, 0x00, 0x00,    /*  [   ***            ]  */
      0x38, 0x00, 0x00, 0x00,    /*  [  ***             ]  */
      0x38, 0x00, 0x00, 0x00,    /*  [  ***             ]  */
      0x7F, 0xFF, 0x80, 0x00,    /*  [ **************** ]  */
      0x7F, 0xFF, 0x80, 0x00,    /*  [ **************** ]  */
      0x7F, 0xFF, 0x80, 0x00,    /*  [ **************** ]  */
      0x00, 0x00, 0x00, 0x00,    /*  [                  ]  */
      0x00, 0x00, 0x00, 0x00,    /*  [                  ]  */
      0x00, 0x00, 0x00, 0x00,    /*  [                  ]  */
      0x00, 0x00, 0x00, 0x00,    /*  [                  ]  */
      0x00, 0x00, 0x00, 0x00,    /*  [                  ]  */
      0x00, 0x00, 0x00, 0x00,    /*  [                  ]  */
      0x00, 0x00, 0x00, 0x00,    /*  [                  ]  */
      0x00, 0x00, 0x00, 0x00,    /*  [                  ]  */
      
      /* "3" charwidth: 18 */
      0x00, 0x00, 0x00, 0x00,    /*  [                  ]  */
      0x00, 0x00, 0x00, 0x00,    /*  [                  ]  */
      0x00, 0x00, 0x00, 0x00,    /*  [                  ]  */
      0x00, 0x00, 0x00, 0x00,    /*  [                  ]  */
      0x00, 0x00, 0x00, 0x00,    /*  [                  ]  */
      0x00, 0x00, 0x00, 0x00,    /*  [                  ]  */
      0x01, 0xE0, 0x00, 0x00,    /*  [       ****       ]  */
      0x07, 0xF8, 0x00, 0x00,    /*  [     ********     ]  */
      0x0F, 0xFC, 0x00, 0x00,    /*  [    **********    ]  */
      0x1E, 0x1E, 0x00, 0x00,    /*  [   ****    ****   ]  */
      0x1C, 0x0E, 0x00, 0x00,    /*  [   ***      ***   ]  */
      0x38, 0x07, 0x00, 0x00,    /*  [  ***        ***  ]  */
      0x38, 0x07, 0x00, 0x00,    /*  [  ***        ***  ]  */
      0x00, 0x07, 0x00, 0x00,    /*  [             ***  ]  */
      0x00, 0x0E, 0x00, 0x00,    /*  [            ***   ]  */
      0x00, 0xFE, 0x00, 0x00,    /*  [        *******   ]  */
      0x00, 0xFC, 0x00, 0x00,    /*  [        ******    ]  */
      0x00, 0xFE, 0x00, 0x00,    /*  [        *******   ]  */
      0x00, 0x0F, 0x00, 0x00,    /*  [            ****  ]  */
      0x00, 0x07, 0x00, 0x00,    /*  [             ***  ]  */
      0x00, 0x03, 0x80, 0x00,    /*  [              *** ]  */
      0x00, 0x03, 0x80, 0x00,    /*  [              *** ]  */
      0x70, 0x03, 0x80, 0x00,    /*  [ ***          *** ]  */
      0x70, 0x03, 0x80, 0x00,    /*  [ ***          *** ]  */
      0x38, 0x07, 0x00, 0x00,    /*  [  ***        ***  ]  */
      0x3C, 0x0F, 0x00, 0x00,    /*  [  ****      ****  ]  */
      0x1F, 0xFE, 0x00, 0x00,    /*  [   ************   ]  */
      0x0F, 0xFC, 0x00, 0x00,    /*  [    **********    ]  */
      0x03, 0xF0, 0x00, 0x00,    /*  [      ******      ]  */
      0x00, 0x00, 0x00, 0x00,    /*  [                  ]  */
      0x00, 0x00, 0x00, 0x00,    /*  [                  ]  */
      0x00, 0x00, 0x00, 0x00,    /*  [                  ]  */
      0x00, 0x00, 0x00, 0x00,    /*  [                  ]  */
      0x00, 0x00, 0x00, 0x00,    /*  [                  ]  */
      0x00, 0x00, 0x00, 0x00,    /*  [                  ]  */
      0x00, 0x00, 0x00, 0x00,    /*  [                  ]  */
      0x00, 0x00, 0x00, 0x00,    /*  [                  ]  */



Domino muy poco el pbp plus , hechare un vistazo haver si se pueden usar .

Que tamaño largo/ancho necesitas en pixels ?.

Desconectado khasistos

  • PIC18
  • ****
  • Mensajes: 493
RE: Comando PPRINT
« Respuesta #11 en: 03 de Septiembre de 2004, 12:37:00 »
Hola sispic.

me estas poniendo el dulce delante......si me gusta ,solo quiero llegar a los 13 mm que debe ser una font de 26 o 27 pixels ,no hace falta que lo domines yo solo soy aprendiz de brujo ,estoy buscando la forma de hacerle leer una data como la que tu envias pues el sistema del pbplus para display grafico es llamando a PPrint ,este a su vez ,si tienes la data de la font cargada en el programa llama al macro PPrint14 INT y ahi esta el problema ,el Font Coverter convierte a cdata todos los caracteres y cuando necesita plotear en el display se encuentra con la limitacion del PPrint14 INT que no le deja mas de 3 bytes de alto pero si lo que quieras de ancho .El comando PPrint solo desvia a la rutina a seguir  si tienes la font dentro del pic y es de 14 bytes se va a PPrint14 INT si la tienes en una eeprom externa se va a PPrint 14 EXT y si el pic es de 16 bytes lo manda a PPrint 16 xx,asi es como trabaja y si sigo empleando ese metodo no voy a llegar por ahi ,mira te mando un pequeño ejemplo
DEVICE = 16F877
        XTAL = 20
       
      ADCON1=7
      ALL_DIGITAL=TRUE
      LCD_DTPORT = PORTD
      LCD_RSPIN = PORTC.1
      LCD_ENPIN = PORTE.0
      LCD_RWPIN = PORTC.0
        LCD_CS1PIN = PORTE.1
      LCD_CS2PIN = PORTE.2
        LCD_TYPE = GRAPHIC
      INTERNAL_FONT = ON
      FONT_ADDR = 0
      DECLARE GLCD_CS_INVERT 1
       DECLARE GLCD_STROBE_DELAY 10000
                   
 
GLCD_EXTERNAL_PRINT = PPRINT " Point to PPRINT.INC file
CLS
 PRINT FONT  Arial____18o75
 " Declare which font to use
 PRINT AT 10,40,"HOLA"
 
 
 STOP
 INCLUDE "Arial_18o75.FNT" " Include the font

El include es la letra convertida por el font converter ,que esta en la pagina del pbplus que me has mandado.
estas son las instrucciones para el ploteo de caracteres,claro esta no mas de 3 bytes de alto ///24 pixels

y este es e l formato que entiende para plotear ,es decir la letra convertida ,la corte pues si no nos echan del foro
REMINDERS = OFF

"
" FONT information for  Arial Black  - Font Size 16 (Point Size 26,25)
"---------------------------------------------------------------------------------------------------"
"
"
" Pointers to the actual font table
"
Arial____26o25:-

Cdata     word 16 " Font is 16 High

Cdata     Arial____26o25_0,Arial____26o25_1,Arial____26o25_2,Arial____26o25_3,Arial____26o25_4,_
          Arial____26o25_5,Arial____26o25_6,Arial____26o25_7,Arial____26o25_8,Arial____26o25_9,_
          Arial____26o25_10,Arial____26o25_11,Arial____26o25_12,Arial____26o25_13,_
          Arial____26o25_14,Arial____26o25_15,Arial____26o25_16,Arial____26o25_17,_
          Arial____26o25_18,Arial____26o25_19,Arial____26o25_20,Arial____26o25_21,_
          Arial____26o25_22,Arial____26o25_23,Arial____26o25_24,Arial____26o25_25,_
          Arial____26o25_26,Arial____26o25_27,Arial____26o25_28,Arial____26o25_29,_
          Arial____26o25_30,Arial____26o25_31,Arial____26o25_32,Arial____26o25_33,_
          Arial____26o25_34,Arial____26o25_35,Arial____26o25_36,Arial____26o25_37,_
          Arial____26o25_38,Arial____26o25_39,Arial____26o25_40,Arial____26o25_41,_
          Arial____26o25_42,Arial____26o25_43,Arial____26o25_44,Arial____26o25_45,_
          Arial____26o25_46,Arial____26o25_47,Arial____26o25_48,Arial____26o25_49,_
          Arial____26o25_50,Arial____26o25_51,Arial____26o25_52,Arial____26o25_53,_
          Arial____26o25_54,Arial____26o25_55,Arial____26o25_56,Arial____26o25_57,_
          Arial____26o25_58,Arial____26o25_59,Arial____26o25_60,Arial____26o25_61,_
          Arial____26o25_62,Arial____26o25_63,Arial____26o25_64,Arial____26o25_65,_
          Arial____26o25_66,Arial____26o25_67,Arial____26o25_68,Arial____26o25_69,_
          Arial____26o25_70,Arial____26o25_71,Arial____26o25_72,Arial____26o25_73,_
          Arial____26o25_74,Arial____26o25_75,Arial____26o25_76,Arial____26o25_77,_
          Arial____26o25_78,Arial____26o25_79,Arial____26o25_80,Arial____26o25_81,_
          Arial____26o25_82,Arial____26o25_83,Arial____26o25_84,Arial____26o25_85,_
          Arial____26o25_86,Arial____26o25_87,Arial____26o25_88,Arial____26o25_89,_
          Arial____26o25_90,Arial____26o25_91,Arial____26o25_92,Arial____26o25_93,_
          Arial____26o25_94,Arial____26o25_95



" Font data

Arial____26o25_0:-
CDATA 2,0,0,0,0,0,0,0,0 " Code for char    
Arial____26o25_1:-
CDATA 8,0,255,3,252,0,255,255,252,0,255,255,252,0,255,255,252,0,255,255,252,0,255,_
          255,252,0,255,3,252,0,0,0,0 " Code for char !  
Arial____26o25_2:-
CDATA 17,0,63,0,0,0,255,1,0,0,255,1,0,0,255,1,0,0,255,1,0,0,255,1,0,0,63,0,0,0,0,_
          0,0,0,0,0,0,0,63,0,0,0,255,1,0,0,255,1,0,0,255,1,0,0,255,1,0,0,255,1,0,_
          0,63,0,0,0,0,0,0 " Code for char "  
Arial____26o25_3:-
CDATA 22,0,192,199,7,0,192,199,135,0,192,199,255,0,192,247,255,0,192,255,255,0,252,_
          255,255,0,255,255,127,0,255,255,7,0,255,223,7,0,255,199,7,0,199,199,199,_
          0,192,199,255,0,192,247,255,0,192,255,255,0,252,255,255,0,255,255,127,0,_
          255,255,7,0,255,223,7,0,255,199,7,0,195,199,7,0,192,199,7,0,0,0,0 " Code for char #  

esta ya no anda pues supera los 3 bytes ...

Gracias por tanta preocupacion por mi duda ,te mando un gran saludo
khasitos

Desconectado Sispic

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1700
    • winpic800
RE: Comando PPRINT
« Respuesta #12 en: 04 de Septiembre de 2004, 00:10:00 »
Tambien tengo que practicar con los graficos y de paso estudio un poco el pbp plus .

Si quieres probamos de diseñar las funciones para esta fuente de 27 de alto . Aunque yo no puedo probar fisicamenye ya que no tengo el mismo lcd y no lo tengo  preparado .


La fuente con dos caracteres para probar .
Codigo:

dim Courier_New_32 as 0x1200 " posicion del primer word del inicio de la fuente en flash


     asm
    org Courier_New_32  ; Le decimos al compilador que se ponga en el puntero  

      ; "0" charwidth: 26 */
   data   0x00, 0x7F, 0x00, 0x00    ;  [         *******          ]  */
   data   0x01, 0xFF, 0xC0, 0x00    ;  [       ***********        ]  */
   data   0x03, 0xFF, 0xE0, 0x00    ;  [      *************       ]  */
   data   0x03, 0xFF, 0xE0, 0x00    ;  [      *************       ]  */
   data   0x07, 0xC1, 0xF0, 0x00    ;  [     *****     *****      ]  */
   data   0x0F, 0x80, 0xF8, 0x00    ;  [    *****       *****     ]  */
   data   0x0F, 0x00, 0x78, 0x00    ;  [    ****         ****     ]  */
   data   0x0F, 0x00, 0x78, 0x00    ;  [    ****         ****     ]  */
   data   0x1E, 0x00, 0x3C, 0x00    ;  [   ****           ****    ]  */
   data   0x1E, 0x00, 0x3C, 0x00    ;  [   ****           ****    ]  */
   data   0x1E, 0x00, 0x3C, 0x00    ;  [   ****           ****    ]  */
   data   0x1E, 0x00, 0x3C, 0x00    ;  [   ****           ****    ]  */
   data   0x1E, 0x00, 0x3C, 0x00    ;  [   ****           ****    ]  */
   data   0x1E, 0x00, 0x3C, 0x00    ;  [   ****           ****    ]  */
   data   0x1E, 0x00, 0x3C, 0x00    ;  [   ****           ****    ]  */
   data   0x1E, 0x00, 0x3C, 0x00    ;  [   ****           ****    ]  */
   data   0x1E, 0x00, 0x3C, 0x00    ;  [   ****           ****    ]  */
   data   0x1E, 0x00, 0x3C, 0x00    ;  [   ****           ****    ]  */
   data   0x1E, 0x00, 0x3C, 0x00    ;  [   ****           ****    ]  */
   data   0x0F, 0x00, 0x78, 0x00    ;  [    ****         ****     ]  */
   data   0x0F, 0x00, 0x78, 0x00    ;  [    ****         ****     ]  */
   data   0x0F, 0x80, 0xF8, 0x00    ;  [    *****       *****     ]  */
   data   0x07, 0xC1, 0xF0, 0x00    ;  [     *****     *****      ]  */
   data   0x03, 0xFF, 0xE0, 0x00    ;  [      *************       ]  */
   data   0x03, 0xFF, 0xE0, 0x00    ;  [      *************       ]  */
   data   0x01, 0xFF, 0xC0, 0x00    ;  [       ***********        ]  */
   data   0x00, 0x7F, 0x00, 0x00    ;  [         *******          ]  */

         ; "1" charwidth: 26 */
   data   0x00, 0x06, 0x00, 0x00    ;  [             **           ]  */
   data   0x00, 0x3E, 0x00, 0x00    ;  [          *****           ]  */
   data   0x03, 0xFE, 0x00, 0x00    ;  [      *********           ]  */
   data   0x0F, 0xFE, 0x00, 0x00    ;  [    ***********           ]  */
   data   0x0F, 0xFE, 0x00, 0x00    ;  [    ***********           ]  */
   data   0x0F, 0xFE, 0x00, 0x00    ;  [    ***********           ]  */
   data   0x07, 0x1E, 0x00, 0x00    ;  [     ***   ****           ]  */
   data   0x00, 0x1E, 0x00, 0x00    ;  [           ****           ]  */
   data   0x00, 0x1E, 0x00, 0x00    ;  [           ****           ]  */
   data   0x00, 0x1E, 0x00, 0x00    ;  [           ****           ]  */
   data   0x00, 0x1E, 0x00, 0x00    ;  [           ****           ]  */
   data   0x00, 0x1E, 0x00, 0x00    ;  [           ****           ]  */
   data   0x00, 0x1E, 0x00, 0x00    ;  [           ****           ]  */
   data   0x00, 0x1E, 0x00, 0x00    ;  [           ****           ]  */
   data   0x00, 0x1E, 0x00, 0x00    ;  [           ****           ]  */
   data   0x00, 0x1E, 0x00, 0x00    ;  [           ****           ]  */
   data   0x00, 0x1E, 0x00, 0x00    ;  [           ****           ]  */
   data   0x00, 0x1E, 0x00, 0x00    ;  [           ****           ]  */
   data   0x00, 0x1E, 0x00, 0x00    ;  [           ****           ]  */
   data   0x00, 0x1E, 0x00, 0x00    ;  [           ****           ]  */
   data   0x00, 0x1E, 0x00, 0x00    ;  [           ****           ]  */
   data   0x00, 0x1E, 0x00, 0x00    ;  [           ****           ]  */
   data   0x00, 0x1E, 0x00, 0x00    ;  [           ****           ]  */
   data   0x07, 0xFF, 0xF8, 0x00    ;  [     ****************     ]  */
   data   0x0F, 0xFF, 0xFC, 0x00    ;  [    ******************    ]  */
   data   0x0F, 0xFF, 0xFC, 0x00    ;  [    ******************    ]  */
   data   0x07, 0xFF, 0xF8, 0x00    ;  [     ****************     ]  */   
   
   
   endasm


Si te fijas , el comando PRINT usa esta rutina para leer las fuentes guardadas en memoria flash .
La he modifcado un poco.
El resultado queda en w .
Codigo:

asm
;-----[READ FROM MEMORY A BYTE OF DATA]-------------------------        

Posiciona_puntero              
        movf   Direccion,W
        bsf    STATUS,RP1       ; BANK 2
        movwf  EEADR
        bcf    STATUS,RP1        ; BANK 0
        movf   Direccion + 1,W
        bsf    STATUS,RP1       ; BANK 2      
        movwf  EEADRH
      call   readpdata2
        return
; Enter here to perform a pre-inc read
Lee_data_flash    
       Bsf    STATUS,RP1                          ; BANK 2
        Incf    EEADR,F                             ; Increment the address
       Skpnz
       Incf    EEADRH,F
; Enter here to perform a normal read EEADR/EEADRH has to be pre-loaded
readpdata2
       Bsf    STATUS,RP0                          
       Bsf    STATUS,RP1                          ; BANK 3
       Bsf    EECON1,EEPGD                        ; Instigate the read
       Bsf    EECON1,RD
       Goto   $ + 1                        ; Waste 2 cycles
       Bcf    STATUS,RP0                     ; Back down to BANK 2
       Movfw    EEDATA                              ; the low data into wreg      
        bcf     STATUS,RP1                          ; BANK 0
       return
 endasm





Desconectado khasistos

  • PIC18
  • ****
  • Mensajes: 493
RE: Comando PPRINT
« Respuesta #13 en: 04 de Septiembre de 2004, 15:33:00 »
Hola sispic:

Primero gracias ,y espera un poquito por favor estoy trabajando en una "rutinas ", que pueden solucionar el problema .No prometo nada dada mi limitada capacidad pero hare el intento,por todos los amigos como tu y por mi

te mando un gran saludo

khasistos


 

anything