当前位置:首页 > 内存 > 正文

内存cr2是分频了吗(内存cr1cr2怎么切换)

  • 内存
  • 2024-08-12 05:53:04
  • 191

一、如何使用STM8S微控制器中的AD转换STM8S单片机的A/D结构介绍:
ADC1ADC2(部分型号没有ADC2)可以让您对Masu的每个通道进行单次转换模式和连续转换模式。
1.电压0至Vdda;
2.64引脚和80引脚封装具有独立的Vref;其他封装格式的Vref连接至Vdda。
3.格式;
4.时间14个时钟周期;
5.10位转换精度;
6.转换结束中断的产生;
编程时注意事项:>通过置位ADC_CR1寄存器中的ADON位来打开ADC。当ADON位首次被置位时,ADC从低功耗模式唤醒。要启动转换,必须使用第二个写入命令来设置ADC_CR1寄存器中的ADON位。ADC在转换结束时保持通电状态,用户只需设置ADON位一次即可开始下一次转换。
如果长时间不使用ADC,建议将ADC模块切换至低功耗模式,以降低功耗。这可以通过清零ADON位来实现。当ADC模块上电时,所选通道对应的I/O口输出模块被禁用。因此,建议在给ADC上电之前选择合适的ADC转换通道。
单次模式为单次转换模式时,ADC仅在ADC_CSR寄存器中CH[3:0]选择的通道上完成一次转换。当CONT位为0时,通过设置ADC_CR1寄存器中的ADON位来进入该模式。
转换完成后,转换后的数据保存在ADC_DR寄存器中,EOC(转换结束)标志置位,EOCIE置位,并产生中断。
代码如下:
#include"adc.h"
u16TempADC;
voidADC_Config(void)
{
ADC_CR1|=0x01;//开始启动开始初始化一次必须
//第一次写1将ADC从低功耗唤醒,第二次写1启动ADC转换
//ADC_CR1|=0x20;//使能转换结束中断,即本例中使用的查询方法。
}
uint16_tGet_ADCCH_Value(ADC1_Channel_TypeDefADC_Channel)
{
ADC1_Init(ADC1_CONVERSIONMODE_CONTINUOUS,ADC_Channel,ADC1_PRESSEL_FCPU_D2,
ADC1_EXTTRIG_TIM,DISABLE,ADC1_ALIGN)_RIGHT,_ALL,已禁用);
//也可以使用如下的寄存器操作代码,但未经测试。
#if0
ADC_CR2=0x00;//A/D结果数据左对齐
CLK_PCKENR2|=0x08;//使能fMASTER与ADC之间的连接
ADC_CR1=0x00;//ADC时钟=主时钟/2=8MHz,单次转换模式
ADC_CSR=0x01;//选择通道2
ADC_TDRL=0x01;//禁用施密特触发功能
ADC_TDRH=0x01;
ADC_CR1=0x03;//除2,连续转换,ADC启动
ADC_CR2=0x31;//外部事件保留,数据右对齐,扫描模式禁用,
ADC_CSR|=0x01;//选择通道1
#endif
ADC1_ConversionConfig(ADC1_CONVERSIONMODE_CONTINUOUS,ADC_Channel,ADC1_ALIGN_RIGHT);
ADC_CR1|=0x01;//开始转换
while(!(ADC_CSR&0x80));//等待转换完成
returnADC1_GetConversionValue();//返回ADC结果
}
//因为这段初始化代码很重要,所以每次都要初始化。请切换频道!
直接在主函数中调用即可:
TempADC=Get_ADCCH_Value(ADC1_CHANNEL_1);//获取AD转换值
WetADC=Get_ADCCH_Value(ADC1_CHANNEL_3;//获取AD转换值Masu)
二、DualDDR2-6285-5-5-15CR2是什么意思?由于AMDCPU分频,无法改为667。
分频计算方法
分频系数=CPU标准频率÷额定内存频率(667为333)
结果始终为1(如6.1546=7,,6.984587=7)
则用CPU当前主频÷分频系数=内存实际频率"
你的667内存是628"
这说明你的CPU是4800+。````

上一篇:cr2内存模式

下一篇:内存时序19-19-19-43