adctest.c
来自「LPCXpresso1768」· C语言 代码 · 共 79 行
C
79 行
/****************************************************************************
* $Id:: adctest.c 6089 2011-01-06 04:38:09Z nxp12832 $
* Project: NXP LPC17xx ADC example
*
* Description:
* This file contains ADC test modules, main entry, to test ADC APIs.
*
****************************************************************************
* Software that is described herein is for illustrative purposes only
* which provides customers with programming information regarding the
* products. This software is supplied "AS IS" without any warranties.
* NXP Semiconductors assumes no responsibility or liability for the
* use of the software, conveys no license or title under any patent,
* copyright, or mask work right to the product. NXP Semiconductors
* reserves the right to make changes in the software without
* notification. NXP Semiconductors also make no representation or
* warranty that such application will be suitable for the specified
* use without further testing or modification.
****************************************************************************/
#include <cr_section_macros.h>
#include <NXP/crp.h>
// Variable to store CRP value in. Will be placed automatically
// by the linker when "Enable Code Read Protect" selected.
// See crp.h header for more information
__CRP const unsigned int CRP_WORD = CRP_NO_CRP ;
#include "lpc17xx.h"
#include "type.h"
#include "adc.h"
extern volatile uint32_t ADCValue[ADC_NUM];
extern volatile uint32_t ADCIntDone;
extern volatile uint32_t OverRunCounter;
/*****************************************************************************
** Main Function main()
******************************************************************************/
int main (void)
{
/* SystemClockUpdate() updates the SystemFrequency variable */
SystemClockUpdate();
/* Initialize ADC */
ADCInit( ADC_CLK );
while(1)
{
#if BURST_MODE /* Interrupt driven only */
ADCBurstRead();
while ( !ADCIntDone );
ADCIntDone = 0;
if ( OverRunCounter != 0 )
{
while ( 1 );
}
#else /* Not burst mode */
#if ADC_INTERRUPT_FLAG /* Interrupt driven */
for ( i = 0; i < ADC_NUM; i++ )
{
ADCRead( i );
while ( !ADCIntDone );
ADCIntDone = 0;
}
#else /* Polling */
for ( i = 0; i < ADC_NUM; i++ )
{
ADCValue[i] = ADCRead( i );
}
#endif /* Endif interrupt driven */
#endif /* Endif BURST mode */
}
}
/*****************************************************************************
** End Of File
*****************************************************************************/
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?