Go Down

Topic: [Patch] cores/arduinowiring_digital.c (Read 772 times) previous topic - next topic

Riemer

Good afternoon all,

I just started developing for the arduino, I must say it is a great way to get into embedded systems. I've been digging a little in the Arduino core to watch and learn and see if I could optimize anything. Although the libraries offer great functionality, speed is a bit of a concern in my next project.

Anyhow, I came across the following (see patch on pastebin).
It seems to me that this a little bit too much to call cli (and restoring) in every body of the if statement. with this patch my end-sketch is 10 bytes smaller. Ah well, I guess everything is welcome ;)

Also for future references, where can I send patches to? I would assume there is some svn/git rep, but couldn't find anything on the homepage (unless I'm blind).

As last, I'm a bit concerned for the adc implementation. Ain't there a better way than spinning for the result?

Cheers, R

Patch:
http://pastebin.com/yxrZaXC4

WizenedEE

Without looking at the assembly, adding the cli() there probably at least doubles the number of clock cycles with interrupts disabled. There's a comparison or two and a branch.

http://code.google.com/p/arduino/issues/list

Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy