LCDInfo.com

http://www.lcdinfo.com
It is currently Wed Jun 28, 2017 9:06

All times are UTC + 2 hours




Post new topic Reply to topic  [ 70 posts ]  Go to page Previous  1, 2, 3, 4, 5
Author Message
 Post subject:
PostPosted: Wed Jun 13, 2007 8:51 
Offline

Joined: Tue May 29, 2007 23:26
Posts: 13
Just for information, even using an external microcontroller in C (Atmega128 at 16Mhz), at 400khz I get maybe 5fps when I erase the screen with different color (So it's plain data transfert without addressing specific parts of the screen)...


Top
 Profile  
 
 Post subject:
PostPosted: Thu Jun 14, 2007 13:32 
Offline

Joined: Wed May 16, 2007 23:57
Posts: 12
Ive seen small gif animations working much faster than 5fps on a T68 itself, the welcome logo appears to show fine and relativly smooth.
Still 5fps is twice as fast as i currently achieve over lpt1 so i will give my i2c interface a try


Top
 Profile  
 
 Post subject:
PostPosted: Sat Jun 16, 2007 15:08 
Offline

Joined: Sat Jun 02, 2007 4:48
Posts: 12
Buze

I guess 400 khz is I2C fast mode.

In each frame we have 8 bits * 80*101 pixels =~ 65kbits

If we divide 400kbits/second by 65kbits/frame we get aprox. 6 frames/second

This result is compatible with your frame rate.

Is it possible to set the I2C mode in your controller? If so, you could try to use 3.4Mbit/s in the High-speed mode and see if the display responds.

My PC is back, and I'll continue with the program, post results next week. But I'm stuck with the printer port since I can't find a I2C adapter to buy...


Top
 Profile  
 
 Post subject:
PostPosted: Thu Jun 21, 2007 16:53 
Offline

Joined: Tue May 29, 2007 23:26
Posts: 13
Hmm I can't push i2c that far, I have to use an i2c switch IC to convert the logic from the 5V of the atmega to the 3V required by the screen..

I think the phone itself must use the acceleration modes of the controler, the thing seems to be quite powerful, but we're using it only in 'dumb' frame buffer mode...

I still haven't found that Nokia font; anyone got it in C array or something ?


Top
 Profile  
 
 Post subject: Atmega connection
PostPosted: Mon Sep 10, 2007 13:35 
Offline

Joined: Mon Sep 10, 2007 13:32
Posts: 3
Hello all!
Very interesting topic, thanks for info!

Buze, can you send a schematic of your LCD-ATMega128 connection and a simple code? Thanks in advance!

Cheers, Alex.


Top
 Profile  
 
 Post subject: Anyone??
PostPosted: Tue Sep 25, 2007 22:41 
Offline

Joined: Mon Sep 10, 2007 13:32
Posts: 3
Please, help! I cannot get it working.
Can I use the same schematics to connect lcd to microcontr. as for connection to LPT ? I tried this way (but omited the schottky diodes) and tried to send different addresses (0x70, 72, 74), but it doesn't respond!
I'm sure it's in working condition, I tried to put it back in the phone :)

Please, help! Any ideas?
Thanks!!!

Cheers, Alex.


Top
 Profile  
 
 Post subject: Diodes
PostPosted: Fri Sep 28, 2007 18:20 
Offline

Joined: Sat Mar 03, 2007 21:54
Posts: 20
Sorry but you cannot omit the diodes. Use 1N4148 if you cant find´the schottky ones. If you don't use the diodes the data line will be driven high all the time and the LCD won't receive the data.
Hope this helps.


Top
 Profile  
 
 Post subject:
PostPosted: Sat Oct 27, 2007 1:38 
Offline

Joined: Mon Sep 10, 2007 13:32
Posts: 3
Thanks, Cex!

