日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 單片機 > 單片機
[導讀]板子依舊是英倍特的EK-SAM3S。ADC部分的原理圖如下:PB1是一個復用引腳,在這里被用作AD功能,對應芯片上的AD5。即,使用片內ADC的5通道測VR1上2號引腳的電壓。實驗采用了SysTick定時器產(chǎn)生中斷方式來采集ADC數(shù)據(jù)。S

板子依舊是英倍特的EK-SAM3S。ADC部分的原理圖如下:

PB1是一個復用引腳,在這里被用作AD功能,對應芯片上的AD5。即,使用片內ADC的5通道測VR1上2號引腳的電壓。

實驗采用了SysTick定時器產(chǎn)生中斷方式來采集ADC數(shù)據(jù)。SysTick中斷發(fā)生時,開啟ADC轉換。ADC轉換結束時,產(chǎn)生中斷,在ADC中斷處理函數(shù)中讀取ADC采集到的數(shù)據(jù)。轉換后,通過UART輸出,到PC端顯示。

SysTick和ADC的中斷處理函數(shù)如下:

uint32_t time_stamp = 0;
WEAK void SysTick_Handler( void )
{
uint32_t status;
time_stamp++;
/* simply to get 1s interval*/
if (time_stamp % 1000 == 0) //1秒采集一次ADC數(shù)據(jù)
{
status = ADC_GetStatus( ADC ) ;

/* if conversion is done*/
if ( (status & ADC_ISR_EOC5) == ADC_ISR_EOC5 )
{
ADC_StartConversion( ADC ) ;//開啟ADC轉換
}
}
}

/**
* brief Default SUPC interrupt handler for ADC.
*/

WEAK void ADC_IrqHandler( void )
{
uint32_t status;

status = ADC_GetStatus(ADC);

if ( (status & ADC_ISR_RXBUFF) == ADC_ISR_RXBUFF )
{
conversionDone = 1; //設置轉換完成標志

ADC_ReadBuffer( ADC, adc_values, 1 ) ;

}
}

主函數(shù):

int main()
{
int i;

WDT_Disable(WDT);
SysTick_Config(BOARD_MCK / 1000); //配置SysTick
ADC_Initialize(ADC,ID_ADC); //初始化ADC

ADC_cfgFrequency(ADC,15,4);
ADC_check(ADC,BOARD_MCK);
ADC_EnableChannel(ADC,ADC_CHANNEL_5); //使能5號通道 PB1

NVIC_EnableIRQ(ADC_IRQn); //使能ADC中斷

ADC_StartConversion(ADC);
ADC_ReadBuffer(ADC,adc_values,BUFFER_SIZE);
ADC_EnableIt(ADC,ADC_IER_RXBUFF);
while(1)
{
while(!conversionDone);//等待轉換完成標志
if ( conversionDone )
{
for ( i = 0 ; i < BUFFER_SIZE ; i++ )
{
printf( "Vol:%d mvrn", (adc_values[i] * 3300 /4095) ) ; //通過串口輸出電壓值
}
conversionDone = 0 ;
}
}
}

連上串口線,PC端會看到一些電壓數(shù)據(jù)發(fā)過來。轉動變阻器,可以看到電壓值會不斷地變化,變阻器轉到底,輝縣市0mv和3300mv。說明咱們測量的還湊合了。


本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內容侵犯您的權益,請及時聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關閉