完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
定义一个较大的数组,储存在xdata中,要对该数组进行赋值,一直赋不上去,用指针也赋不上去。
究竟该怎样对xdata中的数据进行调用及赋值??纠结致死。。恳请各位帮忙。下面是主要部分的代码: #include #include #include #include #define uint unsigned int #define uchar unsigned char #include uint xdata str[100]; void main() { int a,b,c,j=0; uint xdata *pstr=str; float num=0; unsigned int adc_data; char temp[16]; LCD_Init(); LCD_Write_String(0,0,"hello world!"); while(j<=9) { start_adc0804(); DelayMs(100); adc_data=read_ad(); num=(float)100*adc_data*10/255; a=(int)num/100; b=(int)num%100/10; c=(int)num%10; str[0]=a*100+b*10+c; pstr=str; sprintf(temp,"Var:%d",*pstr);//若改为sprintf(temp,"Var:%d",str[0]);且同时把上面一行的pstr=str注释掉就可以显示str[0]的值。 //想通过指针或者int i ;利用str[i]=....这样给str数组赋一系列值,可是因为其储存在xdata中,不知道怎搞的一直赋不上去。 LCD_Write_String(0,1,temp); j=j+1; } while(1) { sprintf(temp,"Var:%d",str[9]); LCD_Write_String(0,1,temp); } } 谢谢各位了!! |
|
相关推荐
2个回答
|
|
|
|
|
|
谢谢,用的是proteus仿真的,芯片是stc89c52,支持xdata的,直接给str[0]赋值是可以的,但i=0,str=1;或者用指针给该数组赋值就出错,搞不懂这是为什么。请问如果不用xdata的话,怎样定义一个int str[100];这样的数组呢?之前想的是数组太大,因此用的是xdata,可是赋值总出错,好纠结。非常感谢您的回答!谢谢! |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
《DNESP32S3使用指南-IDF版_V1.6》第三十章 DHT11数字温湿度传感器
122 浏览 0 评论
565 浏览 0 评论
【敏矽微ME32G070开发板免费体验】之原厂2812测试例程解析
772 浏览 0 评论
948 浏览 2 评论
《DNESP32S3使用指南-IDF版_V1.6》第二十六章 INFRARED_RECEPTION实验
658 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
12041 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-26 20:13 , Processed in 0.444110 second(s), Total 43, Slave 37 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号