OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 18869|回复: 11

STC单片机xdata定义的全局变量的初始化

[复制链接]

12

主题

54

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
248
金钱
248
注册时间
2011-7-24
在线时间
37 小时
发表于 2012-8-1 12:06:54 | 显示全部楼层 |阅读模式
 xdata定义的全局变量的初始化
可以像下面这样吗?

#include"lcd.h"
#include"ra8806reg.h"
#include"delay.h"
#include"key.h"
#include"uart_stc11.h"
#include"eeprom.h"
#include"window_jiazhu.h"
#include"operation.h"
#include"main_int.h"


unsigned char xdata place=0,page=0;
unsigned char xdata moshi[2]={0};
unsigned char xdata shedingl[10][5]={0};
unsigned char xdata time[10][2]={0};
unsigned char xdata xiuzheng[10][4]={0};
unsigned char xdata yalishe[5][6]={0};

unsigned char xdata q0=0,q1=0,q2=0,q3=0,q4=0,q5=0,q6=0,q7=0,q8=0,q9=0;
unsigned char xdata key_v;//way;
unsigned char xdata flayz[10]={0};
unsigned char xdata key_eeprom[10]={0};//记录按键的个数
unsigned char xdata eeprom_leijia_clear[10]={10};//倒数数据
bit key_eeprom_clear0=0,key_eeprom_clear1=0,key_eeprom_clear2=0,key_eeprom_clear3=0,key_eeprom_clear4=0;//起启时间标示
bit key_eeprom_clear9=0,key_eeprom_clear8=0,key_eeprom_clear7=0,key_eeprom_clear6=0,key_eeprom_clear5=0;
bit flay=0,yali_qidian=0;
bit key_qingdianqi=0;//所有的阀都关了,断电器一定要关
///////////////////////////////////////////
void Enable_KeyScan(void)
{
  LCD_CmdWrite(KSCR1);
  LCD_DataWrite(0x80);
}
///////////////////////////////////////////
void Enable_interrput_Key(void)
{
  LCD_CmdWrite(INTR);
  LCD_DataWrite(0x20);
}
。。。。。。。。。。。。。。。。
。。。。。。。。。。。。。。
。。。。。。。。。。。。。
还是要在h文件中声明,然后在还是要到main{}中一个一个的赋0,
这些全局变量,别的文件也是要用到,

出一个问题,就是刚下到单片机里,运行可以,但开了一夜之后,发现,
全局变量都 不对了,也不知是不是,程序跑飞
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165353
金钱
165353
注册时间
2010-12-1
在线时间
2108 小时
发表于 2012-8-1 12:30:16 | 显示全部楼层
xdata是存放在外部sram芯片的数据吧?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165353
金钱
165353
注册时间
2010-12-1
在线时间
2108 小时
发表于 2012-8-1 12:30:39 | 显示全部楼层
有可能是程序飞了,你要先找出是不是程序飞了.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

7

主题

98

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
389
金钱
389
注册时间
2012-3-4
在线时间
69 小时
发表于 2012-8-1 19:56:29 | 显示全部楼层
用的什么单片机 stc的51有内部扩展的ram相当于传统的外部ram可以用xdata定义变量到里面。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165353
金钱
165353
注册时间
2010-12-1
在线时间
2108 小时
发表于 2012-8-1 20:05:09 | 显示全部楼层
回复【4楼】sun:
---------------------------------
哦,见识了.
没用过STC...
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

6

主题

68

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
271
金钱
271
注册时间
2011-12-17
在线时间
4 小时
发表于 2012-8-1 20:57:38 | 显示全部楼层
STC有扩展的SDRAM,与外扩一样使用。物理上内部,逻辑上外部。你首先还是算一下你的SDRAM有没有溢出,刚看你的这个文件就由150多个字节了!其它的未知。另外全局变量的初始化最好在程序初始化的时候赋值,预编译不知不知道能不能给外扩的SDRAM进行赋值(呵呵。。。这个你可以自己写歌程序测试一下,这可相当于外扩的SDRAM)。最后说一下你的程序不加看门狗吗?跑飞了也要重启啊!
与其相濡以沫,不如相望江湖!
回复 支持 反对

使用道具 举报

12

主题

54

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
248
金钱
248
注册时间
2011-7-24
在线时间
37 小时
 楼主| 发表于 2012-8-2 09:11:32 | 显示全部楼层
谢谢各位啊!我在阿莫那里都 没人回,
真的很谢谢各位。狗我是放出来了。用的XDATA有987个字节。
还有哦。刚下进是好的,开久了就不行,然后关了再开,好像也是乱的,
全局变量是不是要加个volatile哦,因为我在中断要赋值的变量都用是
volatile,别的没用
回复 支持 反对

使用道具 举报

12

主题

54

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
248
金钱
248
注册时间
2011-7-24
在线时间
37 小时
 楼主| 发表于 2012-8-2 09:12:16 | 显示全部楼层
回复【4楼】sun:
---------------------------------
stc的单片机
回复 支持 反对

使用道具 举报

12

主题

54

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
248
金钱
248
注册时间
2011-7-24
在线时间
37 小时
 楼主| 发表于 2012-8-2 09:27:12 | 显示全部楼层
回复【6楼】相识在天涯:
---------------------------------
单片机是STC11F48xe的,有1280个字节的外部RAM,只用到了987这样。
回复 支持 反对

使用道具 举报

6

主题

68

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
271
金钱
271
注册时间
2011-12-17
在线时间
4 小时
发表于 2012-8-2 12:28:19 | 显示全部楼层
回复【9楼】tanguicaicai:
---------------------------------
估计是你程序的问题了!
与其相濡以沫,不如相望江湖!
回复 支持 反对

使用道具 举报

12

主题

54

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
248
金钱
248
注册时间
2011-7-24
在线时间
37 小时
 楼主| 发表于 2012-8-2 15:07:36 | 显示全部楼层
回复【10楼】相识在天涯:
---------------------------------
谢谢啊,有一个变量有溢出的可能,还有一个数据增值,越界了。。还在测试,看看还出现什么问题
回复 支持 反对

使用道具 举报

1

主题

4

帖子

0

精华

新手入门

积分
28
金钱
28
注册时间
2013-11-5
在线时间
0 小时
发表于 2014-10-8 13:53:28 | 显示全部楼层
回复【6楼】相识在天涯:
问下,stm32外扩sdram怎么用
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-26 16:04

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表