I'm trying now to get it working from PC. Copied the schematics from you pdf and connected to LPT. When I launch you program and press "Init " nothing happens. The same with other buttons. But!! When I check the adress it says "OK" for 0x70. So it should work! With screen not connected to power supply it says "ERR" for all three addresses. So the screen is responding, but why then I cannot download the picture on it?
Any ideas? Could this be the diodes? The ones I'm using are not Shottky but just 1N4007.
Thanks in advance!

Cheers, Alex


Top
 Profile  
 
 Post subject: Not all the models
PostPosted: Tue Oct 30, 2007 22:50 
Offline

Joined: Sat Mar 03, 2007 21:54
Posts: 20
Sorry, but the sample program I made covered only one of the models (I think it was 0x72). I think you can search later in this thread for an updated version in Delphi that covers all models.

Anyway, if your model is not implemented, you just have to customize the code for that model (follow the instructions of one of my first replies in this thread. You have to replace the strings with the commands. If I have time I'll try to build a version that cover the three models.

If you get OK from 0x70 the diode is working well. It's just a kind of wired-AND gate.

Hope this helps.


Top
 Profile  
 
PostPosted: Wed Nov 09, 2011 4:32 
Offline

Joined: Wed Nov 09, 2011 3:39
Posts: 2
Hello,

Firstly; great forum. and soz for pulling up old threads on my first post.

Thanks to cex and whoever dumped the FLASH, this info helped me the most. I had one of the early UK t68i's. 2001/2 its an R5 0x70 and was a horrible phone. no need to review it here but safe to say the first software was a wrong'un.

Here's a little library I wrote firstly for the 1.8" SPI TFTs on ebay that are £4-ish. Semi translated enough to print text and circles from a PIC or similar "thou shalt not be named wee noe" for the 68i 0x70 version only, but useful for someone wanting the nokia font 5x7

You could speed it up by setting the address window (not a window on this chip but a start point) to be one line of text;spam into a buffer;then dump all at once. I haven't yet optimised, still using ints when chars are possible and I probably use I2C1_Stop(); a few times when not needed.

Right- sorry for the mess, I did remove about 1000 lines of chuff before posting, and its time to sleep. There's only really a few things to change if you use a C compiler, the method of I2c that's located in drawpixel() lcd_initial() setAddrWindow() define or change the constants for width height (for line wrap and pixel rejection) hope this helps someone > someone helped me :)

Oh - i also screwed my backlight because I forgot there were 2 on 1 resistor. So replaced with some out of a d900i. looks nicer. I cant believe how on the edge the phone must have been driving the originals to achieve the brightness it had

Many thanks,
eek





Oh this might help someone too. RGB to 3:3:2. It's not great, i'm new at C

Code:
 
     rred =   255; ggreen = 255;  bblue =  255;
     colour_char = ( ((rred >> 5) << 5) | ((ggreen >> 5) << 2) | (bblue >> 6))    ;



Code:
//Bodge from 1.8 SPI to t68i I2C
//define these in main code
//#define WIDTH  100
//#define HEIGHT 80
//#include <t68i_tftlib.h>
//you may need to make your own delay_ms function. _reset pin is held high

//example usage
 //     drawString( 0, 0,  "hello", 1, 0, 1);
 //     drawString( 0, 10, "t68i blah blah blah. my library is messy as a badger", 1, 0, 1);
   
  //   DrawCircle(30, 70, 16, 128, 1);
   //  DrawCircle(40, 70, 16, 128, 1);
    // DrawCircle(50, 70, 16, 128, 1);


