单片机编程 锁存器锁存数据的过程需要时间吗? 为什么我看到例子上 给锁存器提供了 两个_nop_();函数呢?

我设计了一个时钟用定时器控制的我想如果程序在执行的时候执行了_nop_();函数那么我的这个时钟不就有了误差了吗?让锁存器锁存数据非要提供一小段时间吗?我自己试了试不提供... 我设计了一个时钟 用定时器控制的
我想如果程序在执行的时候 执行了 _nop_(); 函数
那么我的这个时钟不就有了误差了吗?
让锁存器锁存数据 非要提供一小段时间吗?
我自己试了试 不提供也行 不过我不确定
谢谢各位大哥大姐了 谢谢
展开
 我来答
lylxy1965
2011-05-03 · TA获得超过2413个赞
知道小有建树答主
回答量:436
采纳率:100%
帮助的人:222万
展开全部
关于定时器时钟(以定时/计数器0为例,比如10ms一次中断):
1、影响定时器的因素主要有TR0、TH0、TL0、TMOD,主程序运行时只要不改动上述控制信息,_nop_()不会对定时精度产生影响,因为定时计数是由单片机内部的硬件完成的。
2、进入中断服务程序后一般的做法是马上重新装载THx和TLx,这样定时计数仍然在后台运行,中断程序执行时间的长短不会影响每次中断的时间间隔,用几个_nop()_无所谓。反之,由于中断服务程序中一般都会有判断跳转等语句,每次执行时间的长短有可能不同,如果选择在退出中断前再重装则实际上每次中断的时间间隔可能是不一样的,这就会产生误差。
3、所以正常情况下中断服务程序一般尽可能简洁,只是设定标志,比如最多只占用500us时间,这样可以留出足够的时间在主循环中处理剩下的大量的运算。

关于锁存器
一般单片机外围电路使用的常规芯片基本上都是ns级的,而单片机对外部设备的访问时序是us级的。你可以看一下锁存器的时序,具体的方式我记不清了,但是单片机端口信号的输出肯定满足锁存器锁存所需的时间要求,所以你不加时间也可以。你的这种认真很好,在使用新的芯片是一定要关注时序,留有余量,否则将来出了问题查起来无从下手
阳光部落阿强
2011-05-03 · TA获得超过424个赞
知道小有建树答主
回答量:716
采纳率:0%
帮助的人:293万
展开全部
厄,好像没这个必要吧,你给一条脉冲让锁存器打开,然后数据进去,再给个脉冲让所存器锁存,这样就好了我都是这么干的。你用定时器控制时间的话跟锁存器没影响,定时器是后台运行程序。你锁存器延时不会对定时器定时造成影响吧,除非你要在定时器中断服务程序里面调用延时程序。
追问
我在锁存器锁存的时候  调用——nop——();
追答
你那个nop()函数里面到底是什么东西哦;是不是在这个函数里面完成所存操作,如果是的话这个函数是不是在定时器中断服务程序里面调用,如果是那么多时间恐怕有点影响,但是语句不多的话影响不大,如果没有在定时器中断函数里面那你调用无数次都没关系。因为两个函数是独立运行的
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2011-05-03
展开全部
通常情况下,锁存器的速度会比单片机的速度快.
参考你的锁存器类型,以及你MCU的速度,决定是否延时.

个人认为通常情况下不用加.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
924571633
2011-05-03
知道答主
回答量:1
采纳率:0%
帮助的人:0
展开全部
你执行任何指令都需要时间,如果时间是1us相对于1S的话完全可以忽略不计!
追问
奥 谢谢  不过时间长了  这个时钟不就不准了吗?
另外锁存器锁存数据需要提供明显的时间吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式