熱門: 51單片機(jī) | 24小時(shí)必答區(qū) | 單片機(jī)教程 | 單片機(jī)DIY制作 | STM32 | Cortex M3 | 模數(shù)電子 | 電子DIY制作 | 音響/功放 | 拆機(jī)樂園 | Arduino | 嵌入式OS | 程序設(shè)計(jì)
|
|
//======================================================================== // 函數(shù): void ADC_Inilize(ADC_InitTypeDef *ADCx) // 描述: ADC初始化程序. // 參數(shù): ADCx: 結(jié)構(gòu)參數(shù),請(qǐng)參考adc.h里的定義. // 返回: none. // 版本: V1.0, 2012-10-22 //======================================================================== void ADC_Inilize(ADC_InitTypeDef *ADCx) { P1ASF = ADCx->ADC_Px; // 設(shè)置端口 ADC_CONTR = (ADC_CONTR & ~ADC_90T) | ADCx->ADC_Speed; //// 設(shè)定讀取數(shù)值的端口 if(ADCx->ADC_Power == ENABLE) ADC_CONTR |= 0x80; // 判斷ADC 是否使能上電狀態(tài), 如果沒有就上電 如果有就進(jìn)行轉(zhuǎn)換 else ADC_CONTR &= 0x7F; if(ADCx->ADC_AdjResult == ADC_RES_H2L8) PCON2 |= (1<<5); //10位AD結(jié)果的高2位放ADC_RES的低2位,低8位在ADC_RESL。 else PCON2 &= ~(1<<5); //10位AD結(jié)果的高8位放ADC_RES,低2位在ADC_RESL的低2位。 if(ADCx->ADC_Interrupt == ENABLE) EADC = 1; //中斷允許 ENABLE,DISABLE else EADC = 0; if(ADCx->ADC_Polity == PolityHigh) PADC = 1; //優(yōu)先級(jí)設(shè)置 PolityHigh,PolityLow else PADC = 0; } |
|
只是一個(gè)函數(shù)的話好像少了什么... 建議看一下STC的手冊(cè),ADC部分,手冊(cè)上很清晰的,照著配置寄存器也很簡(jiǎn)單。 基本步驟就是: 0.開中斷許可 1.P1口模擬功能選擇(P1ASF寄存器) 2.通道選擇(ADC_CONTER寄存器) 3.速度選擇(ADC_CONTER寄存器) 4.開始轉(zhuǎn)換(ADC_CONTER寄存器),需要轉(zhuǎn)換的時(shí)候?qū)拇嫫魑徊僮?br /> 5.中斷函數(shù)配置,中斷號(hào)是5 6.其它的諸如結(jié)果如何存放,優(yōu)先級(jí)之類的,基礎(chǔ)應(yīng)用涉及不多。 Keil仿真用的少,真沒注意看過(guò)結(jié)構(gòu)體的數(shù)值,幫不上了,看看后續(xù)有沒有人吧。 |
| 用KEIL4仿真時(shí),怎樣才能看到結(jié)構(gòu)體中各個(gè)成員的具體數(shù)值? |
Powered by 單片機(jī)教程網(wǎng)