打印

求助!在别的单片上能运行的程序为何不能在PIC上运行

[复制链接]
1617|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
下面这个是温度查表程序,我在IAR编译成三星的,运行正常,在PICC编译下,用PICKIT3仿真,烧录都卡住了,仿真的时候发现程序判断完这句后 else if(code==temp_code) 直接跳到了difft=upper-lower; ,然后一直在这里循环出不来了,请教一下大家,是什么问题造成的
我用的是MPLAB 8.80 PICC 9.80 芯片是PIC16F1937

unsigned char get_inc_table_index(unsigned int code)
{

unsigned char lower=0;

unsigned char upper=199;

unsigned char difft=0;

unsigned char new_index;

unsigned int  temp_code;


if(code>=temp_inc_index_code[199])

{

return 199;

}

else if(code<=temp_inc_index_code[0])

{

return 0;

}

else

{

difft=upper-lower;


while(difft>1)

{

new_index=(difft>>1)+lower;

temp_code=temp_inc_index_code[new_index];

if(code>temp_code)

{

lower=new_index;

}

else if(code==temp_code)

{

return new_index;


}

else

{

upper=new_index;

}

difft=upper-lower;

}

if((code-temp_inc_index_code[lower])>(temp_inc_index_code[upper]-code))

{

return upper;

}

else

{

return lower;

}

}
}
沙发
hua00001|  楼主 | 2012-7-30 11:08 | 只看该作者
不好意思,本来想传图片上来的,看的清楚一点,今天一直不能上传文件,请大家将就的看一下,麻烦各位了

使用特权

评论回复
板凳
Ryanhsiung| | 2012-7-31 10:36 | 只看该作者
你程序没有写好

使用特权

评论回复
地板
hua00001|  楼主 | 2012-7-31 17:35 | 只看该作者
解决了,在while前面加了个NOP就好了
不过还是搞不懂是什么原因,那位大侠给分析一下,谢谢了

使用特权

评论回复
5
hua00001|  楼主 | 2012-7-31 17:39 | 只看该作者
图能传了

未命名.JPG (42.57 KB )

未命名.JPG

使用特权

评论回复
6
Ryanhsiung| | 2012-8-1 08:58 | 只看该作者
被优化了吧??
   LZ你看一下汇编代码,看一下difft=upper-lower是寻些语句。
     查一下,指令说明,在看一下这些语句有什么特别

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

44

主题

151

帖子

3

粉丝