完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
嗨,我试图在PIC18LF2420中写入和读取内部EEPROM,但是到目前为止完全没有这样做。函数调用,例如,Write_b_eep()看起来“不再支持”。宏,例如,WRITE_EEPROM只调用不支持的宏。编译器不会编译汇编代码。从芯片说明书中。用固定数字而不是“WR”重写代码不起作用。C版本的程序不能工作,例如:EECON2=0x55;EECON2=0xAA;EECON1bits.WR=1;不能工作。MCC建议不支持CPU。请问我如何编写和阅读这个EEPROM?哦,不知怎的,我好像把它贴错了论坛。对不起,有没有办法把它移到XC8?谢谢,戈登。
|
|
相关推荐
19个回答
|
|
|
|
|
|
|
|
|
我很久以来一直使用自己的函数,基于数据表示例:SHORTPTR是typedef'd类型,通常是BYTE*(用于可移植性等)。
|
|
|
|
|
|
我想这就是我所拥有的。如果你能看到一个错误,我会很感激,如果尴尬:-)voidwrite_octet_eep(无符号字符地址,无符号字符数据){.(EECON1bits.WR)//确保它不忙于之前的写入。{}//EEPROMIX写(地址,数据);但更多的芯片芯片不起作用!/…所以尝试直接做数据表定义。EEADR=地址;EEDATA=数据;EECON1bits.EEPGD=0;EECON1bits.CFGS=0;EECON1bits.WREN=1;INTCONbits.GIE=0;//必需序列开始EECON2==0x55;EECON2==0xAA;EECON1bits.WR=1;//必需序列结束INTCONbits.GIE=1;}无符号charread_octet_eep(无符号短地址){..(ECON1BIT.WR)/ /确保它不忙于较早的写入。{}//Read(EEPROMYRADE(地址));但更多的芯片芯片不起作用!/…所以回去做我自己。EEADR=地址;ECON1BIT。EEPGD=0;ECON1BITS。CFGS=0;ECON1BITS。RD=1;返回(EEDATA);}WrreEthoToTeTeEEP(0, 0);
|
|
|
|
|
|
你有= = = =。
|
|
|
|
|
|
所以我…我相当尴尬。我刚刚重写了这个,就像我之前重写了所有的方法,包括汇编程序,最后以“最好的”版本结束。但是有了这个bug,我刚刚学到了一些我开始怀疑的东西…EEPROM内存窗口似乎没有得到自动更新。看来我不得不退出调试并读回这个设备。这个编译器中的标志的解释与我之前的编译器不同,这让我有些问题。我怀疑我最初的问题和这个有关,可能是写回我读过的FF,也不知道EEPROM窗口没有暂停读回数据。谢谢你的帮助。对不起,我太傻了。-戈登。
|
|
|
|
|
|
|
|
|
我想现在明显的后续问题是“有没有办法在不停止调试的情况下读取EEPROM?”g.
|
|
|
|
|
|
你的意思是,在调试器中更新EEPROM窗口?我想不会。但我更不喜欢使用调试器,而是使用一个USAT/RS232或一个LCD来显示值…
|
|
|
|
|
|
在不与程序员进行读操作的情况下,不能更新EEPROM或程序存储器窗口。
|
|
|
|
|
|
不,不要让调试器更新其EEPROM窗口。唯一的方法是使用您自己的EEPROM读取例程,并通过串行端口等输出它。请确保在之前的写入周期不完整时不尝试读取EEPROM。如果代码包含EEPROM写入代码,则始终启用BOR。VDD低时写入会破坏EEPROM。
|
|
|
|
|
|
正确的。正如我所怀疑的。嗯,这有点弱,不是吗?呵,嗯。不能阅读E2是一个烦恼,而不是一个真正的问题,除了不知道这已经使得解决这个问题比它需要困难得多。没有显示器,串行端口正在使用。这应该是一个小小的更新,我认为需要一天或三天。它花了一个月的时间,主要是让编译器做编译器应该做的事情。叹气,谢谢大家。
|
|
|
|
|
|
呃,现在我更糊涂了。我的数据已经消失了。EEPROM又回到0xFFS了。其他的bug,在别处,我假设,擦除或覆盖或什么。现在晚了。明天!
|
|
|
|
|
|
你重新编程了PIC了吗?如果你不勾选“保存EEPROM”框,这将擦除EEPROM(实际上,它总是被擦除)。这个盒子会让它读取EEPROM,然后把它放回原处。
|
|
|
|
|
|
MPLAX不能刷新EEPROM和Flash窗口。他们想知道我们为什么要抱怨。它必须做一个引导加载程序吸吮。
|
|
|
|
|
|
您不能在调试会话的中间,因为这需要修改您可能正在调试的寄存器。不过,最好有一个重写按钮,即使它警告说使用它可能会中断eeprom访问寄存器的调试。
|
|
|
|
|
|
当我试图从PIC18F46K80中读取EEPROM时,总是返回一个满是零的文件。我使用的是MPLABX 2.00;以后的版本是否允许您查看调试器/文件转储中的EEPROM内容?
|
|
|
|
|
|
PIC器件以多种模式工作。本文讨论的三种模式是Run:闪存指令的正常执行。调试:一种特殊的运行形式,其中启用了许多特性,包括使用ICDC和ICDD引脚。重要的是,大多数外围设备,如EEFLASH、RTSP、NVMCON等都被冻结,以防止它们在调试模式下继续执行。在这个模式下不执行指令。要进入或退出程序模式,需要使用MCLR PIN。因此,在调试会话的中间进入程序模式读取EEPROM对调试状态有些致命。我们可以想象在调试模式下使用EEFLASH或RTSP外围设备读取EEPROM。但是这将需要相当多的代码来保存/恢复状态并实际执行外围设备。(即使这样,我们也有很好的机会拆除当前由用户代码执行的读/写。)在8位的早期,当调试执行程序被存储在宝贵的用户闪存中时,如此奢侈地使用闪存是不可想象的。随着PIC设备的成熟,硅设计人员开始为调试执行器预留少量的秘密内存。但没有太多的记忆。快速查看我们的产品表确认内存是整个芯片价格的最大驱动力之一。所以,即使在这些先进设备上,我们也没有足够的内存来读取EEPROM(或Flash)。有趣的是,现代设备可能有足够的内存来完成此任务,但是大多数现代设备实际上不再具有EEPROM。所有这些因素,加上历史惯性,以及存在可行的解决方法,使得微芯片无法公平地实现EEPROM的调试时间读取。有限的设备,这可能是可能的。
|
|
|
|
|
|
您省略了使用“Read Memory”命令可以读取EEPROM内存的细节,但是因为这样使用程序模式进行读取,所以会中止当前运行的任何调试会话。
|
|
|
|
|
|
显然,我没有很好地交流悲伤:
|
|
|
|
|
只有小组成员才能发言,加入小组>>
MPLAB X IDE V6.25版本怎么对bootloader和应用程序进行烧录
473 浏览 0 评论
5793 浏览 9 评论
2334 浏览 8 评论
2224 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3530 浏览 3 评论
1124浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
1095浏览 1评论
我是Microchip 的代理商,有PIC16F1829T-I/SS 技术问题可以咨询我,微信:A-chip-Ti
873浏览 1评论
MPLAB X IDE V6.25版本怎么对bootloader和应用程序进行烧录
475浏览 0评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 04:10 , Processed in 1.154123 second(s), Total 112, Slave 94 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
2549