the reason is simple... bits are shifted one after the other.
Lets say we want to send this pattern to 8 outputs
1000 1000
shiftout shift one bit a the time... of course, it's serial stuff
Shiftregister out during process
start
0000 0001
0000 0010
0000 0100
0000 1000
0001 0001
0010 0010
0100 0100
1000 1000
end
this is why you see some blink. The only way to avoid this, is to use Latchs that will refresh outputs state only at the end of shiftout.. something like 74HC373...
OR change those shit register to something better like PCF8574 or MCP23016 (do you remind when i talk about those chip the first time???
). I prefer the last option... take less pins, easier, faster, cheaper, better.
Last edited by mister_e; - 15th February 2005 at 17:08.
Steve
It's not a bug, it's a random feature.
There's no problem, only learning opportunities.
Bookmarks