搜索
bottom↓
回复: 123

Open Source--位置环 速度环 控制步进电机

  [复制链接]

出0入0汤圆

发表于 2016-1-28 17:32:32 | 显示全部楼层 |阅读模式
想了想,还是开源吧,自己花了两天多的时间调出来的。

PID 位置环、速度环控制步进电机,在起动和停止的时候会有相应的加速和减速的过程,目前测试的效果比较良好。

基本思路如下:

需要使用一个PMW、一个Counter,以及一个触发频率为1KHz的中断。在触发频率为1KHz的中断内部,完成所有PID相关的调整。

PositionPID位置环通过Counter得到的PWM输出的脉冲数与PositionPlantCommand的步数进行比较,从而输出速度。
此速度会做为VelociytPID的PlantCommand,最后输出VelocityPlantDreive,也就是需要调整的PWM频率。

关键的参数主要是两个PID的参数,目前我调整的参数适用于16细分下、最高15KHz的脉冲驱动频率,里面也注释了
将频率提高到20K需要调整的参数。

需要注意的事项:
1、一定要确保PWM的最低频率要比中断的频率低,否则不能正常的停止;
2、PositionPID不能有积分项,注释里面有说明;
3、目前我使用的计数器是16位的,因此只支持最大65535的步数,对于16细分,1.8度的电机,最大也就是20转的行程;
4、估计是让大多数坛友失望的了,我使用的MCU是英飞凌系列的,所以基本上想用的话都需要比较大的改动了;
5、调试的时候可以通过串口输出两个PID的输出,以方便调整PID的参数;
6、PID相关的资料参考的是《PID Without a PhD》;
7、有写的不好的地方请轻喷,还希望多多指点。

其它的好像就没有什么了。。。。。。

有需要的拿去吧!祝你好运!!!!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

如果想吃一顿饺子,就得从冰箱里取出肉,剁馅儿,倒面粉、揉面、醒面,擀成皮儿,下锅……
一整个繁琐流程,就是为了出锅时那一嘴滚烫流油的热饺子。

如果这个过程,禁不住饿,零食下肚了,饺子出锅时也就不香了……《非诚勿扰3》

出0入0汤圆

发表于 2016-1-28 17:34:05 | 显示全部楼层
感谢分享!

出0入0汤圆

 楼主| 发表于 2016-1-28 20:22:29 | 显示全部楼层

。。。。。

出0入0汤圆

发表于 2016-1-28 22:02:07 | 显示全部楼层
谢谢大神啊啊

出20入0汤圆

发表于 2016-1-28 22:24:48 | 显示全部楼层
  谢谢分享。

出100入85汤圆

发表于 2016-1-28 23:04:40 来自手机 | 显示全部楼层
下载了还没看,先谢谢你先。

出0入0汤圆

发表于 2016-1-28 23:46:14 | 显示全部楼层
楼主用的哪个系列的啊?

出0入0汤圆

 楼主| 发表于 2016-1-28 23:50:40 | 显示全部楼层
PCBBOY1991 发表于 2016-1-28 23:46
楼主用的哪个系列的啊?

4500。。。。

出0入0汤圆

发表于 2016-1-28 23:52:07 | 显示全部楼层

不懂。。。。。。。。。。。。

出0入0汤圆

 楼主| 发表于 2016-1-28 23:52:59 | 显示全部楼层
PCBBOY1991 发表于 2016-1-28 23:52
不懂。。。。。。。。。。。。

Xmc4500.....

出0入0汤圆

发表于 2016-1-28 23:54:23 | 显示全部楼层

我是说这个单片机不懂。。。。。。。。。。。。。。
我会866。

出0入0汤圆

 楼主| 发表于 2016-1-28 23:57:38 | 显示全部楼层
PCBBOY1991 发表于 2016-1-28 23:54
我是说这个单片机不懂。。。。。。。。。。。。。。
我会866。

866 好像我不懂

