//======================================================================== // 函数: 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仿真时,怎样才能看到结构体中各个成员的具体数值? |