const unsigned char font[] = {     //5x7 map
        0x00, 0x00, 0x00, 0x00, 0x00,
        0x3E, 0x5B, 0x4F, 0x5B, 0x3E,
        0x3E, 0x6B, 0x4F, 0x6B, 0x3E,
        0x1C, 0x3E, 0x7C, 0x3E, 0x1C,
        0x18, 0x3C, 0x7E, 0x3C, 0x18,
        0x1C, 0x57, 0x7D, 0x57, 0x1C,
        0x1C, 0x5E, 0x7F, 0x5E, 0x1C,
        0x00, 0x18, 0x3C, 0x18, 0x00,
        0xFF, 0xE7, 0xC3, 0xE7, 0xFF,
        0x00, 0x18, 0x24, 0x18, 0x00,
        0xFF, 0xE7, 0xDB, 0xE7, 0xFF,
        0x30, 0x48, 0x3A, 0x06, 0x0E,
        0x26, 0x29, 0x79, 0x29, 0x26,
        0x40, 0x7F, 0x05, 0x05, 0x07,
        0x40, 0x7F, 0x05, 0x25, 0x3F,
        0x5A, 0x3C, 0xE7, 0x3C, 0x5A,
        0x7F, 0x3E, 0x1C, 0x1C, 0x08,
        0x08, 0x1C, 0x1C, 0x3E, 0x7F,
        0x14, 0x22, 0x7F, 0x22, 0x14,
        0x5F, 0x5F, 0x00, 0x5F, 0x5F,
        0x06, 0x09, 0x7F, 0x01, 0x7F,
        0x00, 0x66, 0x89, 0x95, 0x6A,
        0x60, 0x60, 0x60, 0x60, 0x60,
        0x94, 0xA2, 0xFF, 0xA2, 0x94,
        0x08, 0x04, 0x7E, 0x04, 0x08,
        0x10, 0x20, 0x7E, 0x20, 0x10,
        0x08, 0x08, 0x2A, 0x1C, 0x08,
        0x08, 0x1C, 0x2A, 0x08, 0x08,
        0x1E, 0x10, 0x10, 0x10, 0x10,
        0x0C, 0x1E, 0x0C, 0x1E, 0x0C,
        0x30, 0x38, 0x3E, 0x38, 0x30,
        0x06, 0x0E, 0x3E, 0x0E, 0x06,
        0x00, 0x00, 0x00, 0x00, 0x00,
        0x00, 0x00, 0x5F, 0x00, 0x00,
        0x00, 0x07, 0x00, 0x07, 0x00,
        0x14, 0x7F, 0x14, 0x7F, 0x14,
        0x24, 0x2A, 0x7F, 0x2A, 0x12,
        0x23, 0x13, 0x08, 0x64, 0x62,
        0x36, 0x49, 0x56, 0x20, 0x50,
        0x00, 0x08, 0x07, 0x03, 0x00,
        0x00, 0x1C, 0x22, 0x41, 0x00,
        0x00, 0x41, 0x22, 0x1C, 0x00,
        0x2A, 0x1C, 0x7F, 0x1C, 0x2A,
        0x08, 0x08, 0x3E, 0x08, 0x08,
        0x00, 0x80, 0x70, 0x30, 0x00,
        0x08, 0x08, 0x08, 0x08, 0x08,
        0x00, 0x00, 0x60, 0x60, 0x00,
        0x20, 0x10, 0x08, 0x04, 0x02,
        0x3E, 0x51, 0x49, 0x45, 0x3E,
        0x00, 0x42, 0x7F, 0x40, 0x00,
        0x72, 0x49, 0x49, 0x49, 0x46,
        0x21, 0x41, 0x49, 0x4D, 0x33,
        0x18, 0x14, 0x12, 0x7F, 0x10,
        0x27, 0x45, 0x45, 0x45, 0x39,
        0x3C, 0x4A, 0x49, 0x49, 0x31,
        0x41, 0x21, 0x11, 0x09, 0x07,
        0x36, 0x49, 0x49, 0x49, 0x36,
        0x46, 0x49, 0x49, 0x29, 0x1E,
        0x00, 0x00, 0x14, 0x00, 0x00,
        0x00, 0x40, 0x34, 0x00, 0x00,
        0x00, 0x08, 0x14, 0x22, 0x41,
        0x14, 0x14, 0x14, 0x14, 0x14,
        0x00, 0x41, 0x22, 0x14, 0x08,
        0x02, 0x01, 0x59, 0x09, 0x06,
        0x3E, 0x41, 0x5D, 0x59, 0x4E,
        0x7C, 0x12, 0x11, 0x12, 0x7C,
        0x7F, 0x49, 0x49, 0x49, 0x36,
        0x3E, 0x41, 0x41, 0x41, 0x22,
        0x7F, 0x41, 0x41, 0x41, 0x3E,
        0x7F, 0x49, 0x49, 0x49, 0x41,
        0x7F, 0x09, 0x09, 0x09, 0x01,
        0x3E, 0x41, 0x41, 0x51, 0x73,
        0x7F, 0x08, 0x08, 0x08, 0x7F,
        0x00, 0x41, 0x7F, 0x41, 0x00,
        0x20, 0x40, 0x41, 0x3F, 0x01,
        0x7F, 0x08, 0x14, 0x22, 0x41,
        0x7F, 0x40, 0x40, 0x40, 0x40,
        0x7F, 0x02, 0x1C, 0x02, 0x7F,
        0x7F, 0x04, 0x08, 0x10, 0x7F,
        0x3E, 0x41, 0x41, 0x41, 0x3E,
        0x7F, 0x09, 0x09, 0x09, 0x06,
        0x3E, 0x41, 0x51, 0x21, 0x5E,
        0x7F, 0x09, 0x19, 0x29, 0x46,
        0x26, 0x49, 0x49, 0x49, 0x32,
        0x03, 0x01, 0x7F, 0x01, 0x03,
        0x3F, 0x40, 0x40, 0x40, 0x3F,
        0x1F, 0x20, 0x40, 0x20, 0x1F,
        0x3F, 0x40, 0x38, 0x40, 0x3F,
        0x63, 0x14, 0x08, 0x14, 0x63,
        0x03, 0x04, 0x78, 0x04, 0x03,
        0x61, 0x59, 0x49, 0x4D, 0x43,
        0x00, 0x7F, 0x41, 0x41, 0x41,
        0x02, 0x04, 0x08, 0x10, 0x20,
        0x00, 0x41, 0x41, 0x41, 0x7F,
        0x04, 0x02, 0x01, 0x02, 0x04,
        0x40, 0x40, 0x40, 0x40, 0x40,
        0x00, 0x03, 0x07, 0x08, 0x00,
        0x20, 0x54, 0x54, 0x78, 0x40,
        0x7F, 0x28, 0x44, 0x44, 0x38,
        0x38, 0x44, 0x44, 0x44, 0x28,
        0x38, 0x44, 0x44, 0x28, 0x7F,
        0x38, 0x54, 0x54, 0x54, 0x18,
        0x00, 0x08, 0x7E, 0x09, 0x02,
        0x18, 0xA4, 0xA4, 0x9C, 0x78,
        0x7F, 0x08, 0x04, 0x04, 0x78,
        0x00, 0x44, 0x7D, 0x40, 0x00,
        0x20, 0x40, 0x40, 0x3D, 0x00,
        0x7F, 0x10, 0x28, 0x44, 0x00,
        0x00, 0x41, 0x7F, 0x40, 0x00,
        0x7C, 0x04, 0x78, 0x04, 0x78,
        0x7C, 0x08, 0x04, 0x04, 0x78,
        0x38, 0x44, 0x44, 0x44, 0x38,
        0xFC, 0x18, 0x24, 0x24, 0x18,
        0x18, 0x24, 0x24, 0x18, 0xFC,
        0x7C, 0x08, 0x04, 0x04, 0x08,
        0x48, 0x54, 0x54, 0x54, 0x24,
        0x04, 0x04, 0x3F, 0x44, 0x24,
        0x3C, 0x40, 0x40, 0x20, 0x7C,
        0x1C, 0x20, 0x40, 0x20, 0x1C,
        0x3C, 0x40, 0x30, 0x40, 0x3C,
        0x44, 0x28, 0x10, 0x28, 0x44,
        0x4C, 0x90, 0x90, 0x90, 0x7C,
        0x44, 0x64, 0x54, 0x4C, 0x44,
        0x00, 0x08, 0x36, 0x41, 0x00,
        0x00, 0x00, 0x77, 0x00, 0x00,
        0x00, 0x41, 0x36, 0x08, 0x00,
        0x02, 0x01, 0x02, 0x04, 0x02,
        0x3C, 0x26, 0x23, 0x26, 0x3C,
        0x1E, 0xA1, 0xA1, 0x61, 0x12,
        0x3A, 0x40, 0x40, 0x20, 0x7A,
        0x38, 0x54, 0x54, 0x55, 0x59,
        0x21, 0x55, 0x55, 0x79, 0x41,
        0x21, 0x54, 0x54, 0x78, 0x41,
        0x21, 0x55, 0x54, 0x78, 0x40,
        0x20, 0x54, 0x55, 0x79, 0x40,
        0x0C, 0x1E, 0x52, 0x72, 0x12,
        0x39, 0x55, 0x55, 0x55, 0x59,
        0x39, 0x54, 0x54, 0x54, 0x59,
        0x39, 0x55, 0x54, 0x54, 0x58,
        0x00, 0x00, 0x45, 0x7C, 0x41,
        0x00, 0x02, 0x45, 0x7D, 0x42,
        0x00, 0x01, 0x45, 0x7C, 0x40,
        0xF0, 0x29, 0x24, 0x29, 0xF0,
        0xF0, 0x28, 0x25, 0x28, 0xF0,
        0x7C, 0x54, 0x55, 0x45, 0x00,
        0x20, 0x54, 0x54, 0x7C, 0x54,
        0x7C, 0x0A, 0x09, 0x7F, 0x49,
        0x32, 0x49, 0x49, 0x49, 0x32,
        0x32, 0x48, 0x48, 0x48, 0x32,
        0x32, 0x4A, 0x48, 0x48, 0x30,
        0x3A, 0x41, 0x41, 0x21, 0x7A,
        0x3A, 0x42, 0x40, 0x20, 0x78,
        0x00, 0x9D, 0xA0, 0xA0, 0x7D,
        0x39, 0x44, 0x44, 0x44, 0x39,
        0x3D, 0x40, 0x40, 0x40, 0x3D,
        0x3C, 0x24, 0xFF, 0x24, 0x24,
        0x48, 0x7E, 0x49, 0x43, 0x66,
        0x2B, 0x2F, 0xFC, 0x2F, 0x2B,
        0xFF, 0x09, 0x29, 0xF6, 0x20,
        0xC0, 0x88, 0x7E, 0x09, 0x03,
        0x20, 0x54, 0x54, 0x79, 0x41,
        0x00, 0x00, 0x44, 0x7D, 0x41,
        0x30, 0x48, 0x48, 0x4A, 0x32,
        0x38, 0x40, 0x40, 0x22, 0x7A,
        0x00, 0x7A, 0x0A, 0x0A, 0x72,
        0x7D, 0x0D, 0x19, 0x31, 0x7D,
        0x26, 0x29, 0x29, 0x2F, 0x28,
        0x26, 0x29, 0x29, 0x29, 0x26,
        0x30, 0x48, 0x4D, 0x40, 0x20,
        0x38, 0x08, 0x08, 0x08, 0x08,
        0x08, 0x08, 0x08, 0x08, 0x38,
        0x2F, 0x10, 0xC8, 0xAC, 0xBA,
        0x2F, 0x10, 0x28, 0x34, 0xFA,
        0x00, 0x00, 0x7B, 0x00, 0x00,
        0x08, 0x14, 0x2A, 0x14, 0x22,
        0x22, 0x14, 0x2A, 0x14, 0x08,
        0xAA, 0x00, 0x55, 0x00, 0xAA,
        0xAA, 0x55, 0xAA, 0x55, 0xAA,
        0x00, 0x00, 0x00, 0xFF, 0x00,
        0x10, 0x10, 0x10, 0xFF, 0x00,
        0x14, 0x14, 0x14, 0xFF, 0x00,
        0x10, 0x10, 0xFF, 0x00, 0xFF,
        0x10, 0x10, 0xF0, 0x10, 0xF0,
        0x14, 0x14, 0x14, 0xFC, 0x00,
        0x14, 0x14, 0xF7, 0x00, 0xFF,
        0x00, 0x00, 0xFF, 0x00, 0xFF,
        0x14, 0x14, 0xF4, 0x04, 0xFC,
        0x14, 0x14, 0x17, 0x10, 0x1F,
        0x10, 0x10, 0x1F, 0x10, 0x1F,
        0x14, 0x14, 0x14, 0x1F, 0x00,
        0x10, 0x10, 0x10, 0xF0, 0x00,
        0x00, 0x00, 0x00, 0x1F, 0x10,
        0x10, 0x10, 0x10, 0x1F, 0x10,
        0x10, 0x10, 0x10, 0xF0, 0x10,
        0x00, 0x00, 0x00, 0xFF, 0x10,
        0x10, 0x10, 0x10, 0x10, 0x10,
        0x10, 0x10, 0x10, 0xFF, 0x10,
        0x00, 0x00, 0x00, 0xFF, 0x14,
        0x00, 0x00, 0xFF, 0x00, 0xFF,
        0x00, 0x00, 0x1F, 0x10, 0x17,
        0x00, 0x00, 0xFC, 0x04, 0xF4,
        0x14, 0x14, 0x17, 0x10, 0x17,
        0x14, 0x14, 0xF4, 0x04, 0xF4,
        0x00, 0x00, 0xFF, 0x00, 0xF7,
        0x14, 0x14, 0x14, 0x14, 0x14,
        0x14, 0x14, 0xF7, 0x00, 0xF7,
        0x14, 0x14, 0x14, 0x17, 0x14,
        0x10, 0x10, 0x1F, 0x10, 0x1F,
        0x14, 0x14, 0x14, 0xF4, 0x14,
        0x10, 0x10, 0xF0, 0x10, 0xF0,
        0x00, 0x00, 0x1F, 0x10, 0x1F,
        0x00, 0x00, 0x00, 0x1F, 0x14,
        0x00, 0x00, 0x00, 0xFC, 0x14,
        0x00, 0x00, 0xF0, 0x10, 0xF0,
        0x10, 0x10, 0xFF, 0x10, 0xFF,
        0x14, 0x14, 0x14, 0xFF, 0x14,
        0x10, 0x10, 0x10, 0x1F, 0x00,
        0x00, 0x00, 0x00, 0xF0, 0x10,
        0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
        0xF0, 0xF0, 0xF0, 0xF0, 0xF0,
        0xFF, 0xFF, 0xFF, 0x00, 0x00,
        0x00, 0x00, 0x00, 0xFF, 0xFF,
        0x0F, 0x0F, 0x0F, 0x0F, 0x0F,
        0x38, 0x44, 0x44, 0x38, 0x44,
        0x7C, 0x2A, 0x2A, 0x3E, 0x14,
        0x7E, 0x02, 0x02, 0x06, 0x06,
        0x02, 0x7E, 0x02, 0x7E, 0x02,
        0x63, 0x55, 0x49, 0x41, 0x63,
        0x38, 0x44, 0x44, 0x3C, 0x04,
        0x40, 0x7E, 0x20, 0x1E, 0x20,
        0x06, 0x02, 0x7E, 0x02, 0x02,
        0x99, 0xA5, 0xE7, 0xA5, 0x99,
        0x1C, 0x2A, 0x49, 0x2A, 0x1C,
        0x4C, 0x72, 0x01, 0x72, 0x4C,
        0x30, 0x4A, 0x4D, 0x4D, 0x30,
        0x30, 0x48, 0x78, 0x48, 0x30,
        0xBC, 0x62, 0x5A, 0x46, 0x3D,
        0x3E, 0x49, 0x49, 0x49, 0x00,
        0x7E, 0x01, 0x01, 0x01, 0x7E,
        0x2A, 0x2A, 0x2A, 0x2A, 0x2A,
        0x44, 0x44, 0x5F, 0x44, 0x44,
        0x40, 0x51, 0x4A, 0x44, 0x40,
        0x40, 0x44, 0x4A, 0x51, 0x40,
        0x00, 0x00, 0xFF, 0x01, 0x03,
        0xE0, 0x80, 0xFF, 0x00, 0x00,
        0x08, 0x08, 0x6B, 0x6B, 0x08,
        0x36, 0x12, 0x36, 0x24, 0x36,
        0x06, 0x0F, 0x09, 0x0F, 0x06,
        0x00, 0x00, 0x18, 0x18, 0x00,
        0x00, 0x00, 0x10, 0x10, 0x00,
        0x30, 0x40, 0xFF, 0x01, 0x01,
        0x00, 0x1F, 0x01, 0x01, 0x1E,
        0x00, 0x19, 0x1D, 0x17, 0x12,
        0x00, 0x3C, 0x3C, 0x3C, 0x3C,
        0x00, 0x00, 0x00, 0x00, 0x00,
};