都是C语言的时代了,好歹改一改应该都可以。主要是要有PWM和计数两个硬件功能。

出0入0汤圆

发表于 2016-1-29 07:58:26 来自手机 | 显示全部楼层
673104326 发表于 2016-1-28 23:57
866 好像我不懂

都是C语言的时代了,好歹改一改应该都可以。主要是要有PWM和计数两个硬件功 ...

其实思路最重要。

出0入0汤圆

发表于 2016-1-29 08:35:31 | 显示全部楼层
不错呀,LZ研究一下运动控制,合并一下功能吧

出0入0汤圆

发表于 2016-1-29 08:39:46 | 显示全部楼层
已下载 看下 感谢楼主

出0入0汤圆

 楼主| 发表于 2016-1-29 08:53:54 | 显示全部楼层
gzhmcu 发表于 2016-1-29 08:35
不错呀,LZ研究一下运动控制,合并一下功能吧

步进电机的运动控制?

出0入0汤圆

发表于 2016-1-29 08:55:29 | 显示全部楼层
673104326 发表于 2016-1-29 08:53
步进电机的运动控制?

是这个意义

出0入0汤圆

 楼主| 发表于 2016-1-29 09:00:07 | 显示全部楼层

暂时没这个想法,不过你可以把你关于步进电机运动控制的具体想法说出来看看

出0入4汤圆

发表于 2016-1-29 09:07:58 | 显示全部楼层
先下载看下能否看得懂。
谢谢LZ

出0入8汤圆

发表于 2016-1-29 09:12:18 | 显示全部楼层
开源就得支持,顶楼主

出0入0汤圆

发表于 2016-1-29 09:14:35 | 显示全部楼层
感谢楼主;

出0入0汤圆

发表于 2016-1-29 09:37:24 | 显示全部楼层
十分感谢楼主!!!

出0入0汤圆

发表于 2016-1-29 10:19:37 | 显示全部楼层
谢谢罗,,你的单片机有点高级啊,步进电机是那种类型的啊,是带编码和驱动的吗?

出0入0汤圆

发表于 2016-1-29 10:45:35 | 显示全部楼层
感谢楼主分享

出0入0汤圆

 楼主| 发表于 2016-1-29 10:48:50 | 显示全部楼层
1069182055 发表于 2016-1-29 10:19
谢谢罗,,你的单片机有点高级啊,步进电机是那种类型的啊,是带编码和驱动的吗? ...

裸机。。。。。。

出0入0汤圆

发表于 2016-1-29 14:00:04 | 显示全部楼层
673104326 发表于 2016-1-29 10:48
裸机。。。。。。

开源说下电机的驱动芯片吗?

出0入0汤圆

 楼主| 发表于 2016-1-29 14:43:31 | 显示全部楼层
1069182055 发表于 2016-1-29 14:00
开源说下电机的驱动芯片吗?


TMC260 。。。。。。

出0入0汤圆

发表于 2016-1-29 20:56:48 来自手机 | 显示全部楼层
不用编码器的闭环?

出0入0汤圆

 楼主| 发表于 2016-1-29 21:09:14 | 显示全部楼层
hmd420304805 发表于 2016-1-29 20:56
不用编码器的闭环?

是的,也可以加入编码器,把Counter的计数换成对编码器的计数。

出0入0汤圆

发表于 2016-1-30 02:09:18 来自手机 | 显示全部楼层
673104326 发表于 2016-1-29 21:09
是的,也可以加入编码器,把Counter的计数换成对编码器的计数。

为什么我感觉无编码器的闭环不靠谱?

出0入0汤圆

发表于 2016-1-30 07:04:11 来自手机 | 显示全部楼层
好东西不错

出0入0汤圆

 楼主| 发表于 2016-1-30 08:49:02 | 显示全部楼层
hmd420304805 发表于 2016-1-30 02:09
为什么我感觉无编码器的闭环不靠谱?


打个比喻:

一个严格服从命令的士兵,军官让他往前走下一步绝不会往前走两步,然后军官还是不放心,非要让他每走一走都要报告一下自己的位置。

问题来了,军官让他往前走1000步,他开始每走一步都报告一下自己的位置,突然士兵一直报告在500步的位置,然后军官也不管什么原因

导致士兵一直在500步的位置不动,并一直要求说走到1000步,走到1000步。最后士兵累死了,军官还在一直说走到1000步。。。。。。

导致步进电机丢步的原因,可能是力矩不够,也有可能是因某些外部因素导致不能动了。加了编码器的闭环对于第一种可能有效果,但最终的

精度如何却有待确定。而对于后面的情况,加入编码器只会让情况更糟,当然如果再加入相应的逻辑处理另说。

所以我觉得单纯的加入编码器也只是个心里安慰,而关键是要从根本上确保步进电机不能丢步,也就是要根据负载来调节电流,完成

这个闭环才有实在的意义。

出0入0汤圆

发表于 2016-1-30 09:26:57 | 显示全部楼层
有意思。值得研究研究

感谢楼主分享

出0入0汤圆

发表于 2016-1-30 10:12:42 | 显示全部楼层
673104326 发表于 2016-1-30 08:49
打个比喻:

一个严格服从命令的士兵,军官让他往前走下一步绝不会往前走两步,然后军官还是不放心,非 ...

这就是半闭环和全闭环的区别了,
伺服电机算是半闭环,终端因为其他原因造成误差,解决不了。
光栅尺属于全闭环,直接检测终端位置。

出0入0汤圆

 楼主| 发表于 2016-1-30 12:55:53 | 显示全部楼层
keil_c51 发表于 2016-1-30 10:12
这就是半闭环和全闭环的区别了,
伺服电机算是半闭环,终端因为其他原因造成误差,解决不了。
光栅尺属 ...


伺服电机是半闭环? 也是用的编码器?

公司好像有光栅尺,但没有玩过。。。。。。

出0入0汤圆

发表于 2016-1-30 13:55:44 | 显示全部楼层
正在学习步进电机,感谢楼主!

出0入0汤圆

发表于 2016-1-30 14:40:31 来自手机 | 显示全部楼层
673104326 发表于 2016-1-30 08:49
打个比喻:

一个严格服从命令的士兵,军官让他往前走下一步绝不会往前走两步,然后军官还是不放心,非 ...

我的意思是说,你怎么检测到电机转了多少度的?类似无刷电机那种过零检测?麻烦科普。

出0入0汤圆

发表于 2016-1-30 15:14:52 | 显示全部楼层
673104326 发表于 2016-1-29 14:43
TMC260 。。。。。。

芯片挺高级啊。。但是电流不是很高啊

出0入0汤圆

 楼主| 发表于 2016-1-30 15:28:40 | 显示全部楼层
1069182055 发表于 2016-1-30 15:14
芯片挺高级啊。。但是电流不是很高啊


好像有人都和你说过了,我再给你重复一下。

想电流大,用TMC262,外置MOS管,我目前用的能最大到5A左右,在4A左右驱动85电机的时候板子能整体控制在50度左右。

出0入0汤圆

 楼主| 发表于 2016-1-30 15:36:08 | 显示全部楼层
hmd420304805 发表于 2016-1-30 14:40
我的意思是说,你怎么检测到电机转了多少度的?类似无刷电机那种过零检测?麻烦科普。 ...


1.8度,两相 200步电机,16细分驱动,也就3200步对应360度,走多少步自然能算出多少度。

出0入0汤圆

发表于 2016-1-30 15:46:10 | 显示全部楼层
感谢楼主分享

出0入0汤圆

发表于 2016-1-30 16:11:19 | 显示全部楼层
mark一下

出0入0汤圆

发表于 2016-1-30 17:30:19 来自手机 | 显示全部楼层
673104326 发表于 2016-1-30 15:36
1.8度,两相 200步电机,16细分驱动,也就3200步对应360度,走多少步自然能算出多少度。 ...

