Hi,
why i cann't enter interrupt. @ SC1A's AIEN=1&coco=1
void ADC0_IRQHandler(void)
{
int i=0;
i++;
print(welcomeStr);
}
void ADC1_IRQHandler(void)
{
int i=0;
i++;
print(welcomeStr);
}
/*!
\brief The main function for the project.
\details The startup initialization sequence is the following:
* - startup asm routine
* - main()
*/
int main(void)
{
/* Enable the floating point unit */
enableFPU();
/* Write your local variable definition here */
/* Variables in which we store data from ADC */
uint16_t adcRawValue;
uint16_t adcMax;
float adcValue;
/* Buffer used to store processed data for serial communication */
char msg[255] =
{ 0, };
/*** 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(;;) { } */
/* Initialize and configure clocks
* - see clock manager component for details
*/
CLOCK_SYS_Init(g_clockManConfigsArr, CLOCK_MANAGER_CONFIG_CNT,
g_clockManCallbacksArr, CLOCK_MANAGER_CALLBACK_CNT);
CLOCK_SYS_UpdateConfiguration(0U, CLOCK_MANAGER_POLICY_AGREEMENT);
/* Initialize pins
* - See PinSettings component for more info
*/
PINS_DRV_Init(NUM_OF_CONFIGURED_PINS, g_pin_mux_InitConfigArr);
/* Get ADC max value from the resolution */
if (adConv1_ConvConfig0.resolution == ADC_RESOLUTION_8BIT)
adcMax = (uint16_t) (1 << 8);
else if (adConv1_ConvConfig0.resolution == ADC_RESOLUTION_10BIT)
adcMax = (uint16_t) (1 << 10);
else
adcMax = (uint16_t) (1 << 12);
/* Initialize LPUART instance
* - See LPUART component for configuration details
* If the initialization failed, break the program
*/
if (LPUART_DRV_Init(INST_LPUART1, &lpuart1_State, &lpuart1_InitConfig0)
!= STATUS_SUCCESS)
__asm("bkpt #255");
/* Configure and calibrate the ADC converter
* - See ADC component for the configuration details
*/
ADC_DRV_ConfigConverter(INST_ADCONV1, &adConv1_ConvConfig0);
ADC_DRV_AutoCalibration(INST_ADCONV1);
ADC_DRV_ConfigHwCompare(INST_ADCONV1,&adConv1_HwCompConfig0);//coco自动清0
/* Send a welcome message via LPUART */
print(welcomeStr);
/* Infinite loop:
* - Trigger a new conversion
* - Wait and get the result
* - Make the value more user friendly
* - Send the data to LPUART
*/
while (1)
{
/* Configure ADC channel and software trigger a conversion */
ADC_DRV_ConfigChan(INST_ADCONV1, 0U, &adConv1_ChnConfig0);//AIEN set 同时coco set
/* Wait for the conversion to be done */
// ADC_DRV_WaitConvDone(INST_ADCONV1);
/* Store the channel result into a local variable */
ADC_DRV_GetChanResult(INST_ADCONV1, 0U, &adcRawValue);
/* Process the result to get the value in volts */
adcValue = ((float) adcRawValue / adcMax) * (ADC_VREFH - ADC_VREFL);
/* And convert it to string */
floatToStr(&adcValue, msg, 5);
/* Send the result to the user via LPUART */
print(headerStr);
print(msg);
print(" V\r\n");
/* Do nothing for a number of cycles */
delayCycles(0x7FFFFF);
}
/*** 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 Freescale S32K series of microcontrollers.
**
** ###################################################################
*/