const char initstring[127] = {

0x70,0x03,0x01,0x02,0x00,0x00,0x06,0x01,0x00,0x0E,0x4F,0x0F,0x10,0x10,0x02,0x11,
0x17,0x12,0x25,0x13,0x01,0x15,0x00,0x16,0x1C,0x34,0x2F,0x35,0x73,0x36,0x04,0x37,
0x31,0x38,0x06,0x39,0x2C,0x3A,0x24,0x40,0x08,0x41,0x00,0x42,0x07,0x43,0x08,0x44,
0x09,0x45,0x0A,0x46,0x0B,0x47,0x0D,0x48,0x10,0x49,0x00,0x4A,0x05,0x4B,0x07,0x4C,
0x08,0x4D,0x09,0x4E,0x0A,0x4F,0x0C,0x50,0x10,0x51,0x00,0x52,0x07,0x53,0x09,0x54,
0x10,0x55,0x00,0x56,0x06,0x57,0x07,0x58,0x08,0x59,0x09,0x5A,0x0A,0x5B,0x0B,0x5C,
0x10,0x5D,0x00,0x5E,0x06,0x5F,0x07,0x60,0x08,0x61,0x09,0x62,0x0A,0x63,0x0B,0x64,
0x10,0x65,0x00,0x66,0x07,0x67,0x09,0x68,0x10,0x00,0x02,0x04,0x00,0x05,0x00 };