那你这个怎么说是闭环?
就是个开环的能够接收脉冲数的驱动器而已啊。
真正的闭环是,有位置的返馈。也就是说给他动作指令的设备,必须知道他的位置。不管他是丢步,还是卡屎,还是其他什么故障。
我承认我理解错误了,以为是类似无刷那样的算法。能够不加反馈装置。都能知道准确位置。

出0入0汤圆

 楼主| 发表于 2016-1-30 22:18:02 | 显示全部楼层
hmd420304805 发表于 2016-1-30 17:30
那你这个怎么说是闭环?
就是个开环的能够接收脉冲数的驱动器而已啊。
真正的闭环是,有位置的返馈。也就 ...


哈哈,好吧,是我没讲清楚,你想的也有点复杂了。

应该算是个假闭环了,在保证不丢步的情况下,位置的“反馈”还是很准的。

出0入0汤圆

发表于 2016-2-1 08:32:04 | 显示全部楼层
673104326 发表于 2016-1-30 15:36
1.8度,两相 200步电机,16细分驱动,也就3200步对应360度,走多少步自然能算出多少度。 ...

细分只有16是不是有点低,这样没有噪声吗?

出0入0汤圆

发表于 2016-2-1 08:35:26 | 显示全部楼层
673104326 发表于 2016-1-30 15:28
好像有人都和你说过了,我再给你重复一下。

想电流大,用TMC262,外置MOS管,我目前用的能最大到5A左右 ...

出0入0汤圆

发表于 2016-2-1 08:48:22 | 显示全部楼层
673104326 发表于 2016-1-30 08:49
打个比喻:

一个严格服从命令的士兵,军官让他往前走下一步绝不会往前走两步,然后军官还是不放心,非 ...

这种芯片有没有控制3相电机的啊

出0入0汤圆

发表于 2016-2-1 09:17:13 | 显示全部楼层
感谢分享!

出0入0汤圆

 楼主| 发表于 2016-2-1 09:30:44 | 显示全部楼层
1069182055 发表于 2016-2-1 08:48
这种芯片有没有控制3相电机的啊


换个思路,你为什么非得用三相的?

http://www.trinamic.com/_article ... C_Product_Guide.pdf  自己看一下吧

出0入0汤圆

发表于 2016-2-1 14:42:28 | 显示全部楼层
673104326 发表于 2016-2-1 09:30
换个思路,你为什么非得用三相的?

http://www.trinamic.com/_articles/_common/_files/TRINAMIC_Prod ...

三相的驱动能力强一点,™说

出0入0汤圆

发表于 2016-2-1 14:54:53 | 显示全部楼层
这个芯片。。完全没用过不懂,,这么细的脚有那么大电流吗

出0入0汤圆

发表于 2016-2-17 16:55:41 | 显示全部楼层
楼主,我的现在会出现在稳态下小幅震荡,这种情况下该如何调整参数呢?

出0入0汤圆

发表于 2016-2-17 16:56:36 | 显示全部楼层
mark一下

出0入0汤圆

 楼主| 发表于 2016-2-17 18:16:38 | 显示全部楼层
996512682 发表于 2016-2-17 16:55
楼主,我的现在会出现在稳态下小幅震荡,这种情况下该如何调整参数呢?


稳态振荡?

没有驱动脉冲然后振荡?

出0入0汤圆

发表于 2016-2-17 19:59:08 | 显示全部楼层
673104326 发表于 2016-2-17 18:16
稳态振荡?

没有驱动脉冲然后振荡?

就是电机会运行到给定位置后,一直小幅左右晃动,肯定是有驱动脉冲才会动的。

出0入0汤圆

发表于 2016-2-17 21:12:03 来自手机 | 显示全部楼层
支持一下,有空看看

出0入0汤圆

 楼主| 发表于 2016-2-17 21:29:07 | 显示全部楼层
