智能车制作

标题: 一个关于初始化的疑问,困扰已久,望高手指点! [打印本页]

作者: cyberobot    时间: 2014-12-3 15:26
标题: 一个关于初始化的疑问,困扰已久,望高手指点!
一个模块要使用的话,需要我们对其进行初始化配置,初始化前,一般会先禁用该模块,可是不配置的寄存器是不是自动复位了呢?如果是,那在禁用时复位的还是还是在启用时复位的的呢?如果不是,那未配置的寄存器又是怎样运作的呢,为什么不会对我们造成影响呢?

作者: 1224091496    时间: 2014-12-3 15:45
除非有说明否则不掉电一般不会有自动复位这个概念的,一个经典的例子:你先开一个io时钟,然后点亮一个led,这时候led会亮;保持不掉电,把开启io时钟注释掉,led还是亮的;然后掉电重开,led灭了。你可以试试。其实内部应该是用掩码来实现的吧,不同芯片可能不一样。
不对的地方 欢迎拍砖
作者: cyberobot    时间: 2014-12-3 16:12
1224091496 发表于 2014-12-3 15:45
除非有说明否则不掉电一般不会有自动复位这个概念的,一个经典的例子:你先开一个io时钟,然后点亮一个led, ...

嗯,谢谢回答,可是我试了一下,这个方法好像检测不了,原因是重写程序的话,系统会擦除原有编程,也就是预期的小灯不熄灭现象没有出现,当然,也不排除我理解有误。说明一下,我用的是xs128芯片。不过,我在想,会不会是重写程序的时候,未配置的寄存器就被复位了,这样一来好像一切都说得通了,阁下怎么看?

作者: 1224091496    时间: 2014-12-3 19:54
cyberobot 发表于 2014-12-3 16:12
嗯,谢谢回答,可是我试了一下,这个方法好像检测不了,原因是重写程序的话,系统会擦除原有编程,也就是 ...

这个芯片我没用过,但用别的试了一下还是好使的。(我觉得有可能是你下载的时候进行复位了,当然也可能是我说的不对)我们来分析一下,不掉电复位的前提下,你程序不管写了几次都是对寄存器进行操作。而你重新下程序之后,擦除了flash清空了堆栈,然后又对另外的寄存器操作。你并没有做其他事情,除非是新操作的寄存器内部会对原有寄存器进行操作否则不会有这种情况出现。这些寄存器的功能在数据手册里都有。

作者: cyberobot    时间: 2014-12-3 21:08
确实,现在积累了好多问题,是应该好好看看Datesheet了!
作者: ︶▔丶沉醉    时间: 2014-12-3 21:10
:lol:lol:lol:lol




欢迎光临 智能车制作 (http://dns.znczz.com/) Powered by Discuz! X3.2