const unsigned char width = WIDTH;
const unsigned char height = HEIGHT;



void setAddrWindow(char x, char y)
{
        I2C1_Start();
          I2C1_Wr(0x70);  //dev id
          I2C1_Wr(0x04);  //scanrow_pos x cmd
          I2C1_Wr(x);  //data x  (0x1B offset on 72-74 models only)
          I2C1_Wr(0x05);  //scanrow_pos y cmd
          I2C1_Wr(y);  //data
      //  I2C1_Stop();  //try to remove this
         
        I2C1_Start();      //reissue
          I2C1_Wr(0x70);
          I2C1_Wr(0x8C);
         
}


void lcd_initial()
{
  char i;

  I2C1_Start();
              for (i=0;i<127;i++){
                I2C1_Wr(initstring[i]);
              }
  I2C1_Stop();
             delay_ms(118);

  I2C1_Start();     //power_on
            I2C1_Wr(0x70);
            I2C1_Wr(0x38);
            I2C1_Wr(0x02);
            I2C1_Wr(0x00);
            I2C1_Wr(0x12);
  I2C1_Stop();

           delay_ms(118);

  I2C1_Start();     //contrast
            I2C1_Wr(0x70);
            I2C1_Wr(0x39);
            I2C1_Wr(175);    //value? rom dump says so

  I2C1_Stop();

}

void drawPixel(char x, char y, char color) {
  if ((x >= width) || (y >= height)) return;

  setAddrWindow(x,y);
  I2C1_Wr(color);

}

void fillScreen(char color) {
   int x = 0;
   int y = 0;

  setAddrWindow(0, 0);   //set ram to whole screen

  for (x=0; x < width; x++) {
    for (y=0; y < height; y++) {

      I2C1_Wr(color);

    }
  }
}

//void fillRect(char x, char y, char w, char h, unsigned int color) {
//
//  setAddrWindow(x, y);
//  // setup for data
//  cs=0;rs=1;
//
//  for (x=0; x < w; x++) {
//    for (y=0; y < h; y++) {
//      spi1_write(color >> 8);
//      spi1_write(color);
//    }
//  }
//  cs=1;
//}


// build character
void drawChar(char x, char y, char c, char color, char colorover, char size) {

 unsigned char i =0;
 unsigned char line;
 unsigned char j = 0;
                  //c = char in dec i.e " = 22

//if (c == ' ') return;

for (i =0; i<5; i++ ) {
    line = font[+(c*5)+i];

    for (j = 0; j<8; j++) {
      if (line & 0x1) {
        if (size == 1) // default size
          drawPixel(x+i, y+j, color);
        else {  // big size
        //  fillRect(x+i*size, y+j*size, size, size, color);
        }
      }
      else{


     // if (colorover > 0){
         //  if (size == 1) // default size
          //    drawPixel(x+i, y+j, colorover);
        //    else {  // big size
           //   fillRect(x+i*size, y+j*size, size, size, colorover);
       //     }
    //  }

      }
      line >>= 1;
    }
  }

}
// build string with line wrap
void drawString(char x, char y, char c[], char color, char colorover, char size) {
  while (c[0] != 0) {
    drawChar(x, y, c[0], color, colorover, size);
    x += size*6;
    c++;
    if (x + 5 >= width) {
      y += 10;
      x = 0;
    }
  }
}