996512682 发表于 2016-2-17 19:59
就是电机会运行到给定位置后,一直小幅左右晃动,肯定是有驱动脉冲才会动的。 ...

是不是你的PWM没有关掉。。。。。。

感觉不是PID的问题,如果PID的问题那就是会停不下来,一直往一个方向以最低脉冲频率运动,这种情况需要调大积分项。

出0入0汤圆

 楼主| 发表于 2016-2-17 21:29:59 | 显示全部楼层
soos 发表于 2016-2-17 21:12
支持一下,有空看看

希望你能真有空看看

出0入0汤圆

发表于 2016-2-17 22:05:28 | 显示全部楼层
673104326 发表于 2016-2-17 21:29
是不是你的PWM没有关掉。。。。。。

感觉不是PID的问题,如果PID的问题那就是会停不下来,一直往一个方 ...

谢谢楼主的回复,关于这两个环的PID参数怎么调节呢,先调哪一个或者有什么经验和规律可循吗?

出0入0汤圆

发表于 2016-2-17 22:14:08 | 显示全部楼层
虽然暂时用不上  不过还是感谢分享    谢谢了

出0入0汤圆

 楼主| 发表于 2016-2-18 21:22:23 | 显示全部楼层
996512682 发表于 2016-2-17 22:05
谢谢楼主的回复,关于这两个环的PID参数怎么调节呢,先调哪一个或者有什么经验和规律可循吗? ...


过了年就快忘的差不多了。。。。。。

我是先调的速度环,然后调的位置环,速度环好调些,位置环相对麻烦些,经验差不多都写在注释里了。

出0入0汤圆

发表于 2016-2-18 22:12:45 来自手机 | 显示全部楼层
marK                       

出0入0汤圆

发表于 2016-2-18 23:42:47 | 显示全部楼层
感谢楼主

出0入0汤圆

发表于 2016-2-19 08:14:02 | 显示全部楼层
673104326 发表于 2016-2-18 21:22
过了年就快忘的差不多了。。。。。。

我是先调的速度环,然后调的位置环,速度环好调些,位置环相对麻 ...

谢谢路飞大哥!

出0入0汤圆

发表于 2016-2-19 09:50:31 来自手机 | 显示全部楼层
学习学习,谢谢

出0入0汤圆

发表于 2016-2-19 14:38:58 | 显示全部楼层
有没有用stm32实现了的分享下

出0入0汤圆

 楼主| 发表于 2016-2-19 19:05:32 | 显示全部楼层
1069182055 发表于 2016-2-19 14:38
有没有用stm32实现了的分享下

给你分享出来你自己不理解吸收了也没用 。。。。。。

出0入0汤圆

发表于 2016-2-20 09:50:02 | 显示全部楼层
673104326 发表于 2016-2-19 19:05
给你分享出来你自己不理解吸收了也没用 。。。。。。

好吧

出0入0汤圆

发表于 2016-2-23 17:46:25 | 显示全部楼层
楼主可否上个带负载的视频瞧瞧

出0入0汤圆

发表于 2016-2-24 00:41:50 来自手机 | 显示全部楼层
貌似不是全的吧,思路还不是很明白,譬如速度和位置调节的pid算法,小弟才疏学浅真的没有看懂,能否解释一二,不胜感激

出0入0汤圆

发表于 2016-2-24 08:56:17 | 显示全部楼层
楼主的步进电机用在什么行业里面?

出0入0汤圆

 楼主| 发表于 2016-2-24 09:13:32 | 显示全部楼层
suny1022 发表于 2016-2-24 00:41
貌似不是全的吧,思路还不是很明白,譬如速度和位置调节的pid算法,小弟才疏学浅真的没有看懂,能否解释一 ...


把楼主位提到的内容都仔细看一遍,尤其是我提到的那篇文档,我看书都看了不下5遍。。。。。

