亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? adc.c

?? adc sample for keil
?? C
字號:
/*****************************************************************************
 *   adc.c:  ADC module file for NXP LPC23xx Family Microprocessors
 *
 *   Copyright(C) 2006, NXP Semiconductor
 *   All rights reserved.
 *
 *   History
 *   2006.08.15  ver 1.00    Prelimnary version, first Release
 *
******************************************************************************/
#include "LPC23xx.h"                        /* LPC23xx definitions */
#include "type.h"
#include "irq.h"
#include "target.h"
#include "adc.h"

volatile DWORD ADC0Value[ADC_NUM];
volatile DWORD ADC0IntDone = 0;

#if ADC_INTERRUPT_FLAG
/******************************************************************************
** Function name:		ADC0Handler
**
** Descriptions:		ADC0 interrupt handler
**
** parameters:			None
** Returned value:		None
** 
******************************************************************************/
void ADC0Handler (void) __irq 
{
    DWORD regVal;
  
    IENABLE;			/* handles nested interrupt */

    regVal = AD0STAT;		/* Read ADC will clear the interrupt */
    if ( regVal & 0x0000FF00 )	/* check OVERRUN error first */
    {
	    regVal = (regVal & 0x0000FF00) >> 0x08;
	    /* if overrun, just read ADDR to clear */
	    /* regVal variable has been reused. */
	    switch ( regVal )
	    {
	      case 0x01:
			regVal = AD0DR0;
		  break;
	      case 0x02:
			regVal = AD0DR1;
		  break;
	      case 0x04:
			regVal = AD0DR2;
		  break;
	      case 0x08:
			regVal = AD0DR3;
		  break;
	      case 0x10:
			regVal = AD0DR4;
		  break;
	      case 0x20:
			regVal = AD0DR5;
		  break;
	      case 0x40:
			regVal = AD0DR6;
		  break;
	      case 0x80:
			regVal = AD0DR7;
		  break;
	      default:
		  break;
	    }
	    AD0CR &= 0xF8FFFFFF;	/* stop ADC now */ 
	    ADC0IntDone = 1;
	    return;	
    }
    
    if ( regVal & ADC_ADINT )
    {
	    switch ( regVal & 0xFF )	/* check DONE bit */
	    {
	      case 0x01:
			ADC0Value[0] = ( AD0DR0 >> 6 ) & 0x3FF;
	      break;
	      case 0x02:
			ADC0Value[1] = ( AD0DR1 >> 6 ) & 0x3FF;
	      break;
	      case 0x04:
			ADC0Value[2] = ( AD0DR2 >> 6 ) & 0x3FF;
	      break;
	      case 0x08:
			ADC0Value[3] = ( AD0DR3 >> 6 ) & 0x3FF;
	      break;
	      case 0x10:
			ADC0Value[4] = ( AD0DR4 >> 6 ) & 0x3FF;
	      break;
	      case 0x20:
			ADC0Value[5] = ( AD0DR5 >> 6 ) & 0x3FF;
	      break;
	      case 0x40:
			ADC0Value[6] = ( AD0DR6 >> 6 ) & 0x3FF;
	      break;
	      case 0x80:
			ADC0Value[7] = ( AD0DR7 >> 6 ) & 0x3FF;
	      break;		
	      default:
	      break;
	    }
	    AD0CR &= 0xF8FFFFFF;	/* stop ADC now */ 
	    ADC0IntDone = 1;
    }

    IDISABLE;
    VICVectAddr = 0;		/* Acknowledge Interrupt */
}
#endif

/*****************************************************************************
** Function name:		ADCInit
**
** Descriptions:		initialize ADC channel
**
** parameters:			ADC clock rate
** Returned value:		true or false
** 
*****************************************************************************/
DWORD ADCInit( DWORD ADC_Clk )
{
    /* Enable CLOCK into ADC controller */
    PCONP |= (1 << 12);

    /* all the related pins are set to ADC inputs, AD0.0~7 */
    PINSEL0 |= 0x0F000000;	/* P0.12~13, A0.6~7, function 11 */	
    PINSEL1 &= ~0x003FC000;	/* P0.23~26, A0.0~3, function 01 */
    PINSEL1 |= 0x00154000;
    PINSEL3 |= 0xF0000000;	/* P1.30~31, A0.4~5, function 11 */

    AD0CR = ( 0x01 << 0 ) | 	/* SEL=1,select channel 0~7 on ADC0 */
		( ( Fpclk / ADC_Clk - 1 ) << 8 ) |  /* CLKDIV = Fpclk / 1000000 - 1 */ 
		( 0 << 16 ) | 		/* BURST = 0, no BURST, software controlled */
		( 0 << 17 ) |  		/* CLKS = 0, 11 clocks/10 bits */
		( 1 << 21 ) |  		/* PDN = 1, normal operation */
		( 0 << 22 ) |  		/* TEST1:0 = 00 */
		( 0 << 24 ) |  		/* START = 0 A/D conversion stops */
		( 0 << 27 );		/* EDGE = 0 (CAP/MAT singal falling,trigger A/D conversion) */ 

    /* If POLLING, no need to do the following */
#if ADC_INTERRUPT_FLAG
    AD0INTEN = 0x1FF;		/* Enable all interrupts */
    if ( install_irq( ADC0_INT, (void *)ADC0Handler, HIGHEST_PRIORITY ) == FALSE )
    {
	    return (FALSE);
    }
#endif
    return (TRUE);
}

