Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

digitalWrite() is embarassingly slow on Due... #16

Open
agdl opened this issue Feb 8, 2017 · 2 comments
Open

digitalWrite() is embarassingly slow on Due... #16

agdl opened this issue Feb 8, 2017 · 2 comments
Assignees

Comments

@agdl
Copy link
Member

agdl commented Feb 8, 2017

From @WestfW on October 27, 2015 4:13

There's a relatively senseless use of Atmel Libraries that duplicate a lot of the effort. The attached patch approximately doubles the speed of a pin-toggle loop...
(umm. I can't attach a diff...)


--- wiring_digital.c~   2015-04-23 08:30:36.000000000 -0700
+++ wiring_digital.c    2015-10-26 20:59:25.000000000 -0700
@@ -84,7 +84,12 @@
   }
   else
   {
-    PIO_SetOutput( g_APinDescription[ulPin].pPort, g_APinDescription[ulPin].ulPin, ulVal, 0, PIO_PULLUP ) ;
+      if (ulVal) {
+     digitalPinToPort(ulPin)->PIO_SODR = digitalPinToBitMask(ulPin);
+      } else {
+     digitalPinToPort(ulPin)->PIO_CODR = digitalPinToBitMask(ulPin);
+      }
+//    PIO_SetOutput( g_APinDescription[ulPin].pPort, g_APinDescription[ulPin].ulPin, ulVal, 0, PIO_PULLUP ) ;
   }
 }

Copied from original issue: arduino/Arduino#4030

@agdl
Copy link
Member Author

agdl commented Feb 8, 2017

From @archenemies on June 6, 2016 20:22

Seems like a useful patch

@dsyleixa
Copy link

dsyleixa commented Jul 21, 2018

will this westfw patch be fixed in the next official board core? (currently 1.6.11)?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants