|
@@ -82,3 +82,36 @@ void shiftOut (uint8_t dPin, uint8_t cPin, uint8_t order, uint8_t val) |
|
|
digitalWrite (cPin, LOW) ; |
|
|
digitalWrite (cPin, LOW) ; |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* |
|
|
|
|
|
* shiftOut: |
|
|
|
|
|
* Shift data out to a clocked source |
|
|
|
|
|
********************************************************************************* |
|
|
|
|
|
*/ |
|
|
|
|
|
|
|
|
|
|
|
void shiftOutWithDelay (uint8_t dPin, uint8_t cPin, uint8_t order, uint8_t val, uint8_t delay) |
|
|
|
|
|
{ |
|
|
|
|
|
int8_t i; |
|
|
|
|
|
|
|
|
|
|
|
if (order == MSBFIRST) |
|
|
|
|
|
for (i = 7 ; i >= 0 ; --i) |
|
|
|
|
|
{ |
|
|
|
|
|
digitalWrite (dPin, val & (1 << i)) ; |
|
|
|
|
|
delayMicroseconds (delay) ; |
|
|
|
|
|
digitalWrite (cPin, HIGH) ; |
|
|
|
|
|
delayMicroseconds (delay) ; |
|
|
|
|
|
digitalWrite (cPin, LOW) ; |
|
|
|
|
|
delayMicroseconds (delay) ; |
|
|
|
|
|
} |
|
|
|
|
|
else |
|
|
|
|
|
for (i = 0 ; i < 8 ; ++i) |
|
|
|
|
|
{ |
|
|
|
|
|
digitalWrite (dPin, val & (1 << i)) ; |
|
|
|
|
|
delayMicroseconds (delay) ; |
|
|
|
|
|
digitalWrite (cPin, HIGH) ; |
|
|
|
|
|
delayMicroseconds (delay) ; |
|
|
|
|
|
digitalWrite (cPin, LOW) ; |
|
|
|
|
|
delayMicroseconds (delay) ; |
|
|
|
|
|
} |
|
|
|
|
|
} |