# How to debug a circuit that uses Charlieplexing and PWM with LEDs under ISIS?

Using mikroC and Proteus ISIS, I have built a circuit that uses a PIC12F629 (link to datasheet PDF). It controls several LEDs using Charlieplexing technique (and additionally PWM them to change their brightness over the time).

Example:

LED1 100%
LED2 75%
LED3 0%


A few ms after :

LED1 75%
LED2 100%
LED3 25%


If I run the simulation step by step, everything works fine (LEDs turn on and off at each step when they are supposed to).

However if I run the simulation at full speed, the only result I get are the LEDs blinking like crazy (they turn on/off randomly). Anyway, I know that if I run circuit using real components, result should be totally different (like in my first example, with percentages).

Here is what I think happen: LEDs turn on/off very fast under ISIS, but not fast enough to recreate the persistence of vision effect as in real life.

Is it possible, using ISIS, to simulate what i would get in real life?

It would be nice, for example, to have a special type of LED component in ISIS (to place on the circuit) that would render every 50ms (not only when the status has changed). It would render LEDs brighter or darker depending the signal since last check (e.g., signal was "high" 90% of the time since last 50ms, render as bright red, signal was "high" 10% of the time, render dark red, and so on).

• Since you are multiplexing the leds, you cant achieve 100% brightness. Only one LED will be on at a time, and as soon as you switch to turn on another led, the remaining leds turn off. I've used Proteus once before, and their animated models like the led, only have 2 states, on or off. It wont give you the persistence you are looking for. This may have changed over the years, but I doubt it. – efox29 Nov 27 '13 at 23:06