- UID
- 149879
- 性别
- 男
|
我已经查过前面关于FLASH擦写的帖子了,而且相关文档也看过了,还是没有搞懂。我只有一台示波器来测试芯片的擦写性能。主要测试代码如下:
MOV #%00011001,CONFIG1
MOV #%00000011,DDRB
MOV #1,PTB
LDA $EC00 ;如果第一次读取这里的内容,应该是FF
CMP #1
BEQ stat1
MOV #1,$8C
JMP flash_test
stat1:
NOP
MOV #2,$8C
flash_test:
LDA #$62
STA $FE09
;擦除
MOV #10,$89 ;用了个9.8MHZ的晶体
LDHX #$EC00
JSR $FC06
;写入
MOV #10,$89
LDHX #$EC01
STHX $8A
LDHX #$EC00
JSR $FC09
MOV #3,PTB
MOV #$64,$80
last_test:
nop
nop
nop
nop
DBNZ $80,last_test
LDA $EC00
STA PTB
程序是从EC40开始的,EC00段开始为FF,所以如果运行以上程序的话,示波器上的波形应该是[PTB0,PTB1]=[1,0][1,1][1,0] 和 [1,0][1,1][0,1]这两种波形交替出现,但是结果是只出现第二种波形,说明了第一次写入是成功的,但是后面的擦写是不成功的。
这里请教各位高手,是我的测试程序错误还是怎么回事? |
|