Hans-Christoph Steiner wrote:
On Oct 6, 2006, at 9:53 AM, Martin Peach wrote:
...
In the Pd_firmware.pde code the pins are set on at a time even if the
data is sent as two bytes:
for(i=0; i<7; ++i) {
mask = 1 << i;
if( (digitalPinStatus & mask) && !(pwmStatus & mask) ) {
digitalWrite(i, inputData & mask);
}
}
I am definitely open to suggestions as to how to make the code work
better. I've been focused on the protocol design, so little
optimization has happened. In this case, its not quite as simple as
just getting the byte from the serial port and writing it to the
ports. If a PWM is running, then you don't want to write to that
port, that's what pwmStatus is doing.
From what I read about the functions that write a byte at a time to
the digital pins, you have to have all of the pins set to OUTPUT in
order to use them. But I could be wrong.
In assembly you can definitely write bytes to the ports, the PWM pins
and any other special-purpose pins just ignore the values. In the PIC
version that's what I do, because the bit-write instructions don't work
properly unless all the pins are outputs. I guess it's Wiring that needs
looking at...
Martin
_______________________________________________
PD-list@iem.at mailing list
UNSUBSCRIBE and account-management ->
http://lists.puredata.info/listinfo/pd-list