完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
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, 这些全局变量,别的文件也是要用到, 出一个问题,就是刚下到单片机里,运行可以,但开了一夜之后,发现, 全局变量都 不对了,也不知是不是,程序跑飞 |
|
相关推荐
11个回答
|
|
xdata是存放在外部sram芯片的数据吧?
|
|
|
|
有可能是程序飞了,你要先找出是不是程序飞了.
|
|
|
|
用的什么单片机 stc的51有内部扩展的ram相当于传统的外部ram可以用xdata定义变量到里面。
|
|
|
|
|
|
|
|
STC有扩展的SDRAM,与外扩一样使用。物理上内部,逻辑上外部。你首先还是算一下你的SDRAM有没有溢出,刚看你的这个文件就由150多个字节了!其它的未知。另外全局变量的初始化最好在程序初始化的时候赋值,预编译不知不知道能不能给外扩的SDRAM进行赋值(呵呵。。。这个你可以自己写歌程序测试一下,这可相当于外扩的SDRAM)。最后说一下你的程序不加看门狗吗?跑飞了也要重启啊!
|
|
|
|
谢谢各位啊!我在阿莫那里都 没人回,
真的很谢谢各位。狗我是放出来了。用的XDATA有987个字节。 还有哦。刚下进是好的,开久了就不行,然后关了再开,好像也是乱的, 全局变量是不是要加个volatile哦,因为我在中断要赋值的变量都用是 volatile,别的没用 |
|
|
|
stc的单片机
|
|
|
|
单片机是STC11F48xe的,有1280个字节的外部RAM,只用到了987这样。
|
|
|
|
估计是你程序的问题了!
|
|
|
|
谢谢啊,有一个变量有溢出的可能,还有一个数据增值,越界了。。还在测试,看看还出现什么问题
|
|
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
3310 浏览 9 评论
2991 浏览 16 评论
3492 浏览 1 评论
9057 浏览 16 评论
4086 浏览 18 评论
1176浏览 3评论
604浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
597浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2334浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1895浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 18:10 , Processed in 1.527315 second(s), Total 101, Slave 81 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号