发明名称 |
一种用ARM单片机产生快速指数型脉冲输出方法 |
摘要 |
本发明公开了一种用ARM单片机产生快速指数型脉冲输出方法,包括以下步骤:(1)定时器设置:(2)输入所要输出脉冲序列的必要参数;(3)计算指数曲线并将每个点的值保存于数组中;(4)在定时器的中断更新周期中执行下列步骤,实现将已计算完成的曲线数组输出。本发明提供了一种用ARM单片机产生快速指数型脉冲输出的方法;实现了指数曲线的计算,并保存在数组中;实现了用定时器对曲线的快速输出;实现了指数曲线的加减速的对称输出。 |
申请公布号 |
CN105375904A |
申请公布日期 |
2016.03.02 |
申请号 |
CN201510835332.6 |
申请日期 |
2015.11.26 |
申请人 |
深圳市思榕科技有限公司 |
发明人 |
王伟程;罗永明 |
分类号 |
H03K4/00(2006.01)I;H02P8/14(2006.01)I |
主分类号 |
H03K4/00(2006.01)I |
代理机构 |
深圳力拓知识产权代理有限公司 44313 |
代理人 |
龚健 |
主权项 |
一种用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的结果大于或等于脉冲序列的总数的一半,从预先计算的数组中,从尾部开始倒序取出元素值,每次只取一个,将定时器的更新中断周期设置为元素值,将定时器的比较器值设置为更新周期的一半。 |
地址 |
518000 广东省深圳市龙华新区龙华办事处清湖居清湖村委卫东龙工业区7号厂房1至3层 |