一种用arm单片机产生快速指数型脉冲输出方法

文档序号:9618399阅读:1270来源:国知局
一种用arm单片机产生快速指数型脉冲输出方法
【技术领域】
[0001]本发明涉及AMR单片机技术设备领域,具体是一种用ARM单片机产生快速指数型脉冲输出方法。
【背景技术】
[0002]单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器R0M、多种I/O 口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、Α/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。从上世纪80年代,由当时的4位、8位单片机,发展到现在的300M的高速单片机。
[0003]在单片机+步进伺服马达驱动系统中,要求运行时马达有加减速的功能,以减少机械装置的冲击,现在多是采用简单的定时器+10端口操作,模拟输出线性脉冲和采用运动控制器的驱动方案来实现,采用运动控制器的驱动方案会导致成本过高,不能用在要求低成本的场合,采用单片机模拟线性肪冲输出,精度差,频率不稳定,不能平滑过渡,运动机构冲击大。

【发明内容】

[0004]本发明的目的在于提供一种用ARM单片机产生快速指数型脉冲输出方法,以解决上述【背景技术】中提出的问题。
[0005]为实现上述目的,本发明提供如下技术方案:
一种用ARM单片机产生快速指数型脉冲输出方法,包括以下步骤:
(1)定时器设置:
1.1初始化定时器硬件,使其工作在脉冲调宽模式,占空比设为50% ;
1.2开通定时器周期更新中断功能,将脉宽比较器设为最大值;
1.3使定时器开始计时工作,并允许ARM单片机可以响应定时器的周期中断信号;
1.4使定时器处于系统周期中断状态,此状态没有脉冲输出;
(2)输入所要输出脉冲序列的必要参数;
(3)计算指数曲线并将每个点的值保存于数组中;
循环执行以下步骤,循环次数等于总脉冲数:
3.1计算最终频率与步骤3.3的计算结果(首次计算时取启始频率值)的差值;
3.2将步骤3.1的计算结果加步骤3.5的计算结果(首次计算时取0值)再除以加速时间;
3.3将步骤3.2的计算结果取整;
3.4将步骤3.3的计算结果保存入数组中备用;
3.5将步骤3.2的计算结果取余数;
3.6若步骤3.2的计算结果与最终的频率相等则退出循环,完成计算; (4)在定时器的中断更新周期中执行下列步骤,实现将已计算完成的曲线数组输出:
4.1清除相关的中断标志位;
4.2判断曲线计算已完成,在本次脉冲序列的首次输出时,执行步骤4.3,否则跳过步骤4.3,执行步骤4.4 ;
4.3将定时器的更新中断周期设置为启始频率,定时器的比较器值设置为更新周期的一半;
4.4对输出脉冲进行计数;
4.5如果步骤4.4的结果等于脉冲序列的总数时,设置定时器的比较器为最大值,使脉冲输出停止;
4.6如果步骤4.4的结果小于脉冲序列的总数的一半,从预先计算的数组中,从头开始顺序取出元素值,每次只取一个,将定时器的更新中断周期设置为元素值,将定时器的比较器值设置为更新周期的一半;
4.7将步骤4.4的结果大于或等于脉冲序列的总数的一半,从预先计算的数组中,从尾部开始倒序取出元素值,每次只取一个,将定时器的更新中断周期设置为元素值,将定时器的比较器值设置为更新周期的一半。
[0006]作为本发明进一步的方案:所述步骤(2)中所要输出脉冲序列的必要参数为脉冲序列的总脉冲数、脉冲序列的最终频率、脉冲序列的启始频率和脉冲序列的加速时间。
[0007]与现有技术相比,本发明提供了一种用ARM单片机产生快速指数型脉冲输出的方法;实现了指数曲线的计算,并保存在数组中;实现了用定时器对曲线的快速输出;实现了指数曲线的加减速的对称输出。
【具体实施方式】
[0008]下面结合【具体实施方式】对本专利的技术方案作进一步详细地说明。
[0009]一种用ARM单片机产生快速指数型脉冲输出方法,包括以下步骤:
(1)定时器设置:
1.1初始化定时器硬件,使其工作在脉冲调宽模式,占空比设为50% ;
1.2开通定时器周期更新中断功能,将脉宽比较器设为最大值;
1.3使定时器开始计时工作,并允许ARM单片机可以响应定时器的周期中断信号;
1.4使定时器处于系统周期中断状态,此状态没有脉冲输出;
(2)输入所要输出脉冲序列的必要参数;
(3)计算指数曲线并将每个点的值保存于数组中;
循环执行以下步骤,循环次数等于总脉冲数:
3.1计算最终频率与步骤3.3的计算结果(首次计算时取启始频率值)的差值;
3.2将步骤3.1的计算结果加步骤3.5的计算结果(首次计算时取0值)再除以加速时间;
3.3将步骤3.2的计算结果取整;
3.4将步骤3.3的计算结果保存入数组中备用;
3.5将步骤3.2的计算结果取余数;
3.6若步骤3.2的计算结果与最终的频率相等则退出循环,完成计算; 本步骤实现了脉冲序列以指定的上下限频率和加速时间按指数规律进行变化的计算;用数组保存第一点的计算结果,并在定时器中断程序中直接使用,使定时器的脉冲输出频率按数组中的元素值输出,实现按脉冲的频率指数规律变化;并且,由于实施了步骤3.1和步骤3.2,实现了在中断程序中免去进行复杂计算,提高了实时性能,实现了快速脉冲输出。
[0010](4)在定时器的中断更新周期中执行下列步骤,实现将已计算完成的曲线数组输出:
4.1清除相关的中断标志位;
4.2判断曲线计算已完成,在本次脉冲序列的首次输出时,执行步骤4.3,否则跳过步骤4.3,执行步骤4.4 ;
4.3将定时器的更新中断周期设置为启始频率,定时器的比较器值设置为更新周期的一半;
4.4对输出脉冲进行计数;
4.5如果步骤4.4的结果等于脉冲序列的总数时,设置定时器的比较器为最大值,使脉冲输出停止;
4.6如果步骤4.4的结果小于脉冲序列的总数的一半,从预先计算的数组中,从头开始顺序取出元素值,每次只取一个,将定时器的更新中断周期设置为元素值,将定时器的比较器值设置为更新周期的一半;
4.7将步骤4.4的结果大于或等于脉冲序列的总数的一半,从预先计算的数组中,从尾部开始倒序取出元素值,每次只取一个,将定时器的更新中断周期设置为元素值,将定时器的比较器值设置为更新周期的一半。
[0011]本步骤实现脉冲的自动输出和自动停止,实现加速和减速对称输出。
[0012]作为本发明进一步的优选:所述步骤(2)中所要输出脉冲序列的必要参数为脉冲序列的总脉冲数、脉冲序列的最终频率、脉冲序列的启始频率和脉冲序列的加速时间。
[0013]本发明提供了一种用ARM单片机产生快速指数型脉冲输出的方法;实现了指数曲线的计算,并保存在数组中;实现了用定时器对曲线的快速输出;实现了指数曲线的加减速的对称输出。
[0014]上面对本专利的较佳实施方式作了详细说明,但是本专利并不限于上述实施方式,在本领域的普通技术人员所具备的知识范围内,还可以在不脱离本专利宗旨的前提下做出各种变化。
【主权项】
1.一种用ARM单片机产生快速指数型脉冲输出方法,其特征在于,包括以下步骤: (1)定时器设置: 1.1初始化定时器硬件,使其工作在脉冲调宽模式,占空比设为50% ; 1.2开通定时器周期更新中断功能,将脉宽比较器设为最大值; 1.3使定时器开始计时工作,并允许ARM单片机可以响应定时器的周期中断信号; 1.4使定时器处于系统周期中断状态,此状态没有脉冲输出; 输入所要输出脉冲序列的必要参数; 计算指数曲线并将每个点的值保存于数组中; 循环执行以下步骤,循环次数等于总脉冲数: 3.1计算最终频率与步骤3.3的计算结果(首次计算时取启始频率值)的差值; 3.2将步骤3.1的计算结果加步骤3.5的计算结果(首次计算时取0值)再除以加速时间; 3.3将步骤3.2的计算结果取整; 3.4将步骤3.3的计算结果保存入数组中备用; 3.5将步骤3.2的计算结果取余数; 3.6若步骤3.2的计算结果与最终的频率相等则退出循环,完成计算; 在定时器的中断更新周期中执行下列步骤,实现将已计算完成的曲线数组输出: 4.1清除相关的中断标志位; 4.2判断曲线计算已完成,在本次脉冲序列的首次输出时,执行步骤4.3,否则跳过步骤4.3,执行步骤4.4 ; 4.3将定时器的更新中断周期设置为启始频率,定时器的比较器值设置为更新周期的一半; 4.4对输出脉冲进行计数; 4.5如果步骤4.4的结果等于脉冲序列的总数时,设置定时器的比较器为最大值,使脉冲输出停止; 4.6如果步骤4.4的结果小于脉冲序列的总数的一半,从预先计算的数组中,从头开始顺序取出元素值,每次只取一个,将定时器的更新中断周期设置为元素值,将定时器的比较器值设置为更新周期的一半; 4.7将步骤4.4的结果大于或等于脉冲序列的总数的一半,从预先计算的数组中,从尾部开始倒序取出元素值,每次只取一个,将定时器的更新中断周期设置为元素值,将定时器的比较器值设置为更新周期的一半。2.根据权利要求1所述的一种用ARM单片机产生快速指数型脉冲输出方法,其特征在于,所述步骤(2)中所要输出脉冲序列的必要参数为脉冲序列的总脉冲数、脉冲序列的最终频率、脉冲序列的启始频率和脉冲序列的加速时间。
【专利摘要】本发明公开了一种用ARM单片机产生快速指数型脉冲输出方法,包括以下步骤:(1)定时器设置:(2)输入所要输出脉冲序列的必要参数;(3)计算指数曲线并将每个点的值保存于数组中;(4)在定时器的中断更新周期中执行下列步骤,实现将已计算完成的曲线数组输出。本发明提供了一种用ARM单片机产生快速指数型脉冲输出的方法;实现了指数曲线的计算,并保存在数组中;实现了用定时器对曲线的快速输出;实现了指数曲线的加减速的对称输出。
【IPC分类】H02P8/14, H03K4/00
【公开号】CN105375904
【申请号】CN201510835332
【发明人】王伟程, 罗永明
【申请人】深圳市思榕科技有限公司
【公开日】2016年3月2日
【申请日】2015年11月26日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1