On Brad's Project Forum, MrDEB has made two posts:
If I understand your question correctly, it was suggested to use the shift.bas in swordfish. The data is from the CONST arrays. For the "data" using wireless I am going with the HT12E and HT12D chips.
I tried using a "BIT BANG" approach to shifting the TLC5916 regesters but no luck. bad idea. Even contemplated using SPI but Jon over at DDIY suggested using SHIFT.bas. Hav't got that far yet but will start "hacking" today.
and
After reading I believe your right. I need to store the bytes of data somewhere so I can input into the TLC5916 bit by bit. Going with the method of loading the bytes into a PORT would use 8 pins.
BUT it was suggested to go with the sHIFT.bas instead of SPI. WHY?? no clue but will give it a go.
Let me try and explain a little more thoroughly before I smash my head against the floor.
The Swordfish modules shift.bas and SPI.bas are similar. Shift is more generic, a little easier to use and
is the interface used by the constant current sink chip.. Either would work. Just pick one and
figure out how it works.
You don't need to use constant arrays. You seem to ascribe some magic to them that's just not there. If I have any understanding of what you are doing now, the constant current chip is driving the columns. What you need to do is:
1. Set the data for the rows in column 1.
2. Turn on column 1.
3. Delayms(10)
4. Turn off column 1.
5. Set the data for the rows in column 2
6. Turn on column 2.
7. Delayms(10)
8. Turn off column 2.
Repeat this for column 3, 4, 5 and start at top.
The column commands will be:
Shift(MSB, %10000000,8) 'Turn on column 1
Shift(MSB, %00000000,8) 'Turn off all columns
Shift(MSB, %01000000,8) 'Turn on column 2
Shift(MSB, %00100000,8) 'Turn on column 3
Shift(MSB, %00010000,8) 'Turn on column 4
Shift(MSB, %00001000,8) 'Turn on column 5
The data for the rows is just as simple. Say you want a right arrow....
Portx=%10000010 'The top and bottom dots in column 1
Portx=%01000100 'The 2nd dots in column 2
Portx=%00101000 'The 3rd dots in column 3
Portx=%00010000 'The top and bottom dots in column 4
Portx=%00000000. 'Nothing in column 5
Make this work and understand it before going all whacko. Putting the values in an array or even defining them as constants is ok after you
understand what you're doing.
I'm sorry I got sucked into trying to help you again. I cannot do this anymore. All of the steps needed have been outlined. Either you can make sense of this or not. For the sake of my sanity, I'm out.