coredevice/TCA6424A: convert 'outputs' value to little endian. Closes #437

This commit is contained in:
Sebastien Bourdeauducq 2016-05-22 06:53:18 -07:00
parent 852ddb7796
commit 3d6f55104b
2 changed files with 13 additions and 1 deletions

View File

@ -42,6 +42,13 @@ unreleased [2.x]
takes into account the repository revision field.
1.1 (unreleased)
----------------
* TCA6424A.set converts the "outputs" value to little-endian before programming
it into the registers.
1.0
---

View File

@ -108,5 +108,10 @@ class TCA6424A:
A bit set to 1 means the TTL is an output.
"""
outputs_le = (
((outputs & 0xff0000) >> 16) |
(outputs & 0x00ff00) |
(outputs & 0x0000ff) << 16)
self._write24(0x8c, 0) # set all directions to output
self._write24(0x84, outputs) # set levels
self._write24(0x84, outputs_le) # set levels