LPC2148 USBMem 示例:更改 readme.txt 文件的内容

LPC2148 USBMem example : changing the contents of readme.txt file

我正在研究 MCB214x 板的 USBMem 示例。 使用十六进制编辑器,我找到了 RAM 上数据区的偏移量 (0x800),并编写了以下代码来更改 readme.txt 文件中的数据。

我创建了一个计数器变量,当我按下开关 sw1 时它会递增。我想在每次按下开关时将它的值存储到文件中。

class 个变量

U8 * offset = &Memory[0x800];
int counter=0;

现在在 main 函数里面我写了下面的代码

PINSEL0 = PINSEL0|(0<<15);
IO0DIR = (0<<15);

while (1){
    if(!SW1){
      counter = counter+1;
      LED_On(1<<16);

      *offset = counter;         //line 1
      offset +=4;                // line 2
    } else {LED_Off(1<<16);}
};

问题是当我 运行 电路板上的代码时,在我按下开关并且 USB 设备变得可访问后,led 仍然亮着! 然而,当我注释掉行 "line 1" 和 "line 2" 和 运行 时,led 的代码完全可以打开和关闭!

谁能给我解释一下这是怎么回事?

你的问题是"line 2"。仅添加 4 将使 offset 运行 RAM 的末端 非常 快。超出末尾访问可能会触发错误。

请记住,即使按下按钮的时间很短,也需要几毫秒的时间,而且循环没有延迟,只有几条指令长。