Shiftout DataPin, ClkPin, MSBFIRST,[ShiftVar\16]
DataPin - Izlaz uC na koji povezuješ DS pin od hc595 (u primeru je to PORTC.0 )
ClkPin - Izlaz uC na koji povezuješ SH_CP pin od hc595 (u primeru je to PORTC.1 )
MSBFIRST - prvo šalje "most significant bit"
ShiftVar - Promenljiva koju želiš da postaviš na izlaz od hc595
\16 - broj bita koji želiš da pošalješ. u ovom slučaju je to 16 (tj celu promenljivu tipa word (16bita))
Pulsout Strobe,10
Strobe - pin uC na koji povezuješ ST_CP pin od hc595 (u primeru je to PORTC.2)
10 - vreme koliko će na Strobe izlazu (PORTC.2)biti logička 1. u primeru 10ms. Kada pošalješ vrednos sa shiftout , da bi se pojavila na izlazu hc595 moraš da odradiš tranziciju sa nule na jedinicu na pinu ST_CP. za to služi ova naredba. isto ifekat bi bio da si pisao sledeće
Code:
PORTC.2 = 1
pause 10
PORTC.2 = 0
Nema potrebe da angažuješ nove pinove uC kada možeš da povežeš još dva hc595 na vec postojece (ili još 4,5,6...)
EDIT: Grešiš u tome što je promenljiva ShiftVar tipa word a to znači max 16 bita.
131071 je 1FFFF heksadecimalno. da bi to poslao moraš da podeliš na dve promenljive
Code:
ShiftVarLow16 = $FFFF 'naravno pre toga definišeš ShiftVarLow16 i ShiftVarHi16 kao word
ShiftVarHi16 = $0001
Shiftout DataPin, ClkPin, MSBFIRST,[ShiftVarHi16\8]' 8 jer si dodao samo jedan hc595
Shiftout DataPin, ClkPin, MSBFIRST,[ShiftVarLow16\16]
Pulsout Strobe,10
[Ovu poruku je menjao Genie_1984 dana 15.01.2013. u 00:07 GMT+1]