有些东西也不是我给你说一遍你就能懂,或者又是我能给你说明白的。

出0入0汤圆

 楼主| 发表于 2016-2-24 09:14:14 | 显示全部楼层
zhenglingo 发表于 2016-2-24 08:56
楼主的步进电机用在什么行业里面?


算是工控吧。。。。。。

出0入0汤圆

发表于 2016-2-24 09:17:08 | 显示全部楼层
加减速控制pi调节

出0入0汤圆

发表于 2016-2-24 09:34:06 | 显示全部楼层
好东西一定要顶顶顶!!

出0入0汤圆

发表于 2016-2-24 10:16:07 | 显示全部楼层
673104326 发表于 2016-2-24 09:13
把楼主位提到的内容都仔细看一遍,尤其是我提到的那篇文档,我看书都看了不下5遍。。。。。

有些东西也 ...

嗯,我懂了,应该是我没有研究过你说的书,我好好看看,里面有几个函数和变量貌似没有,譬如PWMSP001_HandleType* PWMHandlePtr....,所以不明白思路

出0入0汤圆

发表于 2016-2-28 22:54:28 | 显示全部楼层
本帖最后由 zpwkxg 于 2016-2-29 08:22 编辑
673104326 发表于 2016-2-18 21:22
过了年就快忘的差不多了。。。。。。

我是先调的速度环,然后调的位置环,速度环好调些,位置环相对麻 ...


673104326大侠:

1.大侠的步进电机的加减速控制是靠速度闭环来实现的对吗?还没来得及看代码,如果是这样,我的看法是:你这种方法和一往提及的梯形、S型的加速算法还是有区别的:S或梯形加减速仅位置“单闭环”,通过位置差推算出加减速参数,而你的方法是位置和速度双闭环PID实现,不知是否正确,请大侠指教。

2.速度闭环的测速是按照单位时间走的角度实现的吗?是否加上个测速传感器会更好?

3.您这种方法步进电机的噪声控制及效果如何,是否能上个视频,让大家饱饱眼福?

出0入0汤圆

 楼主| 发表于 2016-2-29 10:23:59 | 显示全部楼层
zpwkxg 发表于 2016-2-28 22:54
673104326大侠:

1.大侠的步进电机的加减速控制是靠速度闭环来实现的对吗?还没来得及看代码,如果是这 ...

1.大侠的步进电机的加减速控制是靠速度闭环来实现的对吗?还没来得及看代码,如果是这样,我的看法是:你这种方法和一往提及的梯形、S型的加速算法还是有区别的:S或梯形加减速仅位置“单闭环”,通过位置差推算出加减速参数,而你的方法是位置和速度双闭环PID实现,不知是否正确,请大侠指教。

2.速度闭环的测速是按照单位时间走的角度实现的吗?是否加上个测速传感器会更好?

3.您这种方法步进电机的噪声控制及效果如何,是否能上个视频,让大家饱饱眼福?

大侠就算了,只是屌丝一个。。。。。。你想的有点多了,搞的我都有点不知道该怎么回答了

1、2、首先不是闭环,更不是双闭环了,只是位置环用到了假闭环,通过对PWM的脉冲数进行计数,以达到对位置的“反馈”,当然也可以通过编码器实现此功能,这个先不考虑。位置环负责根据位置的“反馈”来输出速度。然后位置环(开环,没有任何速度反馈或者检测)实现对输出速度的调整,也达到较好的加速及减速控制,尤其是加速。因为位置环只是PD,所以输出会是一个阶越信号,如果你真的测试的话,你会发现加速会比较快,而减速的效果会比较好,就是因为这个阶越信号的问题,通过调节PID参数也不能很好的解决,你可以参考一下下面的图片里的曲线I。我在程序里又做了一个调节,使得加速的效果也比较好,也就是曲线II的效果,具体你看程序里的注释就知道了。

