打印
[AVR单片机]

有关ATMEGA16问题(新手请教)

[复制链接]
4420|12
手机看帖
扫描二维码
随时随地手机跟帖
沙发
zsmbj| | 2007-4-13 12:40 | 只看该作者

机器周期=时钟周期。

8M 执行一条单周期指令为1/8 = 0.125us = 125ns

使用特权

评论回复
板凳
soso| | 2007-4-13 12:42 | 只看该作者

ding

MEGA16机器周期是62.5nS; 8M晶振执行一条单指令时间是125nS(对单周期指令),但AVR有一大部分指令要3个周期。


使用特权

评论回复
地板
lbk708|  楼主 | 2007-4-13 14:07 | 只看该作者

谢谢了

哦,谢谢了!小弟在写AVR读DS18B20的程序,原先是用51的,所以时序上有些修改,谢谢各位老兄了!

使用特权

评论回复
5
zsmbj| | 2007-4-13 15:24 | 只看该作者

To bbstom

已M16为例:有131条指令,单周期有58条,2周期有38条。3周期的有6条,4周期的有3条。还有1/2周期跳转的20条。还有1/2/3周期跳转5条。还有spm指令。

因此绝对不能说是“但AVR有一大部分指令要3个周期。”

最多的是单周期和2周期指令。

使用特权

评论回复
6
lbk708|  楼主 | 2007-4-13 16:24 | 只看该作者

好啊

好啊
但我现在还是没有调通,可能还是时序没搞好.
_delay_us(18);//10us
这个函数是基于多少晶振的? 我想要一个6M晶振下的1US的延时程序(MEGA16)

使用特权

评论回复
7
lbk708|  楼主 | 2007-4-13 16:37 | 只看该作者

再次谢谢各位兄弟的热情帮助!

再次谢谢各位兄弟的热情帮助!

使用特权

评论回复
8
zsmbj| | 2007-4-13 18:31 | 只看该作者

delay要仔细调整的。

如果是winavr的自带的delay函数比较精确。

否则要看对应的汇编语言计算。

使用特权

评论回复
9
lbk708|  楼主 | 2007-4-14 14:36 | 只看该作者

_delay_us(1);

_delay_us(1);这个是编译器自带的延时程序,1M晶振时理论为1US,但实际上是1点多US,也不是很准.

使用特权

评论回复
10
lbk708|  楼主 | 2007-4-16 12:58 | 只看该作者

To bbstom

To bbstom,请教一下1/2周期、1/2/3周期是什么意思?

使用特权

评论回复
11
lbk708|  楼主 | 2007-4-16 17:48 | 只看该作者

程序已调通

读温度的程序终于调通了,再次谢谢各位兄弟的热心帮助,现把程序拿来与朋友们共享,希望甘多的朋友能从中有所受益!
相关链接:https://bbs.21ic.com/upfiles/img/20074/2007416174819319.rar

使用特权

评论回复
12
lbk708|  楼主 | 2007-4-18 17:26 | 只看该作者

顶一下吧

朋友们觉得有用的话就请顶一下吧,让更多的人能下载!^-^

使用特权

评论回复
13
panjun_316| | 2008-6-23 15:57 | 只看该作者

支持楼主

谢谢楼主的共享

使用特权

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

本版积分规则

9

主题

43

帖子

0

粉丝