Hi Richard,

Can you also tell us where you get this LCD display ? Sparkfun ? How much
does it cost ?

Cheers,
Seb

2010/2/22 Joep Suijs <[email protected]>

> Hi Richard,
>
> What does work and what does not? Can you supply me with the full
> source code of both?
>
> Joep
>
> 2010/2/22  <[email protected]>:
> > Revision: 1698
> > Author: [email protected]
> > Date: Mon Feb 22 13:08:58 2010
> > Log: Nice small graphic display unfortunately I don’t get it work with
> > print.jal some how the pseudo var does not work, it needs the real
> > procedure.
> >
> > Joep do you have any idea why it does not work with print jal and if a
> > create the same type of procedure in the library of nokia3310 it works?
> >
> >
> > Greetz
> >
> > Richard
> >
> > http://code.google.com/p/jallib/source/detail?r=1698
> >
> > Added:
> >  /trunk/include/external/lcd/lcd_nokia3310.jal
> >
> > =======================================
> > --- /dev/null
> > +++ /trunk/include/external/lcd/lcd_nokia3310.jal       Mon Feb 22
> 13:08:58
> > 2010
> > @@ -0,0 +1,286 @@
> > +--
> >
> -----------------------------------------------------------------------------
> > +-- Title: library for GLCD with pcd8544 controller used in Nokia 3310
> > +-- Author: Andre Miller Copyright (c) 2008..2010, all rights reserved.
> > +-- Adapted-by: Richard Zengerink
> > +-- Compiler:  >=2.4n
> > +--
> > +-- This file is part of jallib (http://jallib.googlecode.com)
> > +-- Released under the ZLIB license
> > (http://www.opensource.org/licenses/zlib-license.html)
> > +--
> > +-- Sources: http://www.amontec.com/lcd_nokia_3310.shtml
> > +--
> > +-- Description: library for Nokia 3310 display with pcd8544 controller
> > +--
> > +-- Dependencies: delay.jal
> > +--
> > +--
> > +
> > +
> > +include delay
> > +
> > +
> > +const byte FontLookup[] =
> > +     {
> > +   0x00, 0x00, 0x00, 0x00, 0x00,  -- sp
> > +   0x00, 0x00, 0x2f, 0x00, 0x00,  -- !
> > +   0x00, 0x07, 0x00, 0x07, 0x00,  -- "
> > +   0x14, 0x7f, 0x14, 0x7f, 0x14,  -- #
> > +   0x24, 0x2a, 0x7f, 0x2a, 0x12,  -- $
> > +   0xc4, 0xc8, 0x10, 0x26, 0x46,  -- %
> > +   0x36, 0x49, 0x55, 0x22, 0x50,  -- &
> > +   0x00, 0x05, 0x03, 0x00, 0x00,  -- '
> > +   0x00, 0x1c, 0x22, 0x41, 0x00,  -- (
> > +   0x00, 0x41, 0x22, 0x1c, 0x00,  -- )
> > +   0x14, 0x08, 0x3E, 0x08, 0x14,  -- *
> > +   0x08, 0x08, 0x3E, 0x08, 0x08,  -- +
> > +   0x00, 0x00, 0x50, 0x30, 0x00,  -- ,
> > +   0x10, 0x10, 0x10, 0x10, 0x10,  -- -
> > +   0x00, 0x60, 0x60, 0x00, 0x00,  -- .
> > +   0x20, 0x10, 0x08, 0x04, 0x02,  -- /
> > +   0x3E, 0x51, 0x49, 0x45, 0x3E,  -- 0
> > +   0x00, 0x42, 0x7F, 0x40, 0x00,  -- 1
> > +   0x42, 0x61, 0x51, 0x49, 0x46,  -- 2
> > +   0x21, 0x41, 0x45, 0x4B, 0x31,  -- 3
> > +   0x18, 0x14, 0x12, 0x7F, 0x10,  -- 4
> > +   0x27, 0x45, 0x45, 0x45, 0x39,  -- 5
> > +   0x3C, 0x4A, 0x49, 0x49, 0x30,  -- 6
> > +   0x01, 0x71, 0x09, 0x05, 0x03,  -- 7
> > +   0x36, 0x49, 0x49, 0x49, 0x36,  -- 8
> > +   0x06, 0x49, 0x49, 0x29, 0x1E,  -- 9
> > +   0x00, 0x36, 0x36, 0x00, 0x00,  -- :
> > +   0x00, 0x56, 0x36, 0x00, 0x00,  -- ;
> > +   0x08, 0x14, 0x22, 0x41, 0x00,  -- <
> > +   0x14, 0x14, 0x14, 0x14, 0x14,  -- =
> > +   0x00, 0x41, 0x22, 0x14, 0x08,  -- >
> > +   0x02, 0x01, 0x51, 0x09, 0x06,  -- ?
> > +   0x32, 0x49, 0x59, 0x51, 0x3E,  -- @
> > +   0x7E, 0x11, 0x11, 0x11, 0x7E,  -- A
> > +   0x7F, 0x49, 0x49, 0x49, 0x36,  -- B
> > +   0x3E, 0x41, 0x41, 0x41, 0x22,  -- C
> > +   0x7F, 0x41, 0x41, 0x22, 0x1C,  -- D
> > +   0x7F, 0x49, 0x49, 0x49, 0x41,  -- E
> > +   0x7F, 0x09, 0x09, 0x09, 0x01,  -- F
> > +   0x3E, 0x41, 0x49, 0x49, 0x7A,  -- G
> > +   0x7F, 0x08, 0x08, 0x08, 0x7F,  -- H
> > +   0x00, 0x41, 0x7F, 0x41, 0x00,  -- I
> > +   0x20, 0x40, 0x41, 0x3F, 0x01,  -- J
> > +   0x7F, 0x08, 0x14, 0x22, 0x41,  -- K
> > +   0x7F, 0x40, 0x40, 0x40, 0x40,  -- L
> > +   0x7F, 0x02, 0x0C, 0x02, 0x7F,  -- M
> > +   0x7F, 0x04, 0x08, 0x10, 0x7F,  -- N
> > +   0x3E, 0x41, 0x41, 0x41, 0x3E,  -- O
> > +   0x7F, 0x09, 0x09, 0x09, 0x06,  -- P
> > +   0x3E, 0x41, 0x51, 0x21, 0x5E,  -- Q
> > +   0x7F, 0x09, 0x19, 0x29, 0x46,  -- R
> > +   0x46, 0x49, 0x49, 0x49, 0x31,  -- S
> > +   0x01, 0x01, 0x7F, 0x01, 0x01,  -- T
> > +   0x3F, 0x40, 0x40, 0x40, 0x3F,  -- U
> > +   0x1F, 0x20, 0x40, 0x20, 0x1F,  -- V
> > +   0x3F, 0x40, 0x38, 0x40, 0x3F,  -- W
> > +   0x63, 0x14, 0x08, 0x14, 0x63,  -- X
> > +   0x07, 0x08, 0x70, 0x08, 0x07,  -- Y
> > +   0x61, 0x51, 0x49, 0x45, 0x43,  -- Z
> > +   0x00, 0x7F, 0x41, 0x41, 0x00,  -- [
> > +   0x55, 0x2A, 0x55, 0x2A, 0x55,  -- 55
> > +   0x00, 0x41, 0x41, 0x7F, 0x00,  -- ]
> > +   0x04, 0x02, 0x01, 0x02, 0x04,  -- ^
> > +   0x40, 0x40, 0x40, 0x40, 0x40,  -- _
> > +   0x00, 0x01, 0x02, 0x04, 0x00,  -- '
> > +   0x20, 0x54, 0x54, 0x54, 0x78,  -- a
> > +   0x7F, 0x48, 0x44, 0x44, 0x38,  -- b
> > +   0x38, 0x44, 0x44, 0x44, 0x20,  -- c
> > +   0x38, 0x44, 0x44, 0x48, 0x7F,  -- d
> > +   0x38, 0x54, 0x54, 0x54, 0x18,  -- e
> > +   0x08, 0x7E, 0x09, 0x01, 0x02,  -- f
> > +   0x0C, 0x52, 0x52, 0x52, 0x3E,  -- g
> > +   0x7F, 0x08, 0x04, 0x04, 0x78,  -- h
> > +   0x00, 0x44, 0x7D, 0x40, 0x00,  -- i
> > +   0x20, 0x40, 0x44, 0x3D, 0x00,  -- j
> > +   0x7F, 0x10, 0x28, 0x44, 0x00,  -- k
> > +   0x00, 0x41, 0x7F, 0x40, 0x00,  -- l
> > +   0x7C, 0x04, 0x18, 0x04, 0x78,  -- m
> > +   0x7C, 0x08, 0x04, 0x04, 0x78,  -- n
> > +   0x38, 0x44, 0x44, 0x44, 0x38,  -- o
> > +   0x7C, 0x14, 0x14, 0x14, 0x08,  -- p
> > +   0x08, 0x14, 0x14, 0x18, 0x7C,  -- q
> > +   0x7C, 0x08, 0x04, 0x04, 0x08,  -- r
> > +   0x48, 0x54, 0x54, 0x54, 0x20,  -- s
> > +   0x04, 0x3F, 0x44, 0x40, 0x20,  -- t
> > +   0x3C, 0x40, 0x40, 0x20, 0x7C,  -- u
> > +   0x1C, 0x20, 0x40, 0x20, 0x1C,  -- v
> > +   0x3C, 0x40, 0x30, 0x40, 0x3C,  -- w
> > +   0x44, 0x28, 0x10, 0x28, 0x44,  -- x
> > +   0x0C, 0x50, 0x50, 0x50, 0x3C,  -- y
> > +   0x44, 0x64, 0x54, 0x4C, 0x44   -- z
> > +   }
> > +
> > +
> > +
> > +procedure _lcd_write (byte in value) is
> > +-- Clock in 8 bits of data
> > +  for 8 loop
> > +     nok_sclk = low
> > +     if ( (value & 0x80) == 0 )then
> > +        nok_sda = low
> > +     else
> > +        nok_sda = high
> > +     end if
> > +     nok_sclk = high
> > +     value = value << 1
> > +     delay_1us            -- max dataspeed is 4Mhz so delay for safety
> > +  end loop
> > +end procedure
> > +
> > +
> > +-- Write a data byte to the LCD
> > +procedure _lcd_write_data (byte in value) is
> > +   nok_dc = high     -- d/c line high for data
> > +   _lcd_write (value)
> > +end procedure
> > +
> > +
> > +
> > +-- Write a command byte to the LCD
> > +procedure _lcd_write_command (byte in value) is
> > +   nok_dc = low     -- d/c line low for command
> > +   _lcd_write (value)
> > +   nok_dc = high   -- set d/c to data
> > +end procedure
> > +
> > +
> > +
> > +
> > +-- Set the current position for data (x = 0->83, y = 0->5)
> > +procedure lcd_gotoxy (byte in xnokia, byte in ynokia) is
> > +   _lcd_write_command ( 0x40 | ( ynokia & 0x07 ))
> > +   _lcd_write_command ( 0x80 | ( xnokia & 0x7f ))
> > +end procedure
> > +
> > +
> > +
> > +
> > +--Clear the LCD data memory
> > +procedure lcd_clear_screen() is
> > +   nok_sda = low ;; Data bit is low
> > +   nok_dc = high ;; Data mode
> > +   nok_cs = low
> > +   for 6 loop  -- 6 rows
> > +      for 84 loop  -- 84 columns or 'pages'
> > +         for 8 loop --Clock for the 8 bits of the 'page'
> > +            nok_sclk = low
> > +            nok_sclk = high
> > +         end loop
> > +      end loop
> > +   end loop
> > +end procedure
> > +
> > +-- Send LCD Initialization
> > +procedure lcd_Init() is
> > +-- Set initial status of LCD pins
> > +   nok_sclk = low
> > +   nok_sda = low
> > +   nok_dc = low
> > +   nok_cs = low
> > +   nok_res = low
> > +-- Toggle LCD Reset
> > +   delay_1ms (10)
> > +   nok_res = low
> > +   delay_1ms (250)
> > +   nok_res = high
> > +-- nok_cs = high
> > +   _lcd_write_command (0x21) -- Extended commands
> > +   _lcd_write_command (0xc5) -- LCD Vop
> > +   _lcd_write_command (0x06) -- Temp coef
> > +   _lcd_write_command (0x13) -- LCD Bias 1:48
> > +   _lcd_write_command (0x20) -- Standard commands
> > +   _lcd_write_command (0x0c) -- Normal Mode
> > +-- Clear and position at top of LCD
> > +   lcd_clear_screen()
> > +   lcd_gotoxy (0,0);
> > +end procedure
> > +
> > +
> > +
> > +-- Writes a character to the display
> > +procedure print_char_5x7 (byte in letter) is
> > +   var word index = 0
> > +   var byte offset
> > +   var byte x
> > +
> > +   offset = letter - 32 ;; Fix for ascii value
> > +
> > +   for offset loop
> > +      index = index + 5
> > +   end loop
> > +
> > +   for 5 loop
> > +      x = FontLookup[index]
> > +      _lcd_write_data (x)
> > +      index = index + 1
> > +   end loop
> > +
> > +  _lcd_write_data (0) ; Add blank space between characters
> > +end procedure
> > +
> > +
> > +
> > +
> > +-- Writes an inverted character to the display
> > +procedure print_char_5x7_i (byte in letter) is
> > +   var word index = 0
> > +   var byte offset
> > +   var byte x
> > +
> > +   offset = letter - 32 ;; Fix for ascii value
> > +
> > +   for offset loop
> > +      index = index + 5
> > +   end loop
> > +
> > +   for 5 loop
> > +      x = FontLookup[index]
> > +      x = x ^ 0xFF
> > +      _lcd_write_data (x)
> > +      index = index + 1
> > +   end loop
> > +
> > +   _lcd_write_data (0xFF) ; Add blank space between characters
> > +end procedure
> > +
> > +
> > +-- print string to lcd
> > +-- same idea as print_string in print.jal library only this one works
> > +-- and with print.jal unfortunately not
> > +
> > +procedure char_string_to_nokia( byte in str[]) is
> > +   var word len = count(str)
> > +   var byte i
> > +
> > +   for len using i loop
> > +      print_char_5x7 (str[i])
> > +   end loop
> > +
> > +end procedure
> > +
> > +-- prints any bitmap graphics (for instance created with fastLCD
> > +-- http://www.amontec.com/lcd_nokia_3310.shtml) to lcd
> > +-- just create: const byte graphic[] = { graphic max 504 bytes} and call
> > +-- graphic_to_nokia( graphic)
> > +
> > +procedure graphic_to_nokia( byte in graph[]) is
> > +   var word len = count(graph)
> > +   var word i
> > +
> > +   for len using i loop
> > +      _lcd_write_data(graph[i])
> > +   end loop
> > +
> > +end procedure
> > +
> > +--
> >
> ----------------------------------------------------------------------------
> > +-- lcd'put - write one char to screen (pseudo var, enables streams)
> > +--
> >
> ----------------------------------------------------------------------------
> > +procedure lcd'put(byte in data) is
> > +;   pragma inline -- disabled due to complier bug with inline +
> > pseudovar/arrays.
> > +   _lcd_write_data(data)
> > +end procedure
> >
> > --
> > You received this message because you are subscribed to the Google Groups
> > "jallib" group.
> > To post to this group, send email to [email protected].
> > To unsubscribe from this group, send email to
> > [email protected]<jallib%[email protected]>
> .
> > For more options, visit this group at
> > http://groups.google.com/group/jallib?hl=en.
> >
> >
>
> --
> You received this message because you are subscribed to the Google Groups
> "jallib" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to
> [email protected]<jallib%[email protected]>
> .
> For more options, visit this group at
> http://groups.google.com/group/jallib?hl=en.
>
>


-- 
Sébastien Lelong
http://www.sirloon.net
http://sirbot.org

-- 
You received this message because you are subscribed to the Google Groups 
"jallib" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/jallib?hl=en.

Reply via email to