How to turn off the light of newhaven lcd

06 Aug 2012

Hi all

I'm working with new haven lcd and it operated well, I displayed what I want on it and I to put it into sleep mode and vice versa, it's also ok ( SSD1963 has sleep mode command and normal mode command: 0x10, 0x11)

The problem here is I want turn off the light of the screen and the lcd will look like when it isn't powered.I don't know or can not find the command of SSD1963 to do this

I read all commands of SSD1963 and try some command but it's not work Don't i misunderstand something or some commands of SSD1963

Can you show me to do something else to solve this problem?

Thanks you

ttnghiabk

06 Aug 2012

Backlights are typically not controlled by the display controller (ssd1963 in this case). Check the datasheet of the lcd module and look for pins on the external connector named led_anode, led_cathode, b/l enable or similar. You may then be able to connect this pin to one of the digitalout pins of mbed and switch the backlight on or off. Note that the required current and/or voltage may be too high for the mbed and you may have to use a buffer/driver between mbed and the backlight pin. Depending on the lcd you may also be able to use one of mbed PWM output pins to control the backlight intensity of the lcd and gradually increase/decrease it instead of hard on/off switching.

06 Aug 2012

thanks Wim.I appreciate your reply

right, as you said, there's a PWM output pins to control the backlight intensity on the lcd and we use pwm output on LPC1768 to control the intensity of the light on our screen and i did it

By the way,i want to do an unlocked background module on my screen as we do on our mobile phone, our finger slide on the button unlocked background module and our screen enter the normal mode from the sleep mode but how can i make intensity of unlocked background module better than other part of the screen?.

you can recommend me any solution, can't you?

06 Aug 2012

I'm not sure that I understand your question correctly, but if you want to make a screen appear darker you can always change the color of the pixels. So instead of writing rgb=255,255,255 (white) you may write rgb=128,128,128 (grey). Scaling the rgb values of every pixel will reduce the intensity. I havent studied the controller datasheet, but some have gammatables that may be manipulated to create this effect also without rewriting the entire display memory.

08 Aug 2012

nowadays, we use many modern mobile phones like iphone, sam sung galaxay and so forth. When we need to used it to send message, call some one or do something else, the first thing we have to do is to unlock the screen, when we touch the screen, a button( has shape like an arrow) appears and we use our finger move this button sliding horizontally and the screen is unlocked. After a few second, if we don't have an effect on the screen, it's automatically locked and I did this thing( all as we do on a smart phone)

what i mean is:

when we're unlocking the screen, only does the toolbar contain the button and it appear and an other part of the screen much darker than them. This is what i want to do

Sorry for making you misunderstand. Your recommendation is quite smart but it doesn't satisfy my task

anything else solution?

Thank you

07 Aug 2012

The effect you describe can be created by drawing the arrow at normal color intensity and the rest of the screen at low intensity. So at rest the screen is off and backlight is off, the cpu scans the touchscreen and waits for a touch. When you touch it, the backlight is turned on, the ssd1963 switches to normal mode, you draw a low intensity background and a normal intensity arrow. The arrow is constantly redrawn to follow your finger. The background behind the moving arrow has to be redrawn at low intensity. Depending on the lcd controller you may have the possibility to use special features like an overlay that can be used to show icons or sprites.

09 Aug 2012

Can you tell more detail about normal color intensity and low color intensity? Thanks

I try doing as you said:"So instead of writing rgb=255,255,255 (white) you may write rgb=128,128,128 (grey). Scaling the rgb values of every pixel will reduce the intensity" but the intensity of pixel is not darker, it just changes the color of pixel. For example rgb = AA5533, i reduces it by writing rgb = 7772200 It's not darker, it looks like red but lighter

I mean I haven't still understood how to make pixel darker.

09 Aug 2012

Tran Nghia wrote:

I try doing as you said:"So instead of writing rgb=255,255,255 (white) you may write rgb=128,128,128 (grey). Scaling the rgb values of every pixel will reduce the intensity" but the intensity of pixel is not darker, it just changes the color of pixel. For example rgb = AA5533, i reduces it by writing rgb = 7772200 It's not darker, it looks like red but light

You have to scale each of the three rgb components by the same factor. So rgb = 0xAA,0x55,0x33 becomes rgb = 0x55,0x2A,0x19 when scaled by 2. This way you reduce the intensity (brightness) without changing the color.

10 Aug 2012

Oh yeah! I did it again due to you

I misunderstood what you mean. When you told me to reduce the intensity of color of pixel, I implemented this by using subtraction for each pixel( I looked like a foolish guy)

Your solution is not perfect because of losing more time to put my background picture on the screen one more time when my screen comes into sleep mode and vice versa( It takes me 0.823545 seconds to put a 240x320 picture on the screen(too much time) ) but at this moment, it’s ok

In my code, I using “Busout DB(p10->p17) “like data bus or command bus when host controller write data or command to SSD1963 and I found that The command “ DB.write( uint8_t ) ” is an assassin making my LPC1768 communicate with SSD1963 more slowly. The pins of mbed controller is arranged not on a port of LPC1768, so I think the function “DB.write” takes a lot of time to arrange . Is there any solution to overcome it?

Hoping one more precious recommendation from you