完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我有点迷惑于XC8使用的程序内存,并用MPLABX 4.01和XC8 1 4.44做了一些测试。目标设备=具有56KB闪存的PIC16F1887(在仪表板中报告为32 K字不为30K)!仪表板报告7字程序内存,两个常量行都注释掉。仪表板报告17字程序内存,数据16[10]行注释掉。仪表板报告37字程序内存,没有注释。注意,这是单词=2字节!所以两个常量数组使用的是预期的两倍,我包括了短16位,我很好奇,因为内存使用情况是以单词报告的,它使用整个单词来存储一个字节,但是对于使用2个字节的字节不使用,对于短则使用4个字节。奇怪(http://RODYNE.COM/WP内容/上传/ 2017/10 /16F1887.PNG)2。我将项目目标更改为具有64KB的PIC18F26K42(正确地报告为仪表板中的64KB),并用相同的程序重复测试。仪表板上的TED报告程序内存的58WORD,没有任何注释再次超过预期的使用!!我试图搜索论坛和XC8文档,但放弃了。我的应用程序需要存储38 KB的数据,这也是我查看上面的芯片的原因。我假设这是其他人都知道的,但是我可以让别人知道我做错了什么,还有什么真正让程序记忆工作的秘密?谢谢
|
|
相关推荐
5个回答
|
|
在PIC16F设备中,WORD只有14位,因此它不能容纳两个字节。XC8每个字只存储一个字节,以便与旧设备保持兼容,旧设备必须将数据存储为一系列RETLW instrucxtions。这只在汇编程序中是可能的,XC8没有对该格式的直接支持。我不能评论您的PIC18经验。
|
|
|
|
谢谢,你每天都能学到一些新东西,我也会感兴趣为什么在增强的图片上会出现同样的情况。
|
|
|
|
如果您的意思是“增强型中档”设备(即PIC16F1xxx),那么它仍然是一个14位的单词。它是要存储的全部8位数据,还是仅是ASCII?
|
|
|
|
因此,16F18857已经退出,但如果我使用短(16位)阵列,那么18F26K42将正确地拟合该阵列,从而解决了我的问题。了解16F固然很好,但对于我的其他应用来说,它仍然是一个很好的芯片:-)唯一让我困惑的是为什么18F使用双倍于字节数组的内存。
|
|
|
|
…是的,它是我需要存储的完整的8位数据。
|
|
|
|
只有小组成员才能发言,加入小组>>
5158 浏览 9 评论
1997 浏览 8 评论
1926 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3169 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2222 浏览 5 评论
724浏览 1评论
607浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
495浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
621浏览 0评论
520浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-19 20:16 , Processed in 1.386669 second(s), Total 86, Slave 70 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号