ArduinoCore-sam icon indicating copy to clipboard operation
ArduinoCore-sam copied to clipboard

digitalWrite() is embarassingly slow on Due...

Open agdl opened this issue 8 years ago • 2 comments

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 avatar Feb 08 '17 14:02 agdl

From @archenemies on June 6, 2016 20:22

Seems like a useful patch

agdl avatar Feb 08 '17 14:02 agdl

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

dsyleixa avatar Jul 21 '18 17:07 dsyleixa