你好
我尝试在 msp430g2553的信息存储器中保存少量变量。 我尝试在存储器中写入一些数据
位置01000h 和01001h。
但是、当我写入上面的一个位置时、另一个位置会被擦除。
在这种情况下、我还尝试在子例程 FLASHWRITE1中省略假写入、两个存储器都已更新
成功一次、但第二次当我尝试更新该位置的内容时、不会发生任何情况。
请查找随附的代码。
此致
Dilraj
#include
org 0200h;
;
;------------------------------------------------------------------
org 0F800h;程序重置
;------------------------------------------------------------------
复位 MOV.w #0280h、SP ;初始化 stackpointer
StopWDT MOV.w #WDTPW+WDTHOLD、&WDTCTL ;停止 WDT
MOV #01000h、R8
MOV.b #010h、r7
调用 FLASHWRITE1
MOV 01001h、R8
MOV.b #011h、r7
调用 FLASHWRITE1
MOV #01000h、R8
MOV.b 012h、r7
调用 FLASHWRITE1
MOV 01001h、R8
MOV.b #013h、r7
调用 FLASHWRITE1
JMP $
============================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================
============================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================
FLASHWRITE1
MOV #FWKEY + FSSEL1+FN1、和 FCTL2 ;SMCLK/2
MOV #FWKEY、和 FCTL3 ;清除锁定
MOV #FWKEY +擦除、和 FCTL1
MOV.B #0、0 (R8) ;虚拟写入
MOV #FWKEY + WRT、和 FCTL1 ;启用写入
MOV.B R7.0 (R8) ;将 R7的内容写入 R8指向的内存位置
MOV #FWKEY、和 FCTL1 ;完成。 清除 WRT
MOV #FWKEY + LOCK、和 FCTL3 ; 设置锁定
可重置
--------------------------------------
;------------------------------------------------------------------
延迟
MOV #0FFFH、R10
LV DEC R10;减量 R5
JNZ LV;延迟?
可重置
;------------------------------------------------------------------
;中断矢量
;------------------------------------------------------------------
org 0FFFEh;MSP430复位向量
DW 重置;
结束