Closed
Description
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 ) ;
}
}