Browsing this Thread:
1 Anonymous Users
|
帮忙看看片内flash的写问题,檫除没有问题,就是不能写入数据。
|
|
新會員
Joined
: 2009/8/4 10:39 最後登入時間
: 2009/8/4 10:41
Group:
註冊會員
Level : 1 HP : 0 / 0 MP : 0 / 0 EXP : 0
|
帮忙看看片内flash的写问题,檫除没有问题,就是不能写入数据。帮忙看看片内flash的写问题,檫除没有问题,就是不能写入数据。 谢谢了! 用的是pic18f97j60 ,
#define FLASH_ERASE_SIZE 1024ul #define FLASH_WRITE_SIZE 64ul #pragma romdata ROM_CONFIG_SECT=0xb400 static ROM BYTE vConfigData[FLASH_ERASE_SIZE]; #pragma romdata
void flashwrite(unsigned char * source_addr,unsigned char length, unsigned long addr) {
TBLPTR = (DWORD)vConfigData; EECON1bits.FREE = 1; EECON1bits.WREN = 1; _asm movlw 0x55 movwf EECON2, ACCESS movlw 0xAA movwf EECON2, ACCESS bsf EECON1, 1, ACCESS //WR _endasm
EECON1bits.WREN = 0; TBLPTRL=((addr)&0xFF); TBLPTRH=(((addr)>>8)&0xFF); TBLPTRU=(((addr)>>8)>>8); EECON1=0;
while(length--) { TABLAT=*source_addr++; _asm TBLWTPOSTINC _endasm }
TBLPTRL=((addr)&0xFF); TBLPTRH=(((addr)>>8)&0xFF); TBLPTRU=(((addr)>>8)>>8); EECON1bits.WREN=1; // this is the required sequence INTCONbits.GIE=0; EECON2=0x55; EECON2=0xAA; EECON1bits.WR=1; while(EECON1bits.WR); EECON1bits.WREN=0; }
發表於: 2009/8/4 10:44
|
|
You can view topic.
你 不可以 發起新主題
You cannot reply to posts.
You cannot edit your posts.
You cannot delete your posts.
You cannot add new polls.
You cannot vote in polls.
You cannot attach files to posts.
You cannot post without approval.
You cannot use topic type.
You cannot use HTML syntax.
You cannot use signature.
You cannot create PDF files.
You cannot get print page.