各位高手,帮忙解决华邦w77e58设置PMR出错。

wenguangzheng26 2010-12-18 04:35:10
我用keil uvision v2.12编译如下的程序,一直出错。我想在程序中使用W77E58的内部1K的SRAM,根据手册上表述,要使能PMR的最低位。,可是我的程序编译无法通过,是怎么回事呀?好像说可以更改startup.a51,用过这个方法的大侠能不能说说具体该如何包含这个文件,keil要如何设置呀?麻烦各位大侠指导一下。
#include<w77c32.h>

//PMR |= 0x01;
unsigned int xdata xi=0;
int main()
{
// PMR |= 0x01;
unsigned int xdata xj;
for(xj=0;xj<10;xj++)
xi += xj;
return 0;
}
...全文
144 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
Ejack79 2010-12-19
  • 打赏
  • 举报
回复
LZ的那个//PMR |= 0x01;
到底是在函数内还是函数外?
linde228 2010-12-19
  • 打赏
  • 举报
回复
还好的啦,呵呵
schlafenhamster 2010-12-19
  • 打赏
  • 举报
回复
这样写:
unsigned int xdata xj;//现在这是第一行!
//其他变量
...
//代码:
PMR |= 0x01;
schlafenhamster 2010-12-19
  • 打赏
  • 举报
回复
//PMR |= 0x01;
unsigned int xdata xj;//现在这是第一行
wenguangzheng26 2010-12-19
  • 打赏
  • 举报
回复
可是我如果把PMR |=0x01注释掉就没有问题呀?这个好像和你说的没有关系吧?
wenguangzheng26 2010-12-19
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 schlafenhamster 的回复:]

C51 中对 sfr 的赋值必须在函数内,C函数的赋值语句必须在变量定义后。
[/Quote] schlafenhamster,那个keil如何删除错误添加的文件呀?我选择文件,然后右击鼠标,选择remove没用呀。
schlafenhamster 2010-12-19
  • 打赏
  • 举报
回复
C51 中对 sfr 的赋值必须在函数内,C函数的赋值语句必须在变量定义后。
wenguangzheng26 2010-12-19
  • 打赏
  • 举报
回复
感谢大家,问题解决。就是把PMR |=0x01放在main()函数内部,在变量定义的最后就可以了。我也不知道为什么。
wenguangzheng26 2010-12-19
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 schlafenhamster 的回复:]

程序不大,全部复制上来。
[/Quote]就是上面这个程序呀?错误是一样的。我另外一个程序很大,没办法赋值上来呀。
schlafenhamster 2010-12-19
  • 打赏
  • 举报
回复
程序不大,全部复制上来。
wenguangzheng26 2010-12-19
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 wenguangzheng26 的回复:]

不管是在函数内,还是在函数外都是错误的哈。我都试过了。
[/Quote]“在|=前缺少;”
wenguangzheng26 2010-12-19
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 schlafenhamster 的回复:]

//PMR |= 0x01;
unsigned int xdata xj;//现在这是第一行!
[/Quote]你是说PMR在最后面,还是?能不能说的详细点哈。
schlafenhamster 2010-12-19
  • 打赏
  • 举报
回复
什么错误?
wenguangzheng26 2010-12-19
  • 打赏
  • 举报
回复
不管是在函数内,还是在函数外都是错误的哈。我都试过了。
schlafenhamster 2010-12-18
  • 打赏
  • 举报
回复
C中变量不能用一个定义一个,要在函数开始处一次定义完。
PMR |= 0x01;
unsigned int xdata xj;
wenguangzheng26 2010-12-18
  • 打赏
  • 举报
回复
嗯。编译不通过,如果加了sfr PMR = 0xC4;那么就提示重定义了。如果直接PMR|=0x01;提示|=前面缺少“;”,不知道是怎么回事。
schlafenhamster 2010-12-18
  • 打赏
  • 举报
回复
sfr PMR = 0xC4;
是编译不通过?
schlafenhamster 2010-12-18
  • 打赏
  • 举报
回复
找PMR的定义,
wenguangzheng26 2010-12-18
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 schlafenhamster 的回复:]

#include <W77E58.h>
[/Quote]可是这个和w77C32.h不是一样的吗?
schlafenhamster 2010-12-18
  • 打赏
  • 举报
回复
#include <W77E58.h>

27,375

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