完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
你好,朋友们。我在我的项目中使用PIC18F4520。我试图将一些数据存储在内部EEPROM...int ck1;void main(){EECON1bits.WREN=1;EEADR=0x01;EEDATA=1;EECON1bits.EEPGD=0;EECON1bits.CFGS=0;INTCONbits.GIE=0;EECON2=0X55;EECON2=0XAA;EECON1bits.WR=1;INTCONbits.GIE.=1;.(EECON1bits.WR==1);EECON1bits.WREN=0;EEADR=0x01;EECON1bits.EEPGD=0;EECON1bits.CFGS=0;EECON1bits.RD=1;ck1=EEDATA;if(ck1==1){.(1){warning=~warning;DelayMs(250);}}这是我的代码。如果我同时执行具有写和读程序的代码意味着它工作良好。但是,如果我执行读取部分意味着我不能从EEPROm读取值……我不知道我的代码中有什么问题……请帮助我解决这个问题……
|
|
相关推荐
6个回答
|
|
|
它看起来很好。我会在PIC的“引导”上添加一些延迟,并为Read()和Read()创建2个函数,然后重新测试它。
|
|
|
|
|
|
由于与微芯片编程工具的交互作用,上电后立即写入EEPROM的程序存在问题。我已经在这里详细讨论了问题:HTTP://www. McCHIP.COM/FUMMS/FUNDSPE/909091
|
|
|
|
|
|
更重要的是,伊恩意味着您的代码应该在开始使用EEPROM之前等待几百个MSECs。
|
|
|
|
|
|
是的,这就是所谓的上电延迟。
|
|
|
|
|
|
朋友们,我把Delay改为1000M,并且通过在pickit2中选择“vss”来使微控制器一直处于工作状态,但是仍然不能从内置的EEPROM...//CONFIG1H#pragma config OSC=HS//振荡器选择位(HS振荡器)#pragma config FCMEN=OFF//Fail-Safe时钟监视器中读取数据。启用位(禁用故障安全时钟监视器)#pragma config IESO=OFF//内部/外部振荡器切换位(禁用振荡器切换模式)//CONFIG2L#pragma config PWRT=OFF//上电计时器启用位(禁用PWRT)#pragma config BOREN=ON//Brown-out Reset Enable位(褐色切换模式)-out Reset启用并由软件控制(SBOREN启用)#pragma配置BORV=3//Brown Out复位电压位(最小设置)//CONFIG2H#pragma配置WDT=OFF//看门狗定时器启用位(禁用WDT(对SWDTEN位进行控制)#pragma配置WDTPS=32768//看门狗Timer Postscale Select bits(1:32768)//CONFIG3H#pragma config CCP2MX=PORTC//CCP2 MUX bit(CCP2输入/输出与RC1多路复用)pragma config PBADEN=OFF//PORTB A/D Enable bit(PORTB<4:0>pins被配置为数字I/O on Reset)pragma config LPT1OSC=OFF//低功耗定时器1O闪烁体启用位(为高功率操作配置的定时器)#pragma配置MCLRE=ON//MCLR引脚启用位(启用MCLR引脚;禁用RE3输入引脚)//CONFIG4L#pragma配置STVREN=OFF//堆栈满/下溢复位启用位(堆栈满/下溢不会导致重置)#pragma配置LVP=OFF//单电源ICSP启用位(禁用单电源ICSP)#pragma配置XINST=OFF//扩展指令集启用位(禁用指令集扩展和索引寻址模式(遗留模式))//CONFIG5L#pragma配置CP0=OFF//代码保护位(方框0(000800-001FFFh)not代码保护)#pragma配置CP1=OFF//代码保护位(块1(002000-003FFFh)未代码保护)#pragma配置CP2=OFF//代码保护位(块2(004000-005FFFh)未代码保护)#pragma配置CP3=OFF//代码保护位(块3(块3(006000-007FFFh)未代码保护)//CONFIG5H#pragma配置CPB=OFF//引导块代码保护位(引导块(000000-0007FFh)未代码保护)#pragma配置CPD=OFF//Data EEPROM代码保护位(数据EEPROM未代码保护)//CONFIG6L#pragma配置WRT0=OFF//写保护位(块0(000800-001FFFh)未写保护)#pragma配置WRT1=OFF//写保护位(块1(002000-003FFFh)未写保护)#pragma配置WRT2=OFF//写保护位(块2(块2(004000-005FFFh)未写保护)#pragma配置WRT3=OFF//写保护位(块3(块3(006000-007FFFh)未写保护cted)//CONFIG6H#pragma config WRTC=OFF//配置寄存器写保护位(配置寄存器(300000-3000FFh)未写保护)#pragma config WRTB=OFF//引导块写保护位(引导块(000000-0007FFh)未写保护)#pragma config WRTD=OFF//数据EEPROM写保护位(数据EEPROM未写保护)//CONFIG7L#pragma配置EBTR0=OFF//表读保护位(块0(000800-001FFFh)未被保护以免受在其他块中执行的表读的影响)#pragma配置EBTR1=OFF//表读保护位(块1(002000-003FFFh)未保护ed来自在其他块中执行的表读取)#pragma配置EBTR2=OFF//表读取保护位(块2(004000-005FFFh)不受其他块中执行的表读取的保护)#pragma配置EBTR3=OFF//表读取保护位(块3(块3(006000-007FFFh)不受表读取保护的执行在其他块中执行)//CONFIG7H#pragma配置EBTRB=OFF//引导块表读取保护位(引导块(000000-0007FFh)不受在其他块中执行的表读取的保护)这是我的配置位。他们在这方面有什么错误吗?
|
|
|
|
|
|
我通常喜欢激活PWRTE计时器,但它不是强制性的。其余的看起来不错。我不确定你是否把延迟时间放在做EEPROM的任何事情之前…
|
|
|
|
|
只有小组成员才能发言,加入小组>>
MPLAB X IDE V6.25版本怎么对bootloader和应用程序进行烧录
501 浏览 0 评论
5808 浏览 9 评论
2350 浏览 8 评论
2237 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3543 浏览 3 评论
1156浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
1119浏览 1评论
我是Microchip 的代理商,有PIC16F1829T-I/SS 技术问题可以咨询我,微信:A-chip-Ti
887浏览 1评论
MPLAB X IDE V6.25版本怎么对bootloader和应用程序进行烧录
501浏览 0评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-12 08:16 , Processed in 1.068529 second(s), Total 84, Slave 67 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
2609