单片机/MCUwilliam hill官网
直播中

杭宁

7年用户 9经验值
擅长:可编程逻辑 测量仪表 模拟技术 控制/MCU
私信 关注
[问答]

ATmega16运行速度

本人在设计一个测试系统,采用的是ATmega16,因为对时间要求较高,在调试过程中发现实际的运行速度很慢,所以想请教有关人士,ATmega16编程采用C语言,8 mhz晶振,它的CPU运行速度有多快?执行一条程序指令的时间是多少吗?


补充内容 (2017-5-24 08:13):
我现在用示波器抓取我一次循环的时间为380ms,我想要控制在30m以内,程序已经简化,现在在对不同晶振做实验,除此之外对速度的提高还是没有头绪,用的是ATmega16的单片机,还是说要换型号?要换的话在AVR中有合适的吗?

回帖(4)

人中狼

2017-5-22 16:14:32

最佳答案

单片机的运行速度在相同的配置下是固定的,只会因不同的晶振有所不同,在C语言编程下,C语言的一条语句,有可能对应多条机器语言,还有编程所产生的代码的执行效率问题,这样是无法确定C语言下单片机的速度应该是多少。你应该找出速度慢的原因,是配置问题,还是代码执行效率不高,又或者是其他的原因。
举报

尧建堂

2017-5-22 22:08:39
mega16内部不用分频,不想51是12分频。所以,51的12M晶振速度只相当于mega16的1M晶振速度。
那就是说我现在学习板上用的是12M晶振,时间就相当于51的12分之一,即是1/12us了希望可以帮到你,
举报

杭宁

2017-5-24 08:11:06
引用: 人中狼 发表于 2017-5-22 22:55
单片机的运行速度在相同的配置下是固定的,只会因不同的晶振有所不同,在C语言编程下,C语言的一条语句,有可能对应多条机器语言,还有编程所产生的代码的执行效率问题,这样是无法确定C语言下单片机的速度应该是多少。你应该找出速度慢的原因,是配置问题,还是代码执行效率不高,又或者是其他的原因。 ...

我现在用示波器抓取我一次循环的时间为380ms,我想要控制在30m以内,程序已经简化,现在在对不同晶振做实验,除此之外对速度的提高还是没有头绪
举报

人中狼

2017-5-24 08:18:50
单片机针对同一晶振的速度是固定的,不同的晶振会改变速度,但是你现在的速度和所要求的速度相差了10倍以上,或许你改更换单片机的型号了,单片机的速度应该在所要求的速度至少3倍以上,也就是要求是30ms以内,那单片机正常速度应该可以做到10ms以内,不然对代码要求高,同样也不能有较多的其他干预,这个干预是指设计内容所必须有的以及所必须预防的,估计你需要更换单片机了
举报

更多回帖

发帖
×
20
完善资料,
赚取积分