From a1748b9c4fec8b10f85f1aef037e9dae8f4464e2 Mon Sep 17 00:00:00 2001 From: cnlohr <lohr85@gmail.com> Date: Fri, 30 Jun 2023 18:05:43 -0400 Subject: [PATCH] Update with more cap sense pins --- examples/cap_touch_exti/cap_touch_exti.c | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/examples/cap_touch_exti/cap_touch_exti.c b/examples/cap_touch_exti/cap_touch_exti.c index c4a6f80..4ac6e59 100644 --- a/examples/cap_touch_exti/cap_touch_exti.c +++ b/examples/cap_touch_exti/cap_touch_exti.c @@ -68,13 +68,17 @@ int MeasureTouch( int portno, int pin, int pu_mode ) endtime = starttime - 1; port->BSHR = 1<<(pin); - // Allow up to 256 cycles for the pin to change. + // Allow up to 384 cycles for the pin to change. #define DELAY8 \ asm volatile( "c.nop;c.nop;c.nop;c.nop;c.nop;c.nop;c.nop;c.nop;" ); DELAY8 DELAY8 DELAY8 DELAY8 DELAY8 DELAY8 DELAY8 DELAY8 DELAY8 DELAY8 DELAY8 DELAY8 DELAY8 DELAY8 DELAY8 DELAY8 DELAY8 DELAY8 DELAY8 DELAY8 DELAY8 DELAY8 DELAY8 DELAY8 DELAY8 DELAY8 DELAY8 DELAY8 DELAY8 DELAY8 DELAY8 DELAY8 + DELAY8 DELAY8 DELAY8 DELAY8 DELAY8 DELAY8 DELAY8 DELAY8 + DELAY8 DELAY8 DELAY8 DELAY8 DELAY8 DELAY8 DELAY8 DELAY8 + + // Optimization: If you did the nop sled in assembly, the interrupt could scoot to the end // Disable EXTI EXTI->INTENR = 0; @@ -98,10 +102,16 @@ int main() while(1) { - printf( "%4d %4d %4d\n", + printf( "%d %d %d %d %d %d %d %d\n", MeasureTouch( 2, 4, GPIO_CFGLR_IN_PUPD ), // Port C4 + MeasureTouch( 2, 5, GPIO_CFGLR_IN_FLOAT ), // Port C5, with external pull-up. + MeasureTouch( 2, 7, GPIO_CFGLR_IN_PUPD ), // Port C7 + MeasureTouch( 3, 2, GPIO_CFGLR_IN_PUPD ), // Port D2 + MeasureTouch( 3, 3, GPIO_CFGLR_IN_PUPD ), // Port D3 + MeasureTouch( 3, 4, GPIO_CFGLR_IN_PUPD ), // Port D4 MeasureTouch( 3, 5, GPIO_CFGLR_IN_PUPD ), // Port D5 - MeasureTouch( 2, 5, GPIO_CFGLR_IN_FLOAT ) ); // Port C5, with external pull-up. + MeasureTouch( 3, 6, GPIO_CFGLR_IN_PUPD ) // Port D6 + ); } } -- GitLab