打印

PIC EEPROM 读写错误

[复制链接]
2077|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
kesiiy|  楼主 | 2015-5-27 09:39 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
读写对比,调试查看寄存器 一点问题没有
一烧到单片机全速运行 对比就出错

unsigned char HF_Read_b_eep( unsigned int badd )
{
        do{}
        while(EECON1bits.RD);
        EEADRH = (badd >> 8) & 0x03;
        EEADR = (badd & 0x0ff);
        EECON1bits.EEPGD = 0;
          EECON1bits.CFGS = 0;
        EECON1bits.RD = 1;
        do{}
        while(EECON1bits.RD);
        Nop();                                                        //Nop may be required for latency at high frequencies
        Nop();                                                        //Nop may be required for latency at high frequencies
        return ( EEDATA );              // return with read byte
}


void HF_Write_b_eep( unsigned int badd,unsigned char bdat )
{
        do{}
        while(EECON1bits.WR);                                //Wait till the write completion
        char GIE_BIT_VAL = 0;
        EEADRH = (badd >> 8) & 0x03;
        EEADR = (badd & 0x0ff);
        EEDATA = bdat;
          EECON1bits.EEPGD = 0;
        EECON1bits.CFGS = 0;
        EECON1bits.WREN = 1;
        GIE_BIT_VAL = INTCONbits.GIE;
        INTCONbits.GIE = 0;
        EECON2 = 0x55;
        EECON2 = 0xAA;
        EECON1bits.WR = 1;
        do{}
        while(EECON1bits.WR);                                //Wait till the write completion
        INTCONbits.GIE = GIE_BIT_VAL;
        EECON1bits.WREN = 0;
}
沙发
huarana| | 2015-5-27 10:24 | 只看该作者
楼主还是用自带库的把,自己写的问题多多。

使用特权

评论回复
板凳
吕工程| | 2015-5-27 10:36 | 只看该作者
是用自带库的好点。

使用特权

评论回复
地板
kesiiy|  楼主 | 2015-5-27 10:40 | 只看该作者
这个就是我用自带的库 不行 自己加了一部分延时判断
芯片型号18F66K80

两个程序是一样的问题  调试时数据没问题,全速跑不行

使用特权

评论回复
5
yklstudent| | 2015-5-27 11:59 | 只看该作者
延时加大点试试

使用特权

评论回复
6
kesiiy|  楼主 | 2015-5-27 13:01 | 只看该作者
延时加到10MS有试过 还是一样的问题
有谁遇到过同样的问题 分享一下经验

使用特权

评论回复
7
wuhanrf| | 2015-5-27 16:29 | 只看该作者
极有可能是你电源有干扰

使用特权

评论回复
8
kesiiy|  楼主 | 2015-5-28 08:33 | 只看该作者
我换一下试试,电源用的是BELLNIX模块,我以前有用过,相当稳定。

QQ 사진20150528083357.jpg (220.26 KB )

QQ 사진20150528083357.jpg

使用特权

评论回复
9
NE5532| | 2015-5-28 09:15 | 只看该作者
有没有用仿真器把E2读出来,看有没有写进去。仿真对,脱机不对的,多半在时间配合上找问题。不要乱怀疑啥库啊,电源啊。你这种电源对E2写错影响基本没有。

使用特权

评论回复
10
kesiiy|  楼主 | 2015-5-28 10:03 | 只看该作者
我稍后用串口把数据读出来,对比一下。
仿真没有问题,写进去读出来的数一样,但我用的是ICD3进行仿真的,没有用高速的ICE仿真器。
我再详细的试一下,有问题大家再讨论。

如果有什么更好的方法可以交流一下

使用特权

评论回复
11
kesiiy|  楼主 | 2015-5-28 10:07 | 只看该作者
对了请教高手,谁会PIC 18F66K80 串口的重定向
printf()

我改PUTCHAR() 还是重定向不了

使用特权

评论回复
12
yklstudent| | 2015-5-28 10:13 | 只看该作者
楼主的问题还真是多,看手册讲解吧,里面有提到printf使用的

使用特权

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

本版积分规则

1

主题

11

帖子

1

粉丝