3、电机的噪声其实和步进电机的硬件驱动电路有很大关系,尤其是电流和相关的恒流斩波参数。至于加减速引起的噪声,我觉得还好,比较小,也不难听,控制效果也不错。视频就算了,如果你调好了,可以传上来看看。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

 楼主| 发表于 2016-2-29 10:29:53 | 显示全部楼层
suny1022 发表于 2016-2-24 10:16
嗯,我懂了,应该是我没有研究过你说的书,我好好看看,里面有几个函数和变量貌似没有,譬如PWMSP001_Han ...


那几个函数当然没有了,有了估计你也不能用,那是需要根据你使用的MCU来编写相应的程序也实现相应的功能,具体的功能也很简单明了。

不知道你有什么进展了没?

出0入0汤圆

发表于 2016-2-29 13:42:31 | 显示全部楼层

感谢分享!

出0入0汤圆

发表于 2016-2-29 16:02:35 | 显示全部楼层
673104326 发表于 2016-2-29 10:23
1.大侠的步进电机的加减速控制是靠速度闭环来实现的对吗?还没来得及看代码,如果是这样,我的看法是:你 ...

太高深了,楼主。。阶跃信号都有到底是怎么理解的喃。。。太笨了

出0入0汤圆

发表于 2016-3-1 08:04:19 | 显示全部楼层
感谢楼主。。。!

出0入0汤圆

 楼主| 发表于 2016-3-1 09:07:48 | 显示全部楼层
1069182055 发表于 2016-2-29 16:02
太高深了,楼主。。阶跃信号都有到底是怎么理解的喃。。。太笨了


你如果不能把问题深入的理解一下,把我分享出来的东西好好的消化一下,然后问出一些有价值的问题,你就不要再刷存在感了。。。。。。

出0入0汤圆

发表于 2016-3-1 10:03:35 | 显示全部楼层
673104326 发表于 2016-3-1 09:07
你如果不能把问题深入的理解一下,把我分享出来的东西好好的消化一下,然后问出一些有价值的问题,你就 ...

请教楼主:代码中的两个PWMSP001_HandleType   CNT001_HandleType 两个类型在哪里定义的? 或者:是什么类型?

出0入0汤圆

发表于 2016-3-1 10:45:15 | 显示全部楼层
先不管,MARK

出0入0汤圆

 楼主| 发表于 2016-3-1 11:15:43 | 显示全部楼层
zpwkxg 发表于 2016-3-1 10:03
请教楼主:代码中的两个PWMSP001_HandleType   CNT001_HandleType 两个类型在哪里定义的? 或者:是什么 ...


这个是我用的MCU编译环境自带的一些库函数及变量定义,这些都是结构体,比如说

typedef struct UART001_HandleType
{
  USIC_CH_TypeDef* UartRegs;/** CMSIS defined structure for USIC module */
  UART001_PinHandleType PinHandle; /*!< User selected TX & RX Port pins */
  UART_ModeType Mode;/** USIC Operation mode */
  UART_StopBitType StopBit; /** No of stopbit selected */
  UART_ParityType Parity;/** Parity  selected */
  uint32_t BaudRate; /** Desired baud rate */  
  uint16_t DataBits;/** Word Length */
  bool TxFifoEn; /** Enable additional Transmit FIFO buffer capability */
  bool RxFifoEn;  /** Enable additional Receive FIFO buffer capability */
  uint8_t TxLimit;/** TX FIFO Trigger value */
  uint8_t RxLimit; /** RX FIFO Triger value */
  uint8_t TxFifoSize; /** Tx FIFO Size value */
  uint8_t RxFifoSize;/** Rx FIFO Size value */  
  bool RecvNoiseEn;/** Enable Receiver Noise Interrupt */  
  bool FormatErrEn;/** Enable Format Error Interrupt */  
  bool FrameFinEn;/** Enable Frame Finished Interrupt */  
  uint16_t BGR_STEP;/** Calculated step value */  
  uint16_t BGR_PDIV;/** Calculated pdiv value */  
  uint16_t BGR_DCTQ;/** Calculated  dctq value */
  uint16_t BGR_SP;/** Calculated  sampling point value
                           [SP = (((1+dctq)/2)+1)]*/
  uint8_t BGR_PCTQ;/** Calculated  pctq value */
}UART001_HandleType;


