Estoy trabajando en el procesador sam3x8e con atmel studio 6.2.
He configurado dos gpios para interrumpir en el flanco descendente de la siguiente manera:
pio_handler_set(PIOB, ID_PIOB, PIO_PB3, (PIO_IT_FALL_EDGE ), keyPressHandler);
NVIC_EnableIRQ((IRQn_Type) ID_PIOB);
pio_enable_interrupt(PIOB, PIO_PB3);
pio_handler_set(PIOB, ID_PIOB, PIO_PA4, (PIO_IT_FALL_EDGE ), keyPressHandler);
NVIC_EnableIRQ((IRQn_Type) ID_PIOB);
pio_enable_interrupt(PIOB, PIO_PA4);
un gpio pertenece a PIOA, es decir, PA4 y el otro pertenece a PIOB, es decir, PB3.
Si presiono la tecla conectada al pin PB3, obtengo el evento de presionar una sola tecla.
Si presiono la tecla conectada al pin PA4 obtengo varios eventos de pulsación de tecla.
He usado todos los canales TC. En la hoja de datos adjunta hay algo de multiplexación.
Dependencia para PA4 y TCLK1.
¿Alguien puede decirme qué inicialización se debe hacer para la sección de PA4 y TC para que PA4 funcione como se espera? También he usado temporizadores como abajo:
Timer0_100msTickTimer.tc = TC0;
Timer0_100msTickTimer.channel = 0;
Timer0_100msTickTimer.irq = TC0_IRQn;
Timer1_KeyboardTimer.tc = TC0;
Timer1_KeyboardTimer.channel = 1;
Timer1_KeyboardTimer.irq = TC1_IRQn;
Timer2_DisplayTimer.tc = TC0;
Timer2_DisplayTimer.channel = 2;
Timer2_DisplayTimer.irq = TC2_IRQn;
Por favor, dime si puedes encontrar alguna configuración incorrecta.
Gracias y Saludos, Mj