/*****************************************************************************
** Function name:		ADC0Read
**
** Descriptions:		Read ADC0 channel
**
** parameters:			Channel number
** Returned value:		Value read, if interrupt driven, return channel #
** 
*****************************************************************************/
DWORD ADC0Read( BYTE channelNum )
{
#if !ADC_INTERRUPT_FLAG
    DWORD regVal, ADC_Data;
#endif

    /* channel number is 0 through 7 */
    if ( channelNum >= ADC_NUM )
    {
	    channelNum = 0;		/* reset channel number to 0 */
    }
    AD0CR &= 0xFFFFFF00;
    AD0CR |= (1 << 24) | (1 << channelNum);	
				/* switch channel,start A/D convert */
#if !ADC_INTERRUPT_FLAG
    while ( 1 )			/* wait until end of A/D convert */
    {
	    regVal = *(volatile unsigned long *)(AD0_BASE_ADDR 
			+ ADC_OFFSET + ADC_INDEX * channelNum);
				/* read result of A/D conversion */
	    if ( regVal & ADC_DONE )
	    {
		    break;
	    }
    }	
        
    AD0CR &= 0xF8FFFFFF;	/* stop ADC now */    
    if ( regVal & ADC_OVERRUN )	/* save data when it's not overrun, otherwise, return zero */
    {
	    return ( 0 );
    }
    ADC_Data = ( regVal >> 6 ) & 0x3FF;
    return ( ADC_Data );	/* return A/D conversion value */
#else
    return ( channelNum );	/* if it's interrupt driven, the ADC reading is 
							done inside the handler. so, return channel number */
#endif
}