//void drawVerticalLine(char x, char y, char length, unsigned int color)
//{
//  if (x >= width) return;
//  if (y+length >= height) length = height-y-1;
//
//  drawFastLine(x,y,length,color,1);
//}
//
//


//void drawHorizontalLine(char x, char y, char length, unsigned int color)
//{
//  if (y >= height) return;
//  if (x+length >= width) length = width-x-1;
//
//  drawFastLine(x,y,length,color,0);
//}


//void arc(double rad, int xposd, int yposd){
//  int x2;
//  int p;
//  int y,x;
//
//  x2=(rad*0.7071);
//  p= (1.25-rad);
//  y= rad;
//
//  for (x=0; x <=x2; x++) {
//   drawpixel(x + xposd , y + yposd, GREEN);
//   if(p > 0) {
//    y--;
//    p = p + (2*(x-y)+5);
//   }
//   else
//    p = p +(2*x+3);
// }
//}


//void line(char x0, char y0, char x1, char y1, unsigned int color,char accuracy){
//
//   int dx,dy,sx,sy,err,e2;
//
//   dx = abs(x1-x0);
//   dy = abs(y1-y0);
//
//   if (x0 < x1) { sx = 1;} else {sx = -1;}
//   if (y0 < y1) { sy = 1;} else {sy = -1;}
//
//   err = dx-dy;
//
//   do{
//     drawpixel(x0,y0,color);
//     if (x0 == x1 || y0 == y1) break;
//     e2 = (accuracy * 10)*err;
//     if (e2 > -dy){
//       err = err - dy;
//       x0 = x0 + sx;
//     }
//     if (e2 <  dx) {
//       err = err + dx;
//       y0 = y0 + sy;
//     }
//
//   }while(1);
//}
//
void DrawCircle(int x, int y, char r, char color, char density){

      static const double PI = 3.1415926535;
      double i, angle, x1, y1;

      for(i = 0; i < 360; i += density){
            angle = i ;
              x1 = r * cos(angle * PI / 180);
              y1 = r * sin(angle * PI / 180);
            drawpixel(x + x1, y + y1, color);
      }

}
will post a pic soon

.. soon http://www.dropbox.com/gallery/36103742/1/t68i?h=5a8024


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 70 posts ]  Go to page Previous  1, 2, 3, 4, 5

All times are UTC + 2 hours


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Group