CN105375904A - 一种用arm单片机产生快速指数型脉冲输出方法 - Google Patents
一种用arm单片机产生快速指数型脉冲输出方法 Download PDFInfo
- Publication number
- CN105375904A CN105375904A CN201510835332.6A CN201510835332A CN105375904A CN 105375904 A CN105375904 A CN 105375904A CN 201510835332 A CN201510835332 A CN 201510835332A CN 105375904 A CN105375904 A CN 105375904A
- Authority
- CN
- China
- Prior art keywords
- timer
- pulse
- result
- calculation
- cycle
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title abstract description 5
- 238000001208 nuclear magnetic resonance pulse sequence Methods 0.000 claims abstract description 7
- 238000004364 calculation method Methods 0.000 claims description 23
- 230000001133 acceleration Effects 0.000 abstract description 4
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000004080 punching Methods 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K4/00—Generating pulses having essentially a finite slope or stepped portions
-
- H—ELECTRICITY
- H02—GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
- H02P—CONTROL OR REGULATION OF ELECTRIC MOTORS, ELECTRIC GENERATORS OR DYNAMO-ELECTRIC CONVERTERS; CONTROLLING TRANSFORMERS, REACTORS OR CHOKE COILS
- H02P8/00—Arrangements for controlling dynamo-electric motors rotating step by step
- H02P8/14—Arrangements for controlling speed or speed and torque
Landscapes
- Engineering & Computer Science (AREA)
- Power Engineering (AREA)
- Control Of Stepping Motors (AREA)
Abstract
本发明公开了一种用ARM单片机产生快速指数型脉冲输出方法,包括以下步骤:(1)定时器设置:(2)输入所要输出脉冲序列的必要参数;(3)计算指数曲线并将每个点的值保存于数组中;(4)在定时器的中断更新周期中执行下列步骤,实现将已计算完成的曲线数组输出。本发明提供了一种用ARM单片机产生快速指数型脉冲输出的方法;实现了指数曲线的计算,并保存在数组中;实现了用定时器对曲线的快速输出;实现了指数曲线的加减速的对称输出。
Description
技术领域
本发明涉及AMR单片机技术设备领域,具体是一种用ARM单片机产生快速指数型脉冲输出方法。
背景技术
单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断***、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机***,在工业控制领域广泛应用。从上世纪80年代,由当时的4位、8位单片机,发展到现在的300M的高速单片机。
在单片机+步进伺服马达驱动***中,要求运行时马达有加减速的功能,以减少机械装置的冲击,现在多是采用简单的定时器+IO端口操作,模拟输出线性脉冲和采用运动控制器的驱动方案来实现,采用运动控制器的驱动方案会导致成本过高,不能用在要求低成本的场合,采用单片机模拟线性肪冲输出,精度差,频率不稳定,不能平滑过渡,运动机构冲击大。
发明内容
本发明的目的在于提供一种用ARM单片机产生快速指数型脉冲输出方法,以解决上述背景技术中提出的问题。
为实现上述目的,本发明提供如下技术方案:
一种用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的结果大于或等于脉冲序列的总数的一半,从预先计算的数组中,从尾部开始倒序取出元素值,每次只取一个,将定时器的更新中断周期设置为元素值,将定时器的比较器值设置为更新周期的一半。
作为本发明进一步的方案:所述步骤(2)中所要输出脉冲序列的必要参数为脉冲序列的总脉冲数、脉冲序列的最终频率、脉冲序列的启始频率和脉冲序列的加速时间。
与现有技术相比,本发明提供了一种用ARM单片机产生快速指数型脉冲输出的方法;实现了指数曲线的计算,并保存在数组中;实现了用定时器对曲线的快速输出;实现了指数曲线的加减速的对称输出。
具体实施方式
下面结合具体实施方式对本专利的技术方案作进一步详细地说明。
一种用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,实现了在中断程序中免去进行复杂计算,提高了实时性能,实现了快速脉冲输出。
(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的结果大于或等于脉冲序列的总数的一半,从预先计算的数组中,从尾部开始倒序取出元素值,每次只取一个,将定时器的更新中断周期设置为元素值,将定时器的比较器值设置为更新周期的一半。
本步骤实现脉冲的自动输出和自动停止,实现加速和减速对称输出。
作为本发明进一步的优选:所述步骤(2)中所要输出脉冲序列的必要参数为脉冲序列的总脉冲数、脉冲序列的最终频率、脉冲序列的启始频率和脉冲序列的加速时间。
本发明提供了一种用ARM单片机产生快速指数型脉冲输出的方法;实现了指数曲线的计算,并保存在数组中;实现了用定时器对曲线的快速输出;实现了指数曲线的加减速的对称输出。
上面对本专利的较佳实施方式作了详细说明,但是本专利并不限于上述实施方式,在本领域的普通技术人员所具备的知识范围内,还可以在不脱离本专利宗旨的前提下做出各种变化。
Claims (2)
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)中所要输出脉冲序列的必要参数为脉冲序列的总脉冲数、脉冲序列的最终频率、脉冲序列的启始频率和脉冲序列的加速时间。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510835332.6A CN105375904B (zh) | 2015-11-26 | 2015-11-26 | 一种用arm单片机产生快速指数型脉冲输出方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510835332.6A CN105375904B (zh) | 2015-11-26 | 2015-11-26 | 一种用arm单片机产生快速指数型脉冲输出方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105375904A true CN105375904A (zh) | 2016-03-02 |
CN105375904B CN105375904B (zh) | 2019-01-01 |
Family
ID=55377759
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510835332.6A Active CN105375904B (zh) | 2015-11-26 | 2015-11-26 | 一种用arm单片机产生快速指数型脉冲输出方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105375904B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108107777A (zh) * | 2017-12-11 | 2018-06-01 | 深圳市显控科技股份有限公司 | 一种脉冲发送方法及*** |
CN114244203A (zh) * | 2021-12-18 | 2022-03-25 | 杭州视洞科技有限公司 | 一种针对目标跟踪通过速度控制实现云台平滑转动的方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001119996A (ja) * | 1999-10-19 | 2001-04-27 | Olympus Optical Co Ltd | 分散制御システムのモータ加減速制御方法 |
CN201374674Y (zh) * | 2009-03-20 | 2009-12-30 | 中国舰船研究设计中心 | 步进电机控制装置 |
CN101944873A (zh) * | 2010-09-17 | 2011-01-12 | 中国科学院上海技术物理研究所 | 一种步进电机加减速的控制方法 |
-
2015
- 2015-11-26 CN CN201510835332.6A patent/CN105375904B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001119996A (ja) * | 1999-10-19 | 2001-04-27 | Olympus Optical Co Ltd | 分散制御システムのモータ加減速制御方法 |
CN201374674Y (zh) * | 2009-03-20 | 2009-12-30 | 中国舰船研究设计中心 | 步进电机控制装置 |
CN101944873A (zh) * | 2010-09-17 | 2011-01-12 | 中国科学院上海技术物理研究所 | 一种步进电机加减速的控制方法 |
Non-Patent Citations (1)
Title |
---|
花同: "步进电机控制***设计", 《电子设计工程》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108107777A (zh) * | 2017-12-11 | 2018-06-01 | 深圳市显控科技股份有限公司 | 一种脉冲发送方法及*** |
CN114244203A (zh) * | 2021-12-18 | 2022-03-25 | 杭州视洞科技有限公司 | 一种针对目标跟踪通过速度控制实现云台平滑转动的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105375904B (zh) | 2019-01-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5343081B2 (ja) | 経路計画器用の加加速度制限軌道計画システムおよび方法 | |
CN207339692U (zh) | 多轴伺服驱动器 | |
CN204585226U (zh) | 一种应用在机械手上的多轴运动控制器 | |
CN105677000B (zh) | 动态电压频率调整的***及方法 | |
CN108388205B (zh) | 学习模型构建装置以及控制信息最优化装置 | |
CN105375904A (zh) | 一种用arm单片机产生快速指数型脉冲输出方法 | |
US20180248465A1 (en) | Signal generating circuit, voltage conversion device, and signal generating method | |
CN101581927A (zh) | 计算机数值控制工具机及其加减速度方法 | |
CN112783098B (zh) | 多轴联动机械运动控制方法、装置、***及可读存储介质 | |
CN104243531A (zh) | 一种数据处理的方法、装置及*** | |
US10401849B2 (en) | Controller for performing hybrid control using velocity and force | |
CN109586589B (zh) | 一种mmc、子模块投入个数计算方法、投入方法及装置 | |
CN104063282A (zh) | IaaS云可变规模资源池管理方法、装置和服务器 | |
CN202120300U (zh) | Arm+fpga组成的计数器装置 | |
CN106788084A (zh) | 运动控制方法及装置、运动轨迹规划方法 | |
CN107873122A (zh) | 电动机控制*** | |
US20090265029A1 (en) | Machine tool and control method thereof | |
CN104898474A (zh) | 一种基于mcu的多通道均匀伺服脉冲生成方法 | |
CN104579651B (zh) | 椭圆曲线密码点乘运算的方法和装置 | |
CN103166496B (zh) | 逆变控制装置及方法 | |
CN109760053A (zh) | 一种桁架机械手的动态规划速度控制方法 | |
CN113186665B (zh) | 一种缝纫伺服电机的平滑速度规划控制方法 | |
TWI798563B (zh) | 智慧排程方法與智慧排程裝置 | |
US10088812B2 (en) | Function unit, analog input unit, and programmable controller system | |
JP2018182974A (ja) | 推進制御装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |