登录 免费注册 首页 | 行业黑名单 | 帮助
维库电子市场网
技术交流 | 电路欣赏 | 工控天地 | 数字广电 | 通信技术 | 电源技术 | 测控之家 | EMC技术 | ARM技术 | EDA技术 | PCB技术 | 嵌入式系统
驱动编程 | 集成电路 | 器件替换 | 模拟技术 | 新手园地 | 单 片 机 | DSP技术 | MCU技术 | IC 设计 | IC 产业 | CAN-bus/DeviceNe

MPLAB IDE求救

作者:haagen 栏目:单片机
MPLAB IDE求救
原来在wave(伟福)下面做好的程序,连上PCB仿真运行都正常了,由于要换成FLASH,开始用wave生成的HEX直接导入MPLAB IDE,然后用ICD2烧,但烧入的程序不对,在MPLAB IDE里反汇编,看出存储器都都含一个“X”。接下来,把ASM文件直接在MPLAB IDE里编译,出来好多警告,不管,编译成功,鼠标移到上面如下图所示:

结果仍然出现“X”,程序当然不能正确运行了。不知怎么回事,另外,注释有中文。

2楼: >>参与讨论
rad.zhu
把你的警告信息贴出来看看
 
3楼: >>参与讨论
haagen
re
Warning[202]  Argument out of range.  Least significant bits used.
Message[305]  Using default destination of 1 (file).
Message[302] Register in operand not in bank 0.  Ensure that bank bits are correct.
基本上是这三种类型。
另外,单步仿真,虽然MAIN被编译成0X03,但还是能正确跳转到主程序,看来还是烧写设置的问题吧?

4楼: >>参与讨论
haagen
编译结果对照

00000E    1303     BCF 0x3, 0x6                147:   MAIN:    BCF     STATUS,6
00000F    1683     BSF 0x3, 0x5                148:            BSF     STATUS,RP0
000010    300B     MOVLW 0xb              149:            MOVLW   10000000B          ;禁止B口上拉,INT下降沿中断。
000011     081     MOVWF 0x1                150:            MOVWF   OPTIONS
000012    301B     MOVLW 0x1b            151:            MOVLW   00000001B          ;SET PORTB=1 (RB0=input)   为判别模式初始化。
000013     086     MOVWF 0x6                 152:            MOVWF   TRISB
000014    1283     BCF 0x3, 0x5                 153:            BCF     STATUS,RP0
000015    301B     MOVLW 0x1b             154:            MOVLW   11111111B
000016     086     MOVWF 0x6                  155:            MOVWF   PORTB
000017     1A3     CLRF 0x23                     156:            CLRF    MODE_FLAG          ;初始化模式标志为正常模式
000018    301B     MOVLW 0x1b              157:            MOVLW   11111111B          ;初始化显示存储器(置1)  PORTA.4=0
000019     0A4     MOVWF 0x24               158:            MOVWF   DISPLAY_FLAG1
挑主程序开始这段编译的结果给师傅看看,象000015这行的11111111B-->0x1b是不是有问题呢?

5楼: >>参与讨论
systemchip
:
二进制赋值错误:
    例如赋值:00000001到W寄存器中
    应该这样:  movlw   b'00000001'
   或用16进制   movlw   0x01

6楼: >>参与讨论
xieyuanbin
那些警告不要管.
出现ERROR信息才会编译不通过.0xXX是MPLAB十六进制的表示方法,可代表地址或立即数.
应该是配置位没选才对.

7楼: >>参与讨论
baiyaohui
如果你是otp改成FLASH
看你说的意思好像是otp改成FLASH,但程序没改,对于大多pic单片机otp改成FLASH程序要稍微改一下,起码头文件换一下,一些器件个别寄存器也定义不同

8楼: >>参与讨论
haagen
鸣谢各位。
baiyaohui你猜对了,呵呵;xieyuanbin斑竹,是systemchip说的那个问题,直接加的伟福的文件,这么严重的问题怎么只是警告啊,MPLAB害人,剩下的警告没理它,可以了。

9楼: >>参与讨论
vulturew
MPLAB IDE求救
把你的编译选项中MPASM Assembler 中的大Default Radix 改为Decimal。就可以了,不用改源程序。

Warning[202]  Argument out of range.  Least significant bits used.
是警告赋值的数太大,只取了最后的位,他当16进制来处理了。

参与讨论
昵称:
讨论内容:
 
 
相关帖子
请教输出脉冲的小程序
关于指针和数组请教大家,帮我一下,急死我了,谢谢!!
PIC16F916的AD采样的问题。
MDT单片机高压700V通不过
PIC16F716
免费注册为维库电子开发网会员,参与电子工程师社区讨论,点此进入


Copyright © 1998-2006 www.dzsc.com 浙ICP证030469号