查看: 1863|回复: 5
|
PIC 16f877A stack overflow
[复制链接]
|
|
各位高手,小弟有事请教!我用proteus来做simulation,给Pic16f877!但在最后关头,要把全部coding放在一起时,突然stack overflow 跑了出来!过后,我发现问题应该出现在call和retlw
coding如下:
Pmatch clrf point_1
movlw D'3'
call Finger_1
goto Result
Finger_1 addwf PC
retlw B'00000000' ;for beginning
retlw B'11111111' ;let assume 1st posture is 2-4k
retlw B'01111111'
retlw B'00011111' ;let assume 2nd posture is 1-3k
retlw B'01011111'
retlw B'10011111' ;let assume 3rd posture is 5-6k
retlw B'10111111'
由于,W=3,所以call Finger_1 后,应会给W=00011111吧!但是,偏偏就不能run下去,proteus抛出stack overflow。请多多帮忙,谢谢!!
[ 本帖最后由 可口可怜 于 23-3-2009 08:07 PM 编辑 ] |
|
|
|
|
|
|
|
发表于 26-3-2009 08:41 AM
|
显示全部楼层
原帖由 可口可怜 于 23-3-2009 08:05 PM 发表
各位高手,小弟有事请教!我用proteus来做simulation,给Pic16f877!但在最后关头,要把全部coding放在一起时,突然stack overflow 跑了出来!过后,我发现问题应该出现在call和retlw
coding如下:
Pmatch ...
你这帖应该发在 单晶片分区。。
我不知道是什么原因,但看你的代码缺少了些些指令,试下改成如下。。。。
Finger_1
MOVF ADDR_LOW,W
ADDWF PCL,F
retlw B'00000000' ;for beginning
retlw B'11111111' ;let assume 1st posture is 2-4k
retlw B'01111111'
retlw B'00011111' ;let assume 2nd posture is 1-3k
retlw B'01011111' |
|
|
|
|
|
|
|
发表于 26-3-2009 10:35 PM
|
显示全部楼层
可以放你整个源代码上来吗?你有没有 nested call 超过 8 次? |
|
|
|
|
|
|
|
发表于 29-3-2009 11:03 PM
|
显示全部楼层
原帖由 可口可怜 于 23-3-2009 08:05 PM 发表
各位高手,小弟有事请教!我用proteus来做simulation,给Pic16f877!但在最后关头,要把全部coding放在一起时,突然stack overflow 跑了出来!过后,我发现问题应该出现在call和retlw
coding如下:
Pmatch ...
楼主失踪了?
问题解决了吗? |
|
|
|
|
|
|
|
发表于 30-3-2009 09:15 AM
|
显示全部楼层
原帖由 fritlizt 于 29-3-2009 11:03 PM 发表
楼主失踪了?
问题解决了吗?
如果再不出现,建议封帖。 |
|
|
|
|
|
|
|
发表于 30-3-2009 12:09 PM
|
显示全部楼层
原帖由 rothmans 于 30-3-2009 09:15 AM 发表
如果再不出现,建议封帖。
好的。 在等多一下吧。 |
|
|
|
|
|
|
| |
本周最热论坛帖子
|