Flickering in 7segment display

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Anonymous
Not applicable

We are doing new development using Cypress controllers. the controller is CY 8C4124Ax1-443, 44 pin TQFP ic. We made a digital thermostat using this controller. 13 nnos of capsense keys with backlit is provided. when back lit LED & 4nos of 7 segment LEDs are switched together we face flickering in dispaly & backlit leds. The uart operation is also not ok. Some time the controller hangs.

   

Please resolve these problems. we are have few days left for completing the job.

   

Regards,

   

Sasidharan

0 Likes
1 Solution
Bob_Marlowe
Level 10
Level 10
First like given 50 questions asked 10 questions asked

No Mr. Just "Bob"

   

The display needs to be timed very regularly or the naked eye will see the digits flicker.

   

You started to program that, but you did not finish it.

   

Write an interrupt handler for a timer which runs 100 * NumberofDigits, so that the display doesn't flicker.

   

In the interrupt handler:

   

Clear the interrupt cause (Timer_ClearInterrupt() API)

   

clear the current 7-segment digit

   

Change to the next digit selected

   

write the (now) current 7-segment digit pattern

   

This way, all the timing is kept in the interrupt handler which runs independently from other functions in main().

   

 

   

You might experience some "ghost" segment lightning because the transistor driver for the selection might be slow. Check that in darkness. If there are "Ghost" segments put a few µs delay between the change of digit selected.

   

 

   

There is a calculation error for the temperature. you will need intermediate float arithmetic because (5/9) will result in 0 (zero) and (9/5) will give 1.

   

 

   

Bob

View solution in original post

0 Likes
3 Replies
Bob_Marlowe
Level 10
Level 10
First like given 50 questions asked 10 questions asked

Welcome in the forum, Sasidharan.

   

Can you please post your complete project, so that we all can have a look at all of your settings. To do so, use
Creator->File->Create Workspace Bundle (minimal)
and attach the resulting file.

   

 

   

Bob

0 Likes
lock attach
Attachments are accessible only for community members.
Anonymous
Not applicable

Dear Mr Bob,

   

 

   

Greetings!

   

Please check attachments for details asked for.

   

 

   

Thank you

   

Best Regards

   

Sasidharan Ps

   

+91-9895281311

0 Likes
Bob_Marlowe
Level 10
Level 10
First like given 50 questions asked 10 questions asked

No Mr. Just "Bob"

   

The display needs to be timed very regularly or the naked eye will see the digits flicker.

   

You started to program that, but you did not finish it.

   

Write an interrupt handler for a timer which runs 100 * NumberofDigits, so that the display doesn't flicker.

   

In the interrupt handler:

   

Clear the interrupt cause (Timer_ClearInterrupt() API)

   

clear the current 7-segment digit

   

Change to the next digit selected

   

write the (now) current 7-segment digit pattern

   

This way, all the timing is kept in the interrupt handler which runs independently from other functions in main().

   

 

   

You might experience some "ghost" segment lightning because the transistor driver for the selection might be slow. Check that in darkness. If there are "Ghost" segments put a few µs delay between the change of digit selected.

   

 

   

There is a calculation error for the temperature. you will need intermediate float arithmetic because (5/9) will result in 0 (zero) and (9/5) will give 1.

   

 

   

Bob

0 Likes