LCDInfo.com http://forum.lcdinfo.com/ |
|
Interfacing a SonyEricsson T68 display http://forum.lcdinfo.com/viewtopic.php?f=6&t=779 |
Page 5 of 5 |
Author: | buze [ Wed Jun 13, 2007 8:51 ] |
Post subject: | |
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)... |
Author: | AJ [ Thu Jun 14, 2007 13:32 ] |
Post subject: | |
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 |
Author: | maujabur [ Sat Jun 16, 2007 15:08 ] |
Post subject: | |
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... |
Author: | buze [ Thu Jun 21, 2007 16:53 ] |
Post subject: | |
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 ? |
Author: | gud_alex [ Mon Sep 10, 2007 13:35 ] |
Post subject: | Atmega connection |
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. |
Author: | gud_alex [ Tue Sep 25, 2007 22:41 ] |
Post subject: | Anyone?? |
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. |
Author: | cex [ Fri Sep 28, 2007 18:20 ] |
Post subject: | Diodes |
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. |
Author: | gud_alex [ Sat Oct 27, 2007 1:38 ] |
Post subject: | |
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 |
Author: | cex [ Tue Oct 30, 2007 22:50 ] |
Post subject: | Not all the models |
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. |
Author: | eekcage [ Wed Nov 09, 2011 4:32 ] |
Post subject: | Re: Interfacing a SonyEricsson T68 display to a PIC MCU in C |
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 will post a pic soon//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); } } .. soon http://www.dropbox.com/gallery/36103742/1/t68i?h=5a8024 |
Page 5 of 5 | All times are UTC + 2 hours |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |