Small library for controll the TTL74HC595, who is a SerialIn-ParallelOut
ttl_74HC595.cpp@1:db4af8094f4c, 2011-05-06 (annotated)
- Committer:
- trombettamichele
- Date:
- Fri May 06 18:58:53 2011 +0000
- Revision:
- 1:db4af8094f4c
- Parent:
- 0:d78bcf13e9ed
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
trombettamichele | 1:db4af8094f4c | 1 | #include "mbed.h" |
trombettamichele | 1:db4af8094f4c | 2 | #include "ttl_74HC595.h" |
trombettamichele | 1:db4af8094f4c | 3 | // Small library for controll the TTL74HC595, who is a SerialIn-ParallelOut |
trombettamichele | 1:db4af8094f4c | 4 | // Created by Michele Trombetta |
trombettamichele | 1:db4af8094f4c | 5 | // Copyright 2010 5OFT. All rights reserved. |
trombettamichele | 1:db4af8094f4c | 6 | |
trombettamichele | 1:db4af8094f4c | 7 | ttl_74HC595::ttl_74HC595(PinName DS, PinName SH_CLK, PinName ST_CLK, PinName OE): _DS(DS), _SH_CLK(SH_CLK), _ST_CLK(ST_CLK), _OE(OE) { |
trombettamichele | 1:db4af8094f4c | 8 | |
trombettamichele | 1:db4af8094f4c | 9 | } |
trombettamichele | 1:db4af8094f4c | 10 | |
trombettamichele | 1:db4af8094f4c | 11 | void ttl_74HC595::send_data(unsigned char data) { |
trombettamichele | 1:db4af8094f4c | 12 | for (char i=0; i<8; i++) { |
trombettamichele | 1:db4af8094f4c | 13 | _SH_CLK = 0; |
trombettamichele | 1:db4af8094f4c | 14 | _DS = data & 0x01; |
trombettamichele | 1:db4af8094f4c | 15 | data >>= 1; |
trombettamichele | 1:db4af8094f4c | 16 | _SH_CLK = 1; |
trombettamichele | 1:db4af8094f4c | 17 | } |
trombettamichele | 1:db4af8094f4c | 18 | } |
trombettamichele | 1:db4af8094f4c | 19 | |
trombettamichele | 1:db4af8094f4c | 20 | void ttl_74HC595::store_data() { |
trombettamichele | 1:db4af8094f4c | 21 | _ST_CLK = 1; |
trombettamichele | 1:db4af8094f4c | 22 | _ST_CLK = 0; |
trombettamichele | 1:db4af8094f4c | 23 | } |
trombettamichele | 1:db4af8094f4c | 24 | |
trombettamichele | 1:db4af8094f4c | 25 | void ttl_74HC595::send(unsigned char data) { |
trombettamichele | 1:db4af8094f4c | 26 | send_data(data); |
trombettamichele | 1:db4af8094f4c | 27 | store_data(); |
trombettamichele | 1:db4af8094f4c | 28 | } |
trombettamichele | 1:db4af8094f4c | 29 | |
trombettamichele | 1:db4af8094f4c | 30 | void ttl_74HC595::setOE(bool enable) { |
trombettamichele | 1:db4af8094f4c | 31 | _OE = enable ? 0 : 1; |
trombettamichele | 0:d78bcf13e9ed | 32 | } |