完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
贴上代码,为什么调试的时候执行到READ之后就直接跳到主函数第一行,而不是继续往下执行READ后面的代码,一直这样循环,到底怎么回事啊。
#include "p24fj64ga006.h" //#define UINT32 unsigned long #define UINT16 unsigned int #define UINT8 unsigned char #define FLASH_ERASEPAGE 0x4042 #define FLASH_PROGLINE 0x4001 void FlashReadData(UINT16 FlashAddr,UINT8 *Dest,UINT8 DataNum) { TBLPAG = 0x00; for(;DataNum>0;DataNum--) { asm("tblrdl.b [%1],%0":"=r"(*Dest):"r"(FlashAddr)); Dest++; asm("tblrdh.b [%1],%0":"=r"(*Dest):"r"(FlashAddr)); Dest++; FlashAddr += 2; } // return 0; } void FlashErasePage(UINT16 FlashAddr) { UINT16 temp16; NVMCON = FLASH_ERASEPAGE; TBLPAG = 0x00; temp16 = FlashAddr; asm("tblwtl w0,[w0]"); NVMKEY = 0x55; NVMKEY = 0xaa; _WR = 1; Nop(); Nop(); } void FlashWriteData(UINT16 FlashAddr,UINT8 *Dest,UINT8 DataNum) { UINT16 temp16; NVMCON = FLASH_ERASEPAGE; TBLPAG = 0x00; temp16 = FlashAddr; asm("tblwtl w0,[w0]"); NVMKEY = 0x55; NVMKEY = 0xaa; _WR = 1; Nop(); Nop(); NVMCON = FLASH_PROGLINE; TBLPAG = 0x00; for(;DataNum>0;DataNum--) { asm("tblwtl.b %0,[%1]"::"r"(*Dest),"d"(FlashAddr)); Dest++; asm("tblwth.b %0,[%1]"::"r"(*Dest),"d"(FlashAddr)); Dest++; FlashAddr += 2; } NVMKEY = 0x55; NVMKEY = 0xaa; _WR = 1; Nop(); Nop(); } void main() { AD1PCFG=0XFFFF; int a[1]={0xffff,0x55aa}; int b[1]; TRISB=0; LATB=0XFFFF; FlashReadData(0xAC00,b,4); Nop(); Nop(); FlashErasePage(0XAC00); Nop(); Nop(); FlashWriteData(0xAC00,a,4); Nop(); Nop(); FlashReadData(0xAC00,b,4); while(1); } |
|
相关推荐
|
|
问题解决咯。是给W寄存器附的地址值被覆盖了。 可改成asm("tblwtl %0, [w0]" : /* no outputs */ : "r"(FlashAddr));,调试全部正常了
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
求解外围电路实现的是4脚给持续低电平复位并正常工作,高电平不工作的原因
2077 浏览 1 评论
3497 浏览 3 评论
PIC1946程序有一个变量在运行过程中恢复初始值其他变量保持不变
2330 浏览 2 评论
2755 浏览 0 评论
PIC16F1825的RC5引脚,在主程序中操作无效,在中断中可以改变是为什么?
4014 浏览 5 评论
962浏览 0评论
用XC8编译PIC18F25K80时提示下面Error,求怎么解决这个问题
6347浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-25 12:01 , Processed in 0.586428 second(s), Total 55, Slave 47 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号