stm8s关于AD 连续转换和单次转换的寄存器问题。求助!

2019-07-19 21:23发布

stm8s 寄存器ADC_CR1 的CONT位控制 连续转换/单次转换。
  ADC_CSR  的EOC 是转换完成的标志位。
在连续转换模式下。每次转换完成 需要清除/置零EOC位, 才能进行下次转换?是这样的么?
那么单次转换 模式下同样的 清除/置零EOC位,会有什么效果?
以及。转换完成之后。关闭/置零 ADC_CR1的 ADON 位置。关闭ADC。那么此时的EOC处于什么状态?然后再次开启/置一 ADON位。  这时候的EOC什么状态。



好吧,我真正的问题来了: 单次转换之后 关闭ADON 置零EOC  然后再次开启ADON 能不能达到和连续转换一样的效果?             

  新手,不太会用仿真 查看寄存器。害怕自己得到的结果是错误的。特来求助各位大大~~
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
5条回答
hotdll
2019-07-20 01:10
问1:在连续转换模式下。每次转换完成 需要清除/置零EOC位, 才能进行下次转换?是这样的么?
STM8S的连续转换模式有两种,一种是连续模式,一种是带缓存的连续模式,不知道你说的是哪一种?不过不管哪一种,清不清零EOC位,转换都不会停止,停止只有清零CONT位或复位清零ADON位。

问2:那么单次转换 模式下同样的 清除/置零EOC位,会有什么效果?
单次转换与否与EOC位是否置位无关,EOC位是状态位,只反映本次转换是否完成,清零or置位不影响转换的停止or进行。

问3:转换完成之后。关闭/置零 ADC_CR1的 ADON 位置。关闭ADC。那么此时的EOC处于什么状态?然后再次开启/置一 ADON位。  这时候的EOC什么状态。
这个取决于STM8S的状态寄存器初始化过程,参考手册给的复位值是0,,如果关闭了ADC电源,再次开启ADC电源,那么所有寄存器都是按初始化值定义,EOC是0,如果仅仅是停止ADC,再次开启,因为寄存器并未初始化,故寄存器状态不变,EOC是1,这个关键是你用什么手段关闭ADC,该手段是否影响寄存器的值。

问4: 单次转换之后 关闭ADON 置零EOC  然后再次开启ADON 能不能达到和连续转换一样的效果?
这个是悖论的问题,因为单次模式本身就是通过开启ADON开实现转换的。
而将ADON清零后,STM8S的ADC将处于低功耗模式,再次开启ADON,并不会发生转换,只是唤醒了STM8S的ADC,需要转换,必须再次都ADON置位,才会开始。这个与是否连续同样的效果八竿子都打不到关系。

一周热门 更多>