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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? adc.c

?? arm lpc2300 AD模塊設(shè)計 實現(xiàn)模擬輸入
?? 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一区二区三区免费野_久草精品视频
亚洲色图一区二区| 欧美精品aⅴ在线视频| 中文一区二区在线观看| 国产精品亚洲一区二区三区在线| 久久久久久久久久久久久女国产乱 | 亚洲色图视频网| 91理论电影在线观看| 一区二区三区四区五区视频在线观看 | 欧美日韩久久一区二区| 亚洲成人福利片| 日韩欧美在线网站| 精品一区二区久久久| 一色桃子久久精品亚洲| 欧美体内she精视频| 久久99精品久久久| 亚洲欧洲av在线| 91精品国产欧美一区二区18| 91麻豆精品91久久久久同性| 一区二区在线电影| 日韩免费电影网站| 色偷偷88欧美精品久久久| 日本不卡一二三| 中文字幕在线不卡一区二区三区| 在线看日本不卡| 美国十次了思思久久精品导航| 精品蜜桃在线看| 春色校园综合激情亚洲| 亚洲综合免费观看高清完整版在线| 欧美日韩精品欧美日韩精品 | 精品国产百合女同互慰| 国产精品亚洲专一区二区三区| 国产精品水嫩水嫩| 欧美日韩成人激情| 精品一区二区在线播放| 国产精品黄色在线观看| 在线不卡中文字幕| 丁香桃色午夜亚洲一区二区三区| 亚洲另类一区二区| 日韩久久久久久| 欧美麻豆精品久久久久久| 美洲天堂一区二卡三卡四卡视频| 久久日一线二线三线suv| 成人免费视频视频| 亚洲电影在线播放| 欧美高清在线精品一区| 欧美日韩免费观看一区三区| 国产精品羞羞答答xxdd| 亚洲综合精品自拍| 欧美激情资源网| 欧美情侣在线播放| 99久久婷婷国产精品综合| 日韩精品视频网| 国产三区在线成人av| 91在线观看一区二区| 午夜一区二区三区在线观看| 久久久精品tv| 欧美日韩另类国产亚洲欧美一级| 丰满亚洲少妇av| 免费在线观看不卡| 一区二区不卡在线播放 | 国产片一区二区| 欧美日韩国产首页| 成人国产视频在线观看| 久久se这里有精品| 亚洲aⅴ怡春院| 精品国产乱码久久久久久夜甘婷婷 | 成人av片在线观看| 精品一区二区三区久久| 午夜久久久久久| 亚洲色图另类专区| 日本一区二区在线不卡| 日韩欧美123| 日韩一区二区不卡| 欧美三级日韩在线| 欧美优质美女网站| 91色porny蝌蚪| 成人av免费在线观看| 国产成人午夜精品影院观看视频| 日本系列欧美系列| 亚洲免费成人av| 久久理论电影网| 欧美三级欧美一级| 一本久道久久综合中文字幕| 成人高清在线视频| 国产一区二区三区不卡在线观看 | 91精品久久久久久久91蜜桃| 91亚洲精华国产精华精华液| 国产成人久久精品77777最新版本| 视频在线观看91| 亚洲黄色免费电影| 亚洲日本在线视频观看| 日韩精品影音先锋| 亚洲精品一线二线三线无人区| 欧美日韩在线播放三区四区| 国产a久久麻豆| 成人性生交大片| www.亚洲色图.com| 日本福利一区二区| 欧美人与禽zozo性伦| 6080国产精品一区二区| 欧美色图天堂网| 国产精品精品国产色婷婷| 欧美日韩电影在线播放| 91精品免费观看| 日韩欧美区一区二| 久久久久久久久一| 国产精品素人一区二区| 最新中文字幕一区二区三区| 亚洲精品亚洲人成人网| 亚洲成人av电影在线| 日韩成人一级片| 免费在线观看一区二区三区| 岛国精品在线播放| 色哟哟精品一区| 欧美精品自拍偷拍| 久久久精品日韩欧美| 亚洲欧洲三级电影| 午夜影院久久久| 国产在线看一区| 91久久国产综合久久| 欧美视频一区二区三区四区| 欧美日韩三级视频| 欧美精品一区二区三区在线| 欧美国产禁国产网站cc| 一区二区三区中文在线| 青青草原综合久久大伊人精品 | 日本女优在线视频一区二区| 亚洲精品高清在线观看| 天堂蜜桃一区二区三区 | 青青草国产成人99久久| 国产精品77777| 不卡的av电影| 日韩一级大片在线| 中文字幕在线不卡国产视频| 天天av天天翘天天综合网色鬼国产 | 91麻豆123| 精品对白一区国产伦| 一区二区三区欧美日| 狠狠狠色丁香婷婷综合激情| 91黄色免费网站| 久久久综合视频| 亚洲成人免费在线观看| 成人激情电影免费在线观看| 欧美图片一区二区三区| 国产网红主播福利一区二区| 午夜电影一区二区三区| 成人免费视频caoporn| 91麻豆精品国产91久久久资源速度| 久久精品一区二区三区不卡牛牛| 亚洲国产精品一区二区www| va亚洲va日韩不卡在线观看| 欧美电影一区二区| 亚洲人成7777| 国产精品18久久久久久久网站| 一本到一区二区三区| 久久久噜噜噜久久人人看 | 亚洲国产精品久久人人爱| av中文字幕一区| 亚洲精选视频免费看| 成人午夜私人影院| 2022国产精品视频| 日韩成人免费电影| 欧美日韩一区二区欧美激情| 18欧美亚洲精品| 高清不卡在线观看av| 日韩精品一区二区三区视频播放 | 专区另类欧美日韩| 国产综合久久久久久鬼色| 欧洲国产伦久久久久久久| 国产精品天干天干在观线| 精品在线一区二区三区| 粉嫩av一区二区三区| 欧美午夜电影网| 亚洲三级在线免费| 懂色av中文字幕一区二区三区| xfplay精品久久| 美女高潮久久久| 日韩欧美亚洲一区二区| 青青草原综合久久大伊人精品优势 | 亚洲精品中文在线影院| www.亚洲人| 中文字幕欧美一| 色香蕉成人二区免费| 亚洲色图在线播放| 91黄视频在线观看| 亚洲第一成人在线| 欧美另类变人与禽xxxxx| 亚洲高清免费视频| 欧美精品黑人性xxxx| 喷白浆一区二区| 26uuu国产电影一区二区| 国产精品伊人色| 中文字幕成人网| 成人国产精品免费观看视频| 欧美r级在线观看| 五月婷婷综合激情| 亚洲精品在线观看网站| 成人小视频免费观看| 亚洲卡通欧美制服中文| 欧美影院精品一区|