I'm really sorry that I'm still discussing with you
I don't have a problem with that...as long as you are prepared to put in the effort to understand....
What do you mean with '1 Current Source'?
There are 12 Current Sources CS0 - CS11.
Try to forget about crossplexing and charlieplexing for a moment and think about how a matrix of LEDs is scanned.
Here is a good explanation of how it works: http://www.franksworkshop.com.au/Electronics/RGB/RGB.htm
This means that it is only possible for there to be 11 LEDs on at any one time. (in this case)
Then... we take into account that each LED is also PWM driven (you can look that one up yourself
But in your first programm the current source register is 0xFF so 30mA per Led, and then you have 330mA and not 235?
The current source register is not setting the amount of current drawn by each LED it is setting the maximum possible current that CAN be drawn (allowing dimming of the display)
The amount of current drawn is determined by the circuit characteristics but is LIMITED to a MAXIMUM of 30mA by the CS Register.
But if the Current Source Register is 0xFF then all the LEDs together draw 11x30mA so 330mA and that three times (three screens) so 990mA!
Isn't there any solution to have max. 500mA for the three screens together?
The obvious way is to use LEDs that draw less current....if you can find them.
Limit the current in the Current Source Register to 15mA (0x0F) but you'll have to make sure in software that this doesn't change.