From: Paul S. <pa...@pj...> - 2010-02-01 20:37:12
|
> Seems like the ideal thing to do would be to have a copy of the port, > then only flip the bits that need to be flipped, then write. Actually, I did exactly that in a commit to the hardwareAbstraction branch recently. > I think it might make more sense to make a separate StandardFirmata > for boards where the pin/port mappings are cleaner, (i.e. 8-bit ports > with sequential pin numbers). In the latest hardware abstraction code, which is committed into the branch now, I created two inline functions that abstract the 8 bit port access. They're in Boards.h. If a board has 8 bit ports that can be accessed efficiently, the abstraction for that board can optionally add board-specific code to those inline functions. Otherwise, a default implementation using 8 digitalRead and 8 digitalWrite is used. Currently Arduino is the only board using this. > If the IS_PIN_* stuff can be worked out to be real clean, then > separate versions of StandardFirmata would not be necessary. That is my goal !! :-) -Paul |