PIC的读内部EEPROM有一位出错,大神有碰到过吗

2020-02-06 10:21发布

PIC16F630解码PT2240批量生产,这段时间遇到奇怪的现象。一把遥控器可以学习两次,查了很久,发现EEPROM写入正常,但读出来就发现其中一个字节的bit3位,老是把0读成1,但是没有把1读成0.已经排除其他软件部分对读操作的干扰。明天给供应商电话,用了这么久PIC的片子,第一次发现读EEPROM的某一位出错。去年买到假货,写一个字节都错了,假货难防啊。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
16条回答
fengyunyu
2020-02-08 06:41
zw_7627 发表于 2014-12-19 15:10
不才愚昧,确实没有找到这句话出自何处?望大神引荐下, 我用的9.83的编译器。 ...


p24FJXXGAXXX.gld

/*
** Linker script for PIC24FJ64GA306
*/

OUTPUT_ARCH("24FJ64GA306")
CRT0_STARTUP(crt0_extended.o)
CRT1_STARTUP(crt1_extended.o)

OPTIONAL(-lpPIC24Fxxx)

/*
** Memory Regions
*/
MEMORY
{
  data  (a!xr)   : ORIGIN = 0x800,         LENGTH = 0x2000
  reset          : ORIGIN = 0x0,           LENGTH = 0x4
  ivt            : ORIGIN = 0x4,           LENGTH = 0xFC
  _reserved      : ORIGIN = 0x100,         LENGTH = 0x4
  aivt           : ORIGIN = 0x104,         LENGTH = 0xFC
  program (xr)   : ORIGIN = 0x200,         LENGTH = 0xA9F6-(0xA9F6+0x200-0xA400)
  CONFIG4        : ORIGIN = 0xABF8,        LENGTH = 0x2
  CONFIG3        : ORIGIN = 0xABFA,        LENGTH = 0x2
  CONFIG2        : ORIGIN = 0xABFC,        LENGTH = 0x2
  CONFIG1        : ORIGIN = 0xABFE,        LENGTH = 0x2

  bootloader     : ORIGIN = 0xA400,        LENGTH = 0xA9F6+0x200-0xA400
}

__CONFIG4 = 0xABF8;
__CONFIG3 = 0xABFA;
__CONFIG2 = 0xABFC;
__CONFIG1 = 0xABFE;

__NO_HANDLES = 1;          /* Suppress handles on this device  */

__IVT_BASE  = 0x4;
__AIVT_BASE = 0x104;
__DATA_BASE = 0x800;
__DATA_LENGTH = 0x2000;
__CODE_BASE = 0x200;
__CODE_LENGTH = 0xA9F8;


/*
** ==================== Section Map ======================
*/
SECTIONS
{
  /*
  ** ========== Program Memory ==========
  */


  /*
  ** Reset Instruction
  */
  .reset :
  {
        SHORT(ABSOLUTE(__reset));
        SHORT(0x04);
        SHORT((ABSOLUTE(__reset) >> 16) & 0x7F);
        SHORT(0);
  } >reset

一周热门 更多>