发新帖我要提问
123
返回列表
打印
[51单片机]

小实验说明正确选用数据类型的重要意义

[复制链接]
楼主: sjw1716094642
手机看帖
扫描二维码
随时随地手机跟帖
41
sjw1716094642|  楼主 | 2015-3-24 12:07 | 只看该作者 回帖奖励 |倒序浏览
mazhao141 发表于 2015-3-24 11:56
我也说了是CPU的自然长度~你这个命题是个好命题,看起来虽然小~背后是数据结构和执行效率优化。我问这么多 ...

你还是解释一下吧,我看不懂这些的东西,实在是高端。还有请你不要瞧不起别人好吗?知识党

使用特权

评论回复
42
sjw1716094642|  楼主 | 2015-3-24 12:11 | 只看该作者
mazhao141 发表于 2015-3-24 11:56
我也说了是CPU的自然长度~你这个命题是个好命题,看起来虽然小~背后是数据结构和执行效率优化。我问这么多 ...

你别什么汇编了,别什么C语言基本知识了,总之,事实证明哪个比较快,就哪个快,一个实验不就什么都搞定了,说那么多。典型知识党

使用特权

评论回复
43
lvyunhua| | 2015-3-24 12:32 | 只看该作者
不错,学习了

使用特权

评论回复
44
mazhao141| | 2015-3-24 17:30 | 只看该作者
本帖最后由 mazhao141 于 2015-3-30 07:43 编辑
sjw1716094642 发表于 2015-3-24 12:11
你别什么汇编了,别什么C语言基本知识了,总之,事实证明哪个比较快,就哪个快,一个实验不就什么都搞定 ...

感谢分享~

使用特权

评论回复
45
sjw1716094642|  楼主 | 2015-3-24 19:09 | 只看该作者
mazhao141 发表于 2015-3-24 17:30
我的本意也就是大家一起讨论一下~好看看大家都知道些什么。在论坛上,你不激到对方开始反驳。别人不一定会 ...

呵呵,你回去看看你第一句回复,真是想讨论,我不会这样。而且,你要说32位的单片机,我也做了测试,我也没有说你错。就你在那里瞧不起人。。真是有趣,林子真大

使用特权

评论回复
46
mazhao141| | 2015-3-24 19:38 | 只看该作者
本帖最后由 mazhao141 于 2015-3-30 07:43 编辑
sjw1716094642 发表于 2015-3-24 19:09
呵呵,你回去看看你第一句回复,真是想讨论,我不会这样。而且,你要说32位的单片机,我也做了测试,我也 ...

感谢分享~

使用特权

评论回复
47
sjw1716094642|  楼主 | 2015-3-24 19:43 | 只看该作者
mazhao141 发表于 2015-3-24 19:38
我第一句回复是因为不知道你知道什么,以为意识到这种问题的没准会在代码优化上有点什么经验,所以想知道 ...

我知道用什么快,就像printf,我一直不知道它代码,但我知道怎么用。我喜欢拿事实说话,你说到现在就是倒卖一些原理。

使用特权

评论回复
48
cuya| | 2015-3-24 22:20 | 只看该作者
楼主的专研精神值得敬佩, 而且愿意分享所得, 更值得尊敬。

但坦率的说, 楼主的问题本来应该不是一个问题, 但凡对单片机硬件系统以及汇编有所了解, 特别是用过汇编的人, 就知道楼主的问题本是基本常识。8位mcu, 特别是 51, 处理16/32位数据要多花很多指令。 至于 i--, 因为有汇编指令 djnz 可用, 不仅 51, 对于大多数 cpu, 也是 for (i=x; i!=0; i--) 要快一些, 因为 cpu 有z, nz 标志直接可用。

使用特权

评论回复
49
sjw1716094642|  楼主 | 2015-3-24 22:40 | 只看该作者
cuya 发表于 2015-3-24 22:20
楼主的专研精神值得敬佩, 而且愿意分享所得, 更值得尊敬。

但坦率的说, 楼主的问题本来应该不是一个问 ...

谢谢,这的确是汇编的基础知识,但对只学过C的人,尤其是刚学单片机的同学,对此不大了解。我也没学过汇编,当时我就抱着好奇的态度做了这个测试,发现在51上做了测试,随后便于大家分享

使用特权

评论回复
50
dirtwillfly| | 2015-3-25 06:30 | 只看该作者
呵呵,讨论很激烈。感谢下楼主的分享

使用特权

评论回复
51
tianheyun| | 2015-3-28 09:00 | 只看该作者
时间花在死磕这么一点效率,我认为不值得。有时候方向错了,努力也就白费了。

使用特权

评论回复
52
sjw1716094642|  楼主 | 2015-3-28 10:28 | 只看该作者
tianheyun 发表于 2015-3-28 09:00
时间花在死磕这么一点效率,我认为不值得。有时候方向错了,努力也就白费了。 ...

哈哈,对于做控制,这当然不是主要方向。最多是在一切OK之后,再做一点代码优化

使用特权

评论回复
53
kevinliuwei| | 2015-3-28 22:30 | 只看该作者
不错,大家都很有钻研的精神

使用特权

评论回复
54
mazhao141| | 2015-3-29 09:48 | 只看该作者
本帖最后由 mazhao141 于 2015-3-30 07:43 编辑
sjw1716094642 发表于 2015-3-28 10:28
哈哈,对于做控制,这当然不是主要方向。最多是在一切OK之后,再做一点代码优化 ...

感谢分享~

使用特权

评论回复
55
sjw1716094642|  楼主 | 2015-3-29 23:06 | 只看该作者
mazhao141 发表于 2015-3-29 09:48
这帖子怎么又上来了,还成了推荐~那几天写代码比较烦,所以态度不太好。我这里换一种比较好接受的说法,我 ...

你现在的态度很好,我很感动,你不说我还真以为所有单片机都是8位最快呢,真是感谢你告诉我,你真是个好人,我很感激。我的控制器的核心代码我以后会发给你,你在做移植的时候还麻烦你改一下数据类型,毕竟我的51单片机程序用到你的高级芯片上多少有些不兼容。小弟见识薄浅还请大神见谅。


---我以后还是会发一些小实验(多数会在STM32的板块),有不对的地方也请大家多多指正,对于我和这个帅哥的争吵,也请大家见谅:)

使用特权

评论回复
56
mazhao141| | 2015-3-30 08:19 | 只看该作者

RE: 小实验说明正确选用数据类型的重要意义

本帖最后由 mazhao141 于 2015-3-30 08:53 编辑
sjw1716094642 发表于 2015-3-29 23:06
你现在的态度很好,我很感动,你不说我还真以为所有单片机都是8位最快呢,真是感谢你告诉我,你真是个好 ...

51的程序用在32位上可能不会有什么问题。32位的程序往51上用可能会出BUG,尤其是中断会修改超过自然长度的计数或者索引值的时候,这和51用8位数据快是一个原因。所有8位机~所以我从来没有认为重点是快了那么一点点,计数没计够就跳出循环,而调试的时候因为样本数量小又感觉不出来。做控制的当然知道什么后果。我用汇编和C,就像你开发STM用寄存器和库函数。你不学汇编很正常啊,那么多人用STM32不用寄存器的。这么多人看了帖子,我要是说错了会有人说的你放心。你既然觉得和我争吵,我就把回复改了,我当时的感觉要么是你有话没说完,要么是一知半解,再加上本身心烦所以有点诚心,有话不好好说一直反问当然容易吵架~我跟你道歉好吧。你也看看别人的说法。支持楼主分享源码~一定要分享哦~SURPRISE ME!!!!

使用特权

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

本版积分规则