打印
[家电应用]

关于中颖单片机SH79F3283数据手册里面 EEPROM读取指令 怎么只有汇编?

[复制链接]
401|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
join剧终|  楼主 | 2020-11-16 16:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
数据手册只有汇编,这个只能用汇编吗?我仿照sh79f166a的EEPROM代码,但是每次读取的数都是0。

使用特权

评论回复
评论
join剧终 2020-11-16 16:53 回复TA
void eeprom_erase(uint addr) { //CY = EA; EA = 0; FLASHCON = 1; //·ÃÎÊEEPROMÇø XPAGE = addr; IB_CON1 = 0xe6; IB_CON2 = 0x05; IB_CON3 = 0x0a; IB_CON4 = 0x09; IB_CON5 = 0x06; _nop_(); _nop_(); _nop_(); _nop_(); XPAGE = 0; FLASHCON = 0; //·ÃÎÊÖ÷³ÌÐò EA=1; } 
沙发
join剧终|  楼主 | 2020-11-16 16:54 | 只看该作者
void eeprom_erase(uint addr)
{
        //CY = EA;
        EA        =        0;
        FLASHCON        =        1;    //·ÃÎÊEEPROMÇø
        XPAGE        =        addr;
        IB_CON1 = 0xe6;
        IB_CON2 = 0x05;
        IB_CON3 = 0x0a;
        IB_CON4 = 0x09;
        IB_CON5 = 0x06;
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        XPAGE = 0;
        FLASHCON = 0;  //·ÃÎÊÖ÷³ÌÐò
        EA=1;
}

void eeprom_program(uint addrH,uint addrL,uint ndata)
{
        //CY = EA;
        EA = 0;
        FLASHCON = 1;
        XPAGE = addrH;
        IB_OFFSET        =        addrL;
        IB_DATA        =        ndata;
        IB_CON1 = 0x6e;
        IB_CON2 = 0x05;
        IB_CON3 = 0x0a;
        IB_CON4 = 0x09;
        IB_CON5 = 0x06;
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        XPAGE = 0;
        FLASHCON = 0;
        EA=1;
}
void eeprom_write(uint addr,uchar *value,uchar num)
{
        uchar n=0;
        eeprom_erase(addr>>8);
        for(n=0;n<num;n++)
        {
                eeprom_program(addr>>8,(addr&0x0f),value[n]);
                addr++;
        }
}

uchar eeprom_read(uint addr)
{
        uint tempb;
       
        FLASHCON        =        1;
        tempb = *(uchar code *)(addr);
        FLASHCON = 0;
        return (tempb);
}



使用特权

评论回复
板凳
join剧终|  楼主 | 2020-11-16 16:55 | 只看该作者
请问代码问题出现在哪里?

使用特权

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

本版积分规则

2

主题

11

帖子

0

粉丝