打印

单片机IDATA区如何用

[复制链接]
5183|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
shxhdly|  楼主 | 2011-9-25 16:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
shxhdly|  楼主 | 2011-9-25 16:57 | 只看该作者
用的单片机C51

使用特权

评论回复
板凳
chunyang| | 2011-9-25 23:56 | 只看该作者
直接将变量定义为idata性质即可。

使用特权

评论回复
地板
PaperKite| | 2011-9-26 08:19 | 只看该作者
unsigned char idata ubTst;
没有xdata区吗?把变量定义到xdata区:unsigned char xdata ubTst;
内部ram尽量让它做堆栈区

使用特权

评论回复
5
shxhdly|  楼主 | 2011-9-26 08:58 | 只看该作者
4# PaperKite
没有外部的xdata区

使用特权

评论回复
6
shxhdly|  楼主 | 2011-9-26 09:00 | 只看该作者
3# chunyang
怎么编程序  我这么写不行呢
float  *pi;
float   i;
void main()
{
pi=&i;
.......
}
然后我在程序里直接用*pi可以吗

使用特权

评论回复
7
hjs1618| | 2011-9-26 10:40 | 只看该作者
PI是指针变量,*pi是变量的地址

使用特权

评论回复
8
shxhdly|  楼主 | 2011-9-26 16:35 | 只看该作者
各位  有没有好一点的程序例子

使用特权

评论回复
9
jack.king| | 2011-9-26 17:42 | 只看该作者
直接定义数据的时候
uchar idata a;
uchar idata pointer[21];

使用特权

评论回复
10
流行音乐| | 2011-9-26 20:57 | 只看该作者
怎么编程序  我这么写不行呢
float  *pi;
float   i;
void main()
{
pi=&i;
.......
}
然后我在程序里直接用*pi可以吗
shxhdly 发表于 2011-9-26 09:00

idata float idata * pi;
idata float i;
void main()
{
  i=0;
  pi=&i;
  (*pi)++;
}
我现在已经从 51 转到 STM8 和 STM32 了,再也不用这么用了,呵呵。

使用特权

评论回复
11
shxhdly|  楼主 | 2011-9-27 08:23 | 只看该作者
10# 流行音乐
非常感谢  只是我老师习惯用51

使用特权

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

本版积分规则

0

主题

31

帖子

1

粉丝