![]() |
//======================================================================== // 函數: void ADC_Inilize(ADC_InitTypeDef *ADCx) // 描述: ADC初始化程序. // 參數: ADCx: 結構參數,請參考adc.h里的定義. // 返回: none. // 版本: V1.0, 2012-10-22 //======================================================================== void ADC_Inilize(ADC_InitTypeDef *ADCx) { P1ASF = ADCx->ADC_Px; // 設置端口 ADC_CONTR = (ADC_CONTR & ~ADC_90T) | ADCx->ADC_Speed; //// 設定讀取數值的端口 if(ADCx->ADC_Power == ENABLE) ADC_CONTR |= 0x80; // 判斷ADC 是否使能上電狀態, 如果沒有就上電 如果有就進行轉換 else ADC_CONTR &= 0x7F; if(ADCx->ADC_AdjResult == ADC_RES_H2L8) PCON2 |= (1<<5); //10位AD結果的高2位放ADC_RES的低2位,低8位在ADC_RESL。 else PCON2 &= ~(1<<5); //10位AD結果的高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; //優先級設置 PolityHigh,PolityLow else PADC = 0; } |
只是一個函數的話好像少了什么... 建議看一下STC的手冊,ADC部分,手冊上很清晰的,照著配置寄存器也很簡單。 基本步驟就是: 0.開中斷許可 1.P1口模擬功能選擇(P1ASF寄存器) 2.通道選擇(ADC_CONTER寄存器) 3.速度選擇(ADC_CONTER寄存器) 4.開始轉換(ADC_CONTER寄存器),需要轉換的時候對寄存器位操作 5.中斷函數配置,中斷號是5 6.其它的諸如結果如何存放,優先級之類的,基礎應用涉及不多。 Keil仿真用的少,真沒注意看過結構體的數值,幫不上了,看看后續有沒有人吧。 |
用KEIL4仿真時,怎樣才能看到結構體中各個成員的具體數值? |