@TOC
- 品智科技S32K118开发板
- S32 STUDIO FOR ARM 2.2
- SDK 3.0.0
- pin_mux
- clockMan
- osif
PE设置
按键中断代码
/* ###################################################################
** Filename : main.c
** Processor : S32K1xx
** Abstract :
** Main module.
** This module contains user's application code.
** Settings :
** Contents :
** No public methods
**
** ###################################################################*/
/*!
** @file main.c
** @version 01.00
** @brief
** Main module.
** This module contains user's application code.
*/
/*!
** @addtogroup main_module main module documentation
** @{
*/
/* MODULE main */
/* Including necessary module. Cpu.h contains other modules needed for compiling.*/
#include "Cpu.h"
volatile int exit_code = 0;
/* User includes (#include below this line is not maintained by Processor Expert) */
/*按键中断函数*/
static void SW_IRQHandler(void)
{
if(PINS_DRV_GetPortIntFlag(PORTC) & (1 << KEY1_PIN))
{
PINS_DRV_TogglePins(LED_1_B_PORT, 1 << LED_1_B_PIN);
}else if(PINS_DRV_GetPortIntFlag(PORTC) & (1 << KEY2_PIN))
{
PINS_DRV_TogglePins(LED_2_G_PORT, 1 << LED_2_G_PIN);
}else if(PINS_DRV_GetPortIntFlag(PORTC) & (1 << KEY3_PIN))
{
PINS_DRV_TogglePins(LED_3_R_PORT, 1 << LED_3_R_PIN);
}
PINS_DRV_ClearPortIntFlagCmd(PORTC);
}
/*!
\brief The main function for the project.
\details The startup initialization sequence is the following:
* - startup asm routine
* - main()
*/
int main(void)
{
/* Write your local variable definition here */
/*** Processor Expert internal initialization. DON'T REMOVE THIS CODE!!! ***/
#ifdef PEX_RTOS_INIT
PEX_RTOS_INIT(); /* Initialization of the selected RTOS. Macro is defined by the RTOS component. */
#endif
/*** End of Processor Expert internal initialization. ***/
/* Write your code here */
/* For example: for(;;) { } */
/*时钟初始化*/
CLOCK_SYS_Init(g_clockManConfigsArr, CLOCK_MANAGER_CONFIG_CNT,
g_clockManCallbacksArr, CLOCK_MANAGER_CALLBACK_CNT);
CLOCK_SYS_UpdateConfiguration(0U,CLOCK_MANAGER_POLICY_AGREEMENT);
/*引脚初始化*/
PINS_DRV_Init(NUM_OF_CONFIGURED_PINS, g_pin_mux_InitConfigArr);
/* 使能3个按键中断*/
INT_SYS_InstallHandler(PORT_IRQn, SW_IRQHandler, (isr_t *)NULL);
INT_SYS_EnableIRQ(PORT_IRQn);
PINS_DRV_WritePin(LED_1_B_PORT, LED_1_B_PIN, 1);
PINS_DRV_WritePin(LED_2_G_PORT, LED_2_G_PIN, 0);
PINS_DRV_WritePin(LED_3_R_PORT, LED_3_R_PIN, 1);
PINS_DRV_WritePin(LED_4_Y_PORT, LED_4_Y_PIN, 0);
for (;;)
{
#if 1
PINS_DRV_TogglePins(LED_4_Y_PORT, 1 << LED_4_Y_PIN);
OSIF_TimeDelay(100);
}
/*** Don't write any code pass this line, or it will be deleted during code generation. ***/
/*** RTOS startup code. Macro PEX_RTOS_START is defined by the RTOS component. DON'T MODIFY THIS CODE!!! ***/
#ifdef PEX_RTOS_START
PEX_RTOS_START(); /* Startup of the selected RTOS. Macro is defined by the RTOS component. */
#endif
/*** End of RTOS startup code. ***/
/*** Processor Expert end of main routine. DON'T MODIFY THIS CODE!!! ***/
for(;;) {
if(exit_code != 0) {
break;
}
}
return exit_code;
/*** Processor Expert end of main routine. DON'T WRITE CODE BELOW!!! ***/
} /*** End of main routine. DO NOT MODIFY THIS TEXT!!! ***/
/* END main */
/*!
** @}
*/
/*
** ###################################################################
**
** This file was created by Processor Expert 10.1 [05.21]
** for the NXP S32K series of microcontrollers.
**
** ###################################################################
*/