| RSS
深圳电器感厂家
您当前的位置:电感器制造商 > 技术知识

LPC21xx C程序的精确延时方法

来源:    作者:     发布时间:2015-04-06 09:36:54     点击数:

引言
随着微处理器技术的发展,微处理器不断升级,内核的太诱电感处理速度越来越快,同时也出现了精确延时的问题。由于ARM7微控制器LPC21xx使用了三级流水线技术,精确延时对开发者特别是初学者带来了一定的难度。下面介绍几种LPC21xx在C程序下实现精确延时的实用方法。
实现延时通常有两种方法:一种是硬件延时,采用定时器/计数器实现精确延时,可以电感器生产厂家提高CPU的工作效率;另一种是软件延时,这种方法主要采用循环体进行。

1 硬件延时
Philips公司的LPC21xx系列微控制器具有2个32位可编程定时器/计数器,均具有4路捕获、4路比较并输出电路。定时器对外设时钟周期进行计数,在到达指定的定时值时可选择产生中断来执行其他动作。可用作对内部事件进行计数的间隔定时器,或自由运行的定时器,亦
可通过捕获输入实现脉宽调制。LPC21xx系列具有4个32位匹配寄存器。匹配时,可选择产生中断使定时器继续工作、停止或复位。
使PO.7口输出方波的波形。匹配时复位定时器,产生中断使高低电平持续时间均为O.5 s,如图1所示。


在实际应用中,定时常采用中断方式,如进行适当的循环可实现几秒甚至更长时间的延时。从程序的执行效率和稳定性两方面考虑,使用定时器/计数器延时是最佳的方案。但是占用了一个定时器,比较浪费,并且可移植性也比较差。因此,在并非要求精确定时的情况下,一般不建议采用。

2 软件延时
2.1 使用系统函数延时

LPC21xx微控制器可以采用嵌入式操作系统进行任务的管理,如果需要延时可以使用系统的延时函数实现。采用μC/0S-II实时操作系统时,可以使用系统提供的延时函数。
(1)任务延时函数OSTimeDly()。延时长短由指定的时钟节拍数目(O~65535)来确定。调用该函数会使系统进行一次任务调度,去执行下一个优先级最高的任务。任务调用该函数后,一旦规定的时间到了,或有其他任务通过调用OSTimeDlyResume()取消了延时,那么该任务就会立即进入就绪状态。
(2)按时分秒延时函数OSTimeDlyHMSM()。为了更为习惯地使用任务,系统还提供了按时分秒延时函数。此函数可以精确延时到小时、分、秒,调用这个函数可引发一次任务调度。调用函数OSTimeDlyResume()可取消延时,该任务就会立即进入就绪状态。
例如,通过P1.18口控制LEDl,调用OSTimeDlyHMSM()函数进行1 s的延时。代码如下:

示波器观察到的波形以及延时情况如图2所示。


2.2 使用示波器确定延时时间
LPC21xx系列微控制器基于ARM7TDMI-S内核,采用三级流水线结构,如图3所示。处理和存储系差模电感统的所有部分都可连续工作。通常在执行一条指令的同时就对下一条指令进行译码,并将第三条指令从存储器中取出。


因带有Cache,所以具体指令执行时间会有不同,在学习和开发过程中需要对指令时间有较粗略的判断,具体到μs级、ms级的延时。虽然采用定时器似乎比较精确,但是定时器不能解决所有问题,有些情况还需要用到软件延时。代码如下:

使PO.7口输出方波,高低电平延时时间为dly=1。通过示波器观察延时时间,具体波形如图4所示。



10 μs和1μs延时程序的波形分别如图5和图6所示。在主函数里调用以上函数,就可以实现非精确延时工字电感器。采用这种方法,虽然延时不是十分精确,但是不占用资源,并且可移植性很好,示波器效果观察起来直观。因此,在不要求延时很精确的情况下,可以采用此方法进行定时。1

对于图2.1所示的基本电感储能电路,其输出电压波形为类三角波。例如,采用文献[6]所给参数,数值仿真计算得到的负载上电压波形如图2.5所示,为类三角波。然而对于HPM系统而言,脉冲功率

随着电子系统的小型化、高频化,磁性器件的工作频率己进入MI-Iz频段,甚至GHz频段。这推动磁性元器件电感、变压器朝小型化、高频化发展。铁氧体是传统变压器设计的首选材料,它具

单定子长初级直线感应电机模型与短初级长次级直线感应电机相比,边端效应对长初级短次级直线感应电机的影响较小,并且随着动子长度的增加而逐渐减弱??。因此,基于如下假设:1)动子


上一篇: 基于AVR单片机的灭火机器人设计与实现
下一篇:功率电感器
来顶一下
返回首页
返回首页
相关文章
推荐资讯
电感数字转换器
电感数字转换器
相关文章
栏目更新
栏目热门