打印

89s52定时器控制IO口最大输出脉冲?

[复制链接]
3419|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
7120223|  楼主 | 2010-8-24 20:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 7120223 于 2010-8-25 09:56 编辑

这两天买了个步进电机驱动,需要速度快一点的脉冲,才发现当细分数越大后,相同脉冲下电机的速度也要降下来了,不得已提高脉冲频率,但是一计算s52接12M晶振的话最快定时器1us进入一次,那么io频率也就500KHZ,如果是这样的话,我定时器中断函数稍微写点程序话,是不是定时器中断函数程序还没有执行完毕,下一个定时器中断又触发了呢?导致程序出错呢?

相关帖子

沙发
NE5532| | 2010-8-24 21:01 | 只看该作者
如此之快的PWM一般用硬件实现,实在要软件的,51也有点困难,分频太大了。

使用特权

评论回复
板凳
7120223|  楼主 | 2010-8-25 08:42 | 只看该作者
准备用STC的 呵呵 看到 STC是1分频的快了不少。硬件PWM?不知道,是给他1HZ他能扩大到10HZ么?

使用特权

评论回复
地板
acute1110| | 2010-8-25 08:50 | 只看该作者
用arm做啊,最快的arm I/O能到50MHz了

使用特权

评论回复
5
ayb_ice| | 2010-8-25 08:51 | 只看该作者
S52肯定可以输出超过5K的频率
5K的周期是200US,标准51可以执行100~200条指令
显然你的程序有问题
S52可以设定X2模式,这样速度又可以增加一倍,如果接24M,X2模式可以比标准51快4倍
一般是可以满足要求
如果要求IO速度更快,可以直接控制IO而不用定时器中断

使用特权

评论回复
6
7120223|  楼主 | 2010-8-25 09:53 | 只看该作者
本帖最后由 7120223 于 2010-8-25 10:00 编辑

ARM还不会,买了一块STM32开发板了,还没拿到手...
哦 我算错了,不是5K,是500KHZ是2us一个周期 进定时器,怎么直接控制IO能使速度更快呢?在主程序中直接反转IO么?那么这个不就影响了其他功能了。

使用特权

评论回复
7
5880527| | 2010-8-25 09:57 | 只看该作者
2us,什么步进驱动器能接收这样的脉冲?

使用特权

评论回复
8
7120223|  楼主 | 2010-8-25 10:03 | 只看该作者
就是网上一般的步进电机了哦,本来2细分的2圈/s,那么现在16细分还想到达2圈/s的频率要扩大8倍。

使用特权

评论回复
9
ayb_ice| | 2010-8-25 10:07 | 只看该作者
2US是不可能了,中断进入和退出都是要时间的,就算可以其它程序也没有时间执行了
不是设计错误,就是选型错误,即使用硬件PWM要做到500K也不一般的MCU可以做的

使用特权

评论回复
10
5880527| | 2010-8-25 10:23 | 只看该作者
16细分2圈每秒,如果你不是经常用步进电机那还是换一种单片机吧

使用特权

评论回复
11
7120223|  楼主 | 2010-8-25 12:40 | 只看该作者
当然 2us是我夸大了一点的说法了,目的就是找个定时器溢出快一点的单片机了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

105

主题

389

帖子

0

粉丝