看了都头大,但这些不重要,重要的是你要在你的MCU上自己写相应的函数来实现同样的功能。一个是PWM的打开、调频、关闭,再有就是计数功能,对PWM的输出进行计数。。。。。。

出0入0汤圆

发表于 2016-3-1 16:37:21 | 显示全部楼层
MARK,谢谢楼主慷慨分享~

出0入0汤圆

发表于 2016-3-1 22:17:23 | 显示全部楼层
再次感谢楼主。。。。!

出0入0汤圆

发表于 2016-3-18 11:07:28 | 显示全部楼层
,留个爪。

出0入0汤圆

发表于 2016-3-18 11:41:03 | 显示全部楼层
多谢楼主分享!

出0入0汤圆

 楼主| 发表于 2016-3-18 12:54:44 | 显示全部楼层

欢迎留爪

出0入0汤圆

发表于 2016-3-18 21:11:10 来自手机 | 显示全部楼层
谢谢分享

出0入0汤圆

发表于 2016-3-18 22:22:11 | 显示全部楼层
好东西不错

出0入0汤圆

发表于 2016-3-22 21:07:32 来自手机 | 显示全部楼层
不知道理解的对不对。在1khz中断里调用 HandleMotorControl,在接受新的电机位置指令后的地方调用WriteMotorPosition

出0入0汤圆

发表于 2016-3-22 21:16:15 | 显示全部楼层
本帖最后由 myqiang1990 于 2016-3-22 21:27 编辑
1069182055 发表于 2016-2-29 16:02
太高深了,楼主。。阶跃信号都有到底是怎么理解的喃。。。太笨了


太简单了,可以这么理解:说就信号在某时刻没有任何过程的跳变就是阶跃信号

出0入0汤圆

 楼主| 发表于 2016-3-23 04:30:27 | 显示全部楼层
xuxueliang 发表于 2016-3-22 21:07
不知道理解的对不对。在1khz中断里调用 HandleMotorControl,在接受新的电机位置指令后的地方调用WriteMoto ...

对,就是这个意思。。。。。

出0入0汤圆

 楼主| 发表于 2016-3-23 04:32:15 | 显示全部楼层
myqiang1990 发表于 2016-3-22 21:16
太简单了,可以这么理解:说就信号在某时刻没有任何过程的跳变就是阶跃信号  ...

你不要逗他了

出0入0汤圆

发表于 2016-3-23 14:16:20 | 显示全部楼层
楼主,想了一天,我怎么也想不明白这个PWM脉冲的个数是怎样来记忆的。单片机PIC33FJ256MC710,控制方式是脉冲+方向。昨天我看这单片机资料里关于PWM这一章里的内容,是不是要设置个PWM中断,然后设置个变量。每中断一次,这个变量就累加一个数,来作为步进电机步数的增加呢?感觉好像也不是这样。2一个就是,从网上看资料,说是设置个外部中断,每检测到一个高电平,就累加一次来记忆PWM的脉冲数。搞的我也是一头雾水。

出0入0汤圆

发表于 2016-3-23 21:51:18 | 显示全部楼层
myqiang1990 发表于 2016-3-22 21:16
太简单了,可以这么理解:说就信号在某时刻没有任何过程的跳变就是阶跃信号  ...

这个意思啊,比书上明白多了

出0入0汤圆

发表于 2016-3-23 21:52:22 | 显示全部楼层
myqiang1990 发表于 2016-3-22 21:16
太简单了,可以这么理解:说就信号在某时刻没有任何过程的跳变就是阶跃信号  ...

这个意思啊,比书上明白多了
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-3-28 23:51

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表