RL78L1A SEG0-SEG44都写入0X01,但是只有偶数的SEG被正确写入。

代码:

uint32_t *p;

volatile uint32_t add;

static void DrvLCD_WriteLCDRAM(void)

{

       p = &SEG0;

       add = 0;

       while(add<46)

       {

                     *p = 0X01;

                     p = &SEG0+(add++);

       }

}

 

利用上面的代码,把SEG0-SEG44都写入0X01,但是只有偶数的SEG被正确写入。

从汇编可以看出,利用间接寻址方式[HL]去操作寄存器。

 

LCD配置如下;

Parents
  • 考虑在C语言中采用step over的方式调试,确认每次进行赋值时p的值。

    在while(add<46)中检查对于奇地址也进行了赋值操作,请将检查结果更新后再分析。

Reply
  • 考虑在C语言中采用step over的方式调试,确认每次进行赋值时p的值。

    在while(add<46)中检查对于奇地址也进行了赋值操作,请将检查结果更新后再分析。

Children
No Data