打印
[ZLG-ARM]

LPC2104有什么办法实现精确延时

[复制链接]
2010|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
linjing|  楼主 | 2007-3-31 23:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
以下是前提
1. 延时的过程中最好不关断,以保持对高优先级中断的响应
2. 延时的时间可能很短,比如说5us,也有可能比较长,比如说500us,且对时序的精度要求比较高
3. 系统中有不少于一个的较高级别的中断源,其中断服务的执行时间极端情况下可能比较长,比如说有可能大于500us,但通常不会太长。
4. 系统主频不希望太高(纯粹个人习惯),比如说11.06MHz,

应用1,读写单总线器件DS1820,需要比较严格的时序,比如单总线读取时序,
1.将口线输出0,
2.延时待6us
3.口线变高阻态
4.延时9us
5.读取口线上的电平(口线输出0,15us后读取)
6.口线输出0,60us后返回

应用2,模拟串口
LPC2103中有两个串口,但有时使用PWM的时候会导致管脚冲突,或者需要更多的串口的时候,需要软件模拟串口。串口接收的时候,收到起始位后每隔一段固定的时间检测输入信号,以9600bps的速率接收时,每位需要延时104us,接收一个字节需要1ms,即使232协议允许有一定的速率波动,通常也不会超过10%。

以这两个应用为例,都需要比较精确的us级的延时,误差都不能太大,要想用关中断的办法来确保延时精度都需要关比较长时间的中断。
以前用51实现的时候,1ms干不了多少事,关上1ms的中断也就关了,还用过MSP430,TA0有定时锁存管脚信号的功能,ARM的定时器没发现有这个功能

下面是问题:
用ARM,比如说LPC2104,不知道有什么更好的办法实现精确延时没有!?

相关帖子

沙发
zlgARM| | 2007-3-31 23:42 | 只看该作者

linjing

    精确延时和中断之间的关系应该是由用户自己来处理。
    单说精确延时本身的话,在Fpclk合适的时候,用定时器足够了。您可以看一下定时器部分,以及Fpclk和Fcclk的关系。

使用特权

评论回复
板凳
shmily9588| | 2007-4-18 21:34 | 只看该作者

这个跟指令的执行周期有关系吧

如果是要3us这样的短的时间间隔,也能用定时器来完成???

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

35

主题

327

帖子

0

粉丝