coody_sz 发表于 2023-11-16 20:43 那怎么读写16位数据,我现在就是将16位数据分成两个字节读取,不就相当于单字节读取吗? |
wulin 发表于 2023-11-16 19:04 EEPROM可以使用unsigned char/int/long code指针(汇编MOVC指令)读取,无需配置什么ISP寄存器。 |
程序问题,EEPROM只能单字节读写。 |
本帖最后由 wulin 于 2023-11-17 06:35 编辑 395164965 发表于 2023-11-16 17:57 读、写、清除EEPROM是在IAP方式操作。试试读、写、清除EEPROM时关闭总中断。EA=0;。完成后再开总中断。 |
lkc8210 发表于 2023-11-16 17:01 这种形式也试过,也是不行的 |
试试 ledld[0] = ispdu(0x0010);ledld[0] = ledld[0] << 8 | ispdu(0x0011); |
注意以下: 1、表达一个数所用的字节数N,即一个数要分成N个字节读、写。 2、EEPROM只能写0不能写1(1是擦除后自然形成的,例:可以将11110000,改成00110000,不可以改成11110011)。 3、先擦后写,已擦了不用再擦(擦的目的是改0为1)。 4、关注擦除的范围(当心擦到其它数据,擦是按页进行的,即一擦一大片。) |
代码不全,猜不出来。单片机本身不会发生这样的问题,只能是楼主的代码有问题。 |