/*********************************************************************************
**                            End Of File
*********************************************************************************/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国内成+人亚洲+欧美+综合在线| 国产福利一区二区三区视频在线| 秋霞电影网一区二区| 国产成人免费9x9x人网站视频| 欧美在线视频全部完| 久久久影视传媒| 午夜激情一区二区| 国产69精品久久777的优势| 欧美天天综合网| 国产精品色呦呦| 久久国产精品露脸对白| 在线免费观看日韩欧美| 国产精品久久久久久一区二区三区| 午夜私人影院久久久久| 91麻豆高清视频| 中文字幕不卡三区| 国产激情视频一区二区三区欧美| 欧美精品vⅰdeose4hd| 亚洲欧美另类在线| 高清在线不卡av| 国产亚洲欧美日韩日本| 精品一区二区影视| 91精品国产综合久久久蜜臀粉嫩| 亚洲精品你懂的| 91影视在线播放| 欧美激情一区二区在线| 国产麻豆精品95视频| 精品国产免费一区二区三区香蕉| 日韩黄色在线观看| 欧美一级艳片视频免费观看| 午夜影院久久久| 欧美蜜桃一区二区三区| 五月婷婷另类国产| 7777精品伊人久久久大香线蕉最新版 | 蜜臀va亚洲va欧美va天堂 | 不卡视频一二三四| 国产精品美女久久久久aⅴ| 国产老妇另类xxxxx| 久久久久久久久久久99999| 国内精品写真在线观看| 久久理论电影网| 懂色av中文字幕一区二区三区 | 国产精品69久久久久水密桃| 国产视频911| 99久久精品一区二区| 亚洲另类在线一区| 欧美日韩国产影片| 日本vs亚洲vs韩国一区三区二区| 日韩精品资源二区在线| 韩国av一区二区三区四区| 亚洲影院理伦片| 伊人色综合久久天天人手人婷| 欧美xxxxxxxx| 日韩一卡二卡三卡四卡| 亚洲国产精品久久久久婷婷884| 日本成人中文字幕在线视频| 精品少妇一区二区三区 | 久久精品夜色噜噜亚洲aⅴ| 国产伦精品一区二区三区视频青涩 | 麻豆精品一区二区| 精品sm捆绑视频| 99久久精品一区| 性久久久久久久久| 国产亚洲综合av| 日韩欧美国产电影| 亚洲一区二区三区在线| 亚洲视频在线一区观看| 日本不卡视频在线| 久久蜜桃av一区精品变态类天堂| 丁香婷婷综合色啪| 一区二区三区日韩精品| 欧美一级国产精品| 成人免费毛片嘿嘿连载视频| 午夜精品久久久久久| 久久精品一区二区| 欧美人妖巨大在线| 高清久久久久久| 日韩中文字幕区一区有砖一区| 国产亚洲精品超碰| 欧美猛男超大videosgay| 国产在线观看一区二区| 亚洲一级片在线观看| 中文字幕免费不卡| 日韩亚洲欧美综合| 一本久久a久久精品亚洲| 韩日精品视频一区| 午夜一区二区三区在线观看| 一区二区三区欧美日| 97久久精品人人澡人人爽| 国产精品视频观看| 日韩一级视频免费观看在线| 成人黄色在线看| 激情五月婷婷综合| 日韩在线卡一卡二| 亚洲精品视频在线观看网站| 国产亚洲综合av| 精品国产乱码久久久久久浪潮| 在线观看一区不卡| 99在线精品一区二区三区| 国产在线精品一区二区三区不卡| 亚洲bdsm女犯bdsm网站| 一二三四区精品视频| 综合色天天鬼久久鬼色| 国产精品国产三级国产a| 久久精品视频免费观看| 日韩欧美国产午夜精品| 9191国产精品| 欧美日本一区二区三区四区| 欧美在线播放高清精品| 色哟哟一区二区| 91在线观看视频| 日韩一区二区三区在线| 丝袜a∨在线一区二区三区不卡| 在线日韩国产精品| 欧美亚洲国产bt| 亚洲一区成人在线| 午夜欧美2019年伦理| 亚洲色图欧洲色图| 亚洲欧洲综合另类在线| 亚洲欧美怡红院| 综合自拍亚洲综合图不卡区| |精品福利一区二区三区| 亚洲视频电影在线| 亚洲在线中文字幕| 午夜久久久久久久久久一区二区| 亚洲成a人片在线不卡一二三区| 亚洲国产另类av| 视频一区国产视频| 久久精品99久久久| 国产精品自产自拍| av爱爱亚洲一区| 日本韩国精品在线| 欧美美女bb生活片| 精品电影一区二区| 国产精品家庭影院| 欧洲精品一区二区三区在线观看| 在线视频一区二区三| 欧美伊人精品成人久久综合97| 成人国产精品免费观看| 国产成+人+日韩+欧美+亚洲| 91在线一区二区三区| 91久久精品日日躁夜夜躁欧美| 在线播放中文字幕一区| 久久先锋影音av鲁色资源 | 国产成人免费在线观看不卡| av资源站一区| 777a∨成人精品桃花网| 久久色在线观看| 亚洲精选免费视频| 国内精品伊人久久久久影院对白| 国产99精品国产| 欧美精品日日鲁夜夜添| 久久人人爽人人爽| 一区二区久久久久| 国产在线观看免费一区| 在线视频一区二区免费| 久久久久国产精品麻豆| 亚洲丰满少妇videoshd| 国产91精品久久久久久久网曝门| 91精彩视频在线| 国产亚洲精品精华液| 日本美女一区二区三区| 91免费视频大全| 欧美精品一区二区久久久 | 国产欧美综合在线| 亚洲成人av免费| 国产精品影视天天线| 欧美日韩精品一区二区三区蜜桃 | 一区二区三区精品在线观看| 激情av综合网| 欧美日韩视频在线观看一区二区三区 | 在线看国产一区二区| 久久久www成人免费毛片麻豆 | 中文字幕在线观看一区二区| 日本不卡一二三| 欧美无人高清视频在线观看| 国产精品国产自产拍高清av王其| 美女脱光内衣内裤视频久久网站| 色综合一区二区三区| 国产午夜亚洲精品理论片色戒| 日韩精品视频网站| 欧美日韩在线不卡| 综合久久给合久久狠狠狠97色| 国产精品91xxx| 久久久九九九九| 国产一区二区美女诱惑| 欧美福利一区二区| 亚洲一区二区精品视频| 6080日韩午夜伦伦午夜伦| 欧美顶级少妇做爰| 亚洲一区免费在线观看| 91丨porny丨国产入口| 中文字幕精品—区二区四季| 捆绑调教一区二区三区| 日韩午夜中文字幕| 免费看欧美美女黄的网站| 欧美高清精品3d| 五月激情六月综合| 日韩亚洲欧美成人一区| 亚洲国产wwwccc36天堂|