User Tools

Site Tools


lpcopen-errata

This is an old revision of the document!


lpc11u6x


Chip_SYSCTL_SetPinInterrupt() setzt falsche Pin Nummer in LPC_SYSCTL->PINTSEL whenn GPIO Port 1 oder 2 übergeben

--- syscon_11u6x.c	2019-11-07 20:07:54.801808700 +0100
+++ syscon_11u6x.patched.c	2019-11-07 12:32:45.588811000 +0100
@@ -63,10 +63,18 @@
 	if (port == 0) {
 		/* Pins P0.1 to P0.23 only */
 		LPC_SYSCTL->PINTSEL[intno] = (uint32_t) pin;
-	} else {
+	}
+#if 1
+	else if (port == 1)
+		LPC_SYSCTL->PINTSEL[intno] = (uint32_t)(24 + pin);
+	else if (port == 2)
+		LPC_SYSCTL->PINTSEL[intno] = (uint32_t)(56 + pin);
+#else
+	else {
 		/* P1.1 to P1.31 and P2.0 to P2.7 */
 		LPC_SYSCTL->PINTSEL[intno] = (uint32_t) ((port - 1) * 32 + pin);
 	}
+#endif
 }
 
 /* Setup deep sleep behaviour for power down */

lpcopen-errata.1573153866.txt.gz · Last modified: by maxi2