This provides a high level interface:
- Makes it easier to get started.
- Discovers the devices.
 
- Provides useful defaults.
 
 
- Provides most features.
 
- Provides operations at the feature level (like "turn on channel 4").
- Manages the subfields and state of the device registers.
 
- i.e.: only update the bits to turn channel 5 on, without stomping the other channels.
 
- So you don't have to, which minimizes bugs.
 
- Optimizes some communications with the device.
 
 
- Allows the friendlier "." notation, so you don't have to remember when to use "->".
 
- Provides a low-level interface if you don't want the state managed.
 
Requirements
- An Arduino that is I2C capable, and works with the Wire library.
 
- Arduino IDE version 1.0.5, or 1.0.4. There is a bug that causes a problem in 1.0.6.
 
- At least one TLC59116, wired up and hooked to the default I2C pins of your Arduino.
- Something on the outputs, otherwise it's real boring.
 
 
I have not tested this with any Makefile setups. Please send me info on how that works for you.
Installation
- Download the library zip file.
 
- Add the library to the Arduino IDE
- (cf. the official instructions)
 
- For Arduino IDE 1.0.5:
Sketch -> Import Library -> Add Library 
- Then select the downloaded 
arduino_TLC59116.zip. 
 
- For earlier versions, follow the "Manual" section of http://www.arduino.cc/en/guide/libraries.
 
 
Getting Started
- Wire things up. Someone should write a how-to!
 
- Try the examples.
- "examples/basic_usage_single" is the same code as show in the "Usage" section of TLC59116 Class
- Open it.
 
- Do the Upload thing.
 
- Oooh. Blinky light.
 
 
- "examples/test_features" wants you to interact with the serial-console.
- Type single-letter commands into the top box, and click send. Try "?".
 
- It has a bunch of behaviors, useful for testing the TLC59116 and your wiring prowess.
 
 
- "examples/allfeatures" is the source of most of the examples in the documenation.
- It compiles.
 
- It probably is not useful to actually run.
 
- But, you can copy & paste from it.
 
 
- "examples/tlc59116blink" is what I use to do quick tests of wired-up devices.
- Read it's comments!
 
 
 
- Browse the TLC59116 Class documentation page:
- The "Protocol" section describes the order you have to do things.
 
- Further down, the Public Methods section has groups of operations (like "Digital" and "PWM").
- (you probably want to ignore that first list of methods)
 
- There's usually a short description of each method.
 
- For example-code, explanations, and more details, click on the method-name.
 
 
 
Documentation
HTML documentation, with examples, and explanation:
Developing
- Everything should be in the github repository.
 
- Clone it to mess around. Fork it to keep track of the messing around.
 
- I'm happy to consider pull-requests, especially for bug-fixes, documentation issues, and missing functions.
- Please maintain a high-level of documentation.
 
 
- Requirements for developing:
- Source control is by git, with a repository on github.
 
- Documentation is generated by doxygen: 
doxygen Doxyfile 
- The .zip files are constructed by gnu-make.
 
- Several other files are constructed by gnu-make (e.g. 
README.html) 
- The default 
make target constructs everything.
- It tries to be tolerant of missing tools.
 
- It touches up a few files to insert the git-branch as the version.
 
 
- Releasing to github is by rules in the makefile, signaled by a flag file ".master-is-release"
 
 
Credits
- I2C scan function adapted from Nick Gammon (written 20th April 2011), http://www.gammon.com.au/forum/?id=10896&reply=6#reply6. Thanks Nick!