- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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