mirror of
https://github.com/FreeRTOS/FreeRTOS-Kernel.git
synced 2025-04-20 05:21:59 -04:00
Enable button interrupts in the MSP432 demos in order to test code paths when an MCU exits low power mode for a reason other than a tick interrupt.
This commit is contained in:
parent
aa810cb926
commit
7ee26c1b5e
|
@ -121,6 +121,9 @@
|
|||
#include "task.h"
|
||||
#include "semphr.h"
|
||||
|
||||
/* TI includes. */
|
||||
#include "gpio.h"
|
||||
|
||||
/* Priorities at which the tasks are created. */
|
||||
#define mainQUEUE_RECEIVE_TASK_PRIORITY ( tskIDLE_PRIORITY + 2 )
|
||||
#define mainQUEUE_SEND_TASK_PRIORITY ( tskIDLE_PRIORITY + 1 )
|
||||
|
@ -159,6 +162,13 @@ void main_blinky( void );
|
|||
*/
|
||||
static void prvConfigureClocks( void );
|
||||
|
||||
/*
|
||||
* Configure a button to generate interrupts (for test purposes). This is done
|
||||
* to test waking on an interrupt other than the systick interrupt in tickless
|
||||
* idle mode.
|
||||
*/
|
||||
static void prvConfigureButton( void );
|
||||
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
/* The queue used by both tasks. */
|
||||
|
@ -178,6 +188,9 @@ void main_blinky( void )
|
|||
blinky demo uses a slower clock as it also uses low power features. */
|
||||
prvConfigureClocks();
|
||||
|
||||
/* Configure a button to generate interrupts (for test purposes). */
|
||||
prvConfigureButton();
|
||||
|
||||
/* Create the queue. */
|
||||
xQueue = xQueueCreate( mainQUEUE_LENGTH, sizeof( uint32_t ) );
|
||||
|
||||
|
@ -286,9 +299,37 @@ static void prvConfigureClocks( void )
|
|||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
static void prvConfigureButton( void )
|
||||
{
|
||||
volatile uint8_t ucPin;
|
||||
|
||||
/* Configure button S1 to generate interrupts. This is done to test the
|
||||
code path were low power mode is exited for a reason other than a tick
|
||||
interrupt. */
|
||||
GPIO_setAsInputPinWithPullUpResistor( GPIO_PORT_P1, GPIO_PIN1 );
|
||||
GPIO_enableInterrupt( GPIO_PORT_P1, GPIO_PIN1 );
|
||||
Interrupt_enableInterrupt( INT_PORT1 );
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
void PORT1_IRQHandler( void )
|
||||
{
|
||||
static volatile uint32_t ux = 0;
|
||||
|
||||
/* This is the handler for interrupt generated by the button. The
|
||||
interrupt is only used to bring the MCU out of low power mode. It
|
||||
doesn't perform any other function. The ux increment is just to
|
||||
have something to set breakpoints on and check the interrupt is
|
||||
executing. */
|
||||
ux++;
|
||||
|
||||
/* Clear the interrupt. */
|
||||
( void ) P1->IV;
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
void vPreSleepProcessing( uint32_t ulExpectedIdleTime )
|
||||
{
|
||||
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
|
|
|
@ -100,6 +100,7 @@ extern void SVC_Handler( void );
|
|||
extern void vUART_Handler( void );
|
||||
extern void vT32_0_Handler( void );
|
||||
extern void vT32_1_Handler( void );
|
||||
extern void PORT1_IRQHandler( void );
|
||||
//*****************************************************************************
|
||||
//
|
||||
// The entry point for the application startup code.
|
||||
|
@ -188,7 +189,7 @@ __root const uVectorEntry __vector_table[] @ ".intvec" =
|
|||
IntDefaultHandler, // DMA_INT2 ISR
|
||||
IntDefaultHandler, // DMA_INT1 ISR
|
||||
IntDefaultHandler, // DMA_INT0 ISR
|
||||
IntDefaultHandler, // PORT1 ISR
|
||||
PORT1_IRQHandler, // PORT1 ISR
|
||||
IntDefaultHandler, // PORT2 ISR
|
||||
IntDefaultHandler, // PORT3 ISR
|
||||
IntDefaultHandler, // PORT4 ISR
|
||||
|
|
Loading…
Reference in a new issue