打印

picc 问题求助

[复制链接]
2357|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
胡来一刀|  楼主 | 2007-9-22 14:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
遇到一下问题,请教各位大侠:
定义字程序:

void SCI_SEND(const unsigned char *AT_CMD)
……
调程序时SCI_SEND("www.21ic.com");字符串输入不进*AT_CMD中!为什么?软件仿真可以,仿真器不行!

我删掉一些其他程序但仿真该功能就可以了!

picmate2002+picc8.5+16f73

这样用都要注意些什么?



沙发
yewuyi| | 2007-9-22 16:57 | 只看该作者

const unsigned char *AT_CMD ?

别的不说,就是这函数写法也够绝的……


你把它定义为常数,后面再给他赋值,不成功是应该的,成功反是奇怪的了。

使用特权

评论回复
板凳
胡来一刀|  楼主 | 2007-9-22 17:02 | 只看该作者

格式正确!

楼上老兄:格式是正确的!

参照picc标准函数库:
#include <string.h> 
/*中级和低级系列单片机 */ 
const char * strstr (const char * s1, const char * s2) 
const char * stristr (const char * s1, const char * s2) 
/* 高级系列单片机 */ 
char * strstr (const char * s1, const char * s2) 
char * stristr (const char * s1, const char * s2) 

使用特权

评论回复
地板
胡来一刀|  楼主 | 2007-9-22 17:05 | 只看该作者

现在问题是

现在问题是:如果程序量少的话可以运行并且结果正确!如果加大点程序量就把值传部进去进去!

使用特权

评论回复
5
yewuyi| | 2007-9-22 17:32 | 只看该作者

你帖出来确实没错

因为例子就是CONST数据,编译时就确定数据了,并不是需要在运行中改变数值。


难道你就这样的?


如果是这样,那估计是程序别的地方有问题,根据LS的描述,一般可能由中断引起,你可以先关掉中断看看。



‘如果加大点程序量就把值传部进去进去!’这是什么意思?

使用特权

评论回复
6
hjh002| | 2007-9-24 01:12 | 只看该作者

应该不是CONST的问题

也许PICC编译器也有问题,我也碰到类似的程序运行不正确,减少程序后正确的情况。

使用特权

评论回复
7
hjh002| | 2007-9-24 01:17 | 只看该作者

我弄错了,呵呵

真不好意思,const是定义常量的。

使用特权

评论回复
8
胡来一刀|  楼主 | 2007-9-24 10:21 | 只看该作者

谢谢回复!

问题描述有错别字!不好意思!也可能我没说清楚。在描述一下:

先定义子程序:
void SCI_SEND(const unsigned char *AT_CMD)
……

调用时:
SCI_SEND("www.21ic.com");
也可以
SCI_SEND("www.28ic.com");我可以随意改变后面的字符串;
也可以
SCI_SEND(RXBUFF);RXBUFF是一个字符串!

当程序量小一点时,结果和过程完全正确!
如果我加大程序量,字符窜就根本传不到*AT_CMD中去!

不知道我这样说清楚了没有!

我现在怀疑是仿真器的问题!因为我用把仿真编译出来的.hex文件烧到IC中,测试,也正确!仿真器直接运行就不对!

不管怎么样,感谢版主yewuyi和hjh002兄弟的答复!





使用特权

评论回复
9
胡来一刀|  楼主 | 2007-9-24 10:26 | 只看该作者

应该不是中断问题

还有,应该不是中断问题,我关掉中断问题照旧!

使用特权

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

本版积分规则

5

主题

92

帖子

1

粉丝