打印
[PIC®/AVR®/dsPIC®产品]

PIC18F45K80内存的问题

[复制链接]
3346|19
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
meteor035|  楼主 | 2016-3-21 11:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求教各位大神,在使用PIC18F45K80,编译器PICC18-V9.80,我用来做16*16点阵的测试,一个字模32字节,字模一多就会出现一些原本显示正常的字模数组读出来显示成空白,注释掉一些字模留出空间后就又正常了,编译显示总的使用内存也才30%,这是什么情况

QQ截图20160321112622.png (11.74 KB )

有问题时的内存使用

有问题时的内存使用
来自 2楼
meteor035|  楼主 | 2016-3-22 17:16 | 只看该作者
现在在考虑去掉一些字模来减小空间,要是这样处理的话这个问题还是没有解决,附件是我现在的工程文件夹,源文件也在里面,各位参考一下?看看问题在什么地方

v0.0test.rar

635.75 KB, 阅读权限: 10

使用特权

评论回复
板凳
yklstudent| | 2016-3-21 14:34 | 只看该作者
自己分析下自己的程序是否有问题吧

使用特权

评论回复
地板
JY-DX-JY| | 2016-3-21 15:54 | 只看该作者
应该是软件问题。

使用特权

评论回复
5
meteor035|  楼主 | 2016-3-21 17:57 | 只看该作者
yklstudent 发表于 2016-3-21 14:34
自己分析下自己的程序是否有问题吧

不排除程序可能是会有点问题,目前我测试的情况来看应该还是在内存使用这方面上的问题,注释掉几个字模后可以显示正常,有时会出现只出来半个字,就是一个数组里的字模只有一半有效,剩下的就空掉了.别的都没动,只是改了一下字模大小我试过用BANK指定到别的区,没什么用的样子,好像说是9.80以后的用BANK指定区域就无效了
芯片手册上有个快速操作RAM位,可以使用BSR寄存器来指定存储区,但它这个是汇编的,而且好像每个读写操作都要带上RAM位的样子,我用的是C,是定义时就要把字模存进去的,这个不知道怎么处理.

使用特权

评论回复
6
meteor035|  楼主 | 2016-3-21 18:03 | 只看该作者
JY-DX-JY 发表于 2016-3-21 15:54
应该是软件问题。

我自己是有重装了几次MPLAB,编译器也重装了几次,如果是软件的话,估计是版本不合适吧,我已经懵了,有没有推荐的版本?

使用特权

评论回复
7
JY-DX-JY| | 2016-3-21 18:10 | 只看该作者
你如果把字模定义到程序空间呢?

使用特权

评论回复
8
meteor035|  楼主 | 2016-3-21 18:38 | 只看该作者
JY-DX-JY 发表于 2016-3-21 18:10
你如果把字模定义到程序空间呢?

用const?用const定义的那个字模能显示正常,同时会有另外有几个字模消失掉

使用特权

评论回复
9
JY-DX-JY| | 2016-3-21 19:16 | 只看该作者
都用const定义呢?

使用特权

评论回复
10
meteor035|  楼主 | 2016-3-21 19:37 | 只看该作者
JY-DX-JY 发表于 2016-3-21 19:16
都用const定义呢?

那就全显不出来了

使用特权

评论回复
11
m564522634| | 2016-3-22 09:34 | 只看该作者
你的数据定义有问题了, 如果你定义到 一个BANK那RAM, 肯定不够了。  

使用特权

评论回复
12
lx20150828| | 2016-3-22 10:43 | 只看该作者
你也在用PIC18F45K80吗?一起学习交流下吧。。

使用特权

评论回复
13
meteor035|  楼主 | 2016-3-22 11:33 | 只看该作者
本帖最后由 meteor035 于 2016-3-22 11:52 编辑
m564522634 发表于 2016-3-22 09:34
你的数据定义有问题了, 如果你定义到 一个BANK那RAM, 肯定不够了。

不是说9.80以上版本的编译器会自动分配bank吗,我有手动分配过bank,没有多大用的样子,而且定义的时候只能认到bank1,2,3,bank4或再后面的编译都会报错,我的需要存的数据量,要4个bank空间才够 ,现在只有3个就装不下

使用特权

评论回复
14
meteor035|  楼主 | 2016-3-22 11:42 | 只看该作者
lx20150828 发表于 2016-3-22 10:43
你也在用PIC18F45K80吗?一起学习交流下吧。。

哈哈,基本应用而已....

使用特权

评论回复
15
yklstudent| | 2016-3-22 16:09 | 只看该作者
解决了?
解决不了上工程,大家帮你看看

使用特权

评论回复
16
秋雨| | 2016-3-22 22:12 | 只看该作者
我以前使用PIC18F46K22遇到的问题是菜单项多了就出乱码了。后发现是数组大了就不行。。
还有用PIC18F97J60做TCPIP程序,大数组也不行。数组问题真是郁闷,不知道现在解决了没

使用特权

评论回复
17
meteor035|  楼主 | 2016-3-23 09:14 | 只看该作者
秋雨 发表于 2016-3-22 22:12
我以前使用PIC18F46K22遇到的问题是菜单项多了就出乱码了。后发现是数组大了就不行。。
还有用PIC18F97J60 ...

我觉得我这个应该不是数组过大造成的问题,不过你说的这些根本上应该还是存储空间使用的问题啦,其实差不多的样子.我已经在这个问题上郁闷2个星期了,看看有没有谁了解这方面的能给处理一下

使用特权

评论回复
18
QQ826220679| | 2016-9-23 11:16 | 只看该作者
我也遇到类似问题,到现在也没有解决,您的问题解决了吗?

其实用16F系列,就没有这样的问题。估计是有一个地方引起的,找到病根所有问题都就解决了。请高手也看一下,到底什么原因?



可以加QQ吗?我的名字就是QQ。

使用特权

评论回复
19
QQ826220679| | 2016-9-23 13:58 | 只看该作者
我也遇到同样得情况,有解决方案了吗?

使用特权

评论回复
20
中浩然| | 2020-8-10 19:36 | 只看该作者
不用再费脑子了,这就是PIC18编译器的BUG...没人可以给你解决方法的。最好的方案就是换方案。

使用特权

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

本版积分规则

1

主题

16

帖子

1

粉丝