(续)最后一个问题,关于内存的

[复制链接]
3484|11
 楼主| yujie870705 发表于 2011-4-27 11:50 | 显示全部楼层 |阅读模式
本帖最后由 yujie870705 于 2011-4-27 13:00 编辑

我*。内存只有64个字节,为什么我用到90%左右就不能用了,PIC16F630的型号!
老鱼探戈 发表于 2011-4-27 13:07 | 显示全部楼层
是不是编译器的问题,会预留一些给堆栈和局部变量。
我也是猜测而已
 楼主| yujie870705 发表于 2011-4-27 17:26 | 显示全部楼层
那应该怎么解决呢?
 楼主| yujie870705 发表于 2011-4-27 18:07 | 显示全部楼层
什么都难不倒我的!哈哈,马上项目就要完了,可是还有一个特别难的问题,就是内存不够用,要做一个状态机类型的程序,存储每一路分机的状态,每一路分机有4种状态,一共有30路,可是只剩下10个字节了,怎么办啊?
JayGong 发表于 2011-4-27 22:13 | 显示全部楼层
2#老鱼说的对,编译器会预留一些给局部变量。内存不够说明你选型就有问题!
JayGong 发表于 2011-4-27 22:20 | 显示全部楼层
看看能不能用PIC16F1823,同样是14脚,RAM为128,应该够用了!
yewuyi 发表于 2011-4-28 08:44 | 显示全部楼层
我*。内存只有64个字节,为什么我用到90%左右就不能用了,PIC16F630的型号!
yujie870705 发表于 2011-4-27 11:50


有很多可能,但只要熟悉C语言的话,你自己肯定能找到原因,别人猜是不可能猜准确的。
yewuyi 发表于 2011-4-28 08:46 | 显示全部楼层
什么都难不倒我的!哈哈,马上项目就要完了,可是还有一个特别难的问题,就是内存不够用,要做一个状态机类型的程序,存储每一路分机的状态,每一路分机有4种状态,一共有30路,可是只剩下10个字节了,怎么办啊? ...
yujie870705 发表于 2011-4-27 18:07


这可没有什么好办法,看看优化其它方面的代码行不行吧
dodome521 发表于 2011-4-28 10:45 | 显示全部楼层
每路分机4中状态,也就是每个分机的状态只要2位就可以表示了,30个分机也就是用2×30=60个位,10个字节有80个位,还有剩呢,呵呵,怎么会没办法了。
 楼主| yujie870705 发表于 2011-4-28 12:01 | 显示全部楼层
本帖最后由 yujie870705 于 2011-4-28 12:02 编辑
每路分机4中状态,也就是每个分机的状态只要2位就可以表示了,30个分机也就是用2×30=60个位,10个字节有80个位,还有剩呢,呵呵,怎么会没办法了。
dodome521 发表于 2011-4-28 10:45

分机号用2位表示不了的,2位只能存4个分机号。。关键是要存分机号,还要存他的状态,至少要1个字节再加2位
 楼主| yujie870705 发表于 2011-4-29 10:45 | 显示全部楼层
搞定啦,谢谢大家的批评与指导,终于OVER了这个项目,以后搞PIC也有信心了!虽然进度是慢了点,呵呵
 楼主| yujie870705 发表于 2011-4-29 11:36 | 显示全部楼层
谢谢啦,呵呵,可惜没奖金的,穷开心罢了!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

225

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部