Hi, sorry to bring this thread back, but I have a question (at the end) that is relevant.
I'm using softserial to talk inverted 7E1, 1200 baud (SDI-12 protocol). I used the code changes from this thread
and got the error:
/var/folders/pk/zzpvz5bs0d589468n2bxsyz00000gn/T//ccPjw17q.s: Assembler messages:
/var/folders/pk/zzpvz5bs0d589468n2bxsyz00000gn/T//ccPjw17q.s:243: Error: register r24, r26, r28 or r30 required
Similar to the first post here.
I've applied the fix recommended here:
of changing
: "+r" (delay), "+a" (tmp)
to
: "+w" (delay), "+a" (tmp)
in the tunedDelay function.
My question is why did I need to make this fix in my copy of SoftwareSerial? The regular SoftwareSerial packaged in arduino 1.0.1 does not have this change and compiles fine. diff-ing the code, I made no changes to SoftwareSerial beyond the recv() and write() functions to convert to 7E1.