智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 8565|回复: 12
打印 上一主题 下一主题

根据总线频率怎么写mc9s12xs128的延时程序?

[复制链接]

6

主题

132

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1839
威望
1003
贡献
504
兑换币
411
注册时间
2013-9-23
在线时间
166 小时
跳转到指定楼层
1#
发表于 2013-10-12 19:47:03 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
例如40M的总线频率,我要写个延时函数如:void delay(uint x)
                                       {
                                            uint i,j;
                                            for(i=0;i<x;i++)
                                                for(j=0;j<m;j++);
                                       }
m是一个具体的数,当调用这个延时函数时如:delay(100);它代表延时约100毫秒,delay(1000);它代表延时约1000毫秒,以此类推,该怎么确定m的值?如果总线频率是64M呢?如果总线频率是其他呢?
跪求大神解答

0

主题

346

帖子

0

精华

跨届大侠

Rank: 10Rank: 10Rank: 10

积分
8979

活跃会员奖章优秀会员奖章在线王奖章论坛元老奖章

威望
3260
贡献
2073
兑换币
1933
注册时间
2013-9-25
在线时间
1823 小时
13#
发表于 2013-10-20 11:38:21 | 只看该作者
受教了。
回复 支持 0 反对 2

使用道具 举报

3

主题

563

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
3808

优秀会员奖章活跃会员奖章论坛元老奖章在线王奖章

QQ
威望
1710
贡献
906
兑换币
1148
注册时间
2013-8-24
在线时间
596 小时
12#
发表于 2013-10-18 18:20:06 | 只看该作者
学习了。。
回复 支持 反对

使用道具 举报

6

主题

132

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1839
威望
1003
贡献
504
兑换币
411
注册时间
2013-9-23
在线时间
166 小时
11#
 楼主| 发表于 2013-10-13 17:19:41 | 只看该作者
2601819196 发表于 2013-10-13 13:23
这个跟51的可能有区别,xs机器周期与总线周期的倍速关系要查相关的手册。_asm(nop);就是一个总线的周期, ...

谢谢了!
回复 支持 反对

使用道具 举报

38

主题

276

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
3032
威望
1999
贡献
135
兑换币
1253
注册时间
2013-1-25
在线时间
449 小时
10#
发表于 2013-10-13 13:23:59 | 只看该作者
mlhmxhabc 发表于 2013-10-13 11:17
请问假如mc9s12xs128的总线频率为16M,那么一个机器周期怎么算?是这样的吗:1/16M=0.0625微秒,然后12*0 ...

这个跟51的可能有区别,xs机器周期与总线周期的倍速关系要查相关的手册。_asm(nop);就是一个总线的周期,1/PLL.
回复 支持 反对

使用道具 举报

6

主题

132

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1839
威望
1003
贡献
504
兑换币
411
注册时间
2013-9-23
在线时间
166 小时
9#
 楼主| 发表于 2013-10-13 11:17:57 | 只看该作者
2601819196 发表于 2013-10-12 23:52
精确延时函数我一般是这样写:
void   delay(u16  a)
{

请问假如mc9s12xs128的总线频率为16M,那么一个机器周期怎么算?是这样的吗:1/16M=0.0625微秒,然后12*0.0625=0.75微秒,0.75微秒就是一个机器周期?
回复 支持 反对

使用道具 举报

16

主题

590

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2987
威望
1599
贡献
34
兑换币
939
注册时间
2012-11-17
在线时间
677 小时
8#
发表于 2013-10-13 10:50:04 | 只看该作者
也可以用定时器啊
回复 支持 反对

使用道具 举报

6

主题

132

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1839
威望
1003
贡献
504
兑换币
411
注册时间
2013-9-23
在线时间
166 小时
7#
 楼主| 发表于 2013-10-13 10:00:35 | 只看该作者
vison 发表于 2013-10-13 07:36
建议使用示波器调整看。。。。

谢谢!
回复 支持 反对

使用道具 举报

6

主题

132

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1839
威望
1003
贡献
504
兑换币
411
注册时间
2013-9-23
在线时间
166 小时
6#
 楼主| 发表于 2013-10-13 10:00:09 | 只看该作者
andyxu 发表于 2013-10-12 20:09
我知道一种办法是  你用示波器去看  ms级延时的误差还是很小的

谢谢!
回复 支持 反对

使用道具 举报

6

主题

191

帖子

0

精华

禁止访问

祥鉴电子工作室https://shop101661071.t

积分
2043
QQ
威望
1012
贡献
617
兑换币
629
注册时间
2013-6-14
在线时间
207 小时
5#
发表于 2013-10-13 07:36:18 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-11-6 18:22 , Processed in 0.050829 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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