这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界» 论坛首页» 企业专区» Renesas» 代码生成器生成代码里边的一点小问题

共14条 1/2 1 2 跳转至

代码生成器生成代码里边的一点小问题

高工
2012-08-14 21:37:14 打赏
我使用了P0。
P0的定义是这样的:
__saddr __no_init volatile union { unsigned char P0; __BITS8 P0_bit; } @ 0xFFF00;
注意P0后边有一个这样的结构:__BITS8 P0_bit;
定义如下:
typedef struct
{
unsigned char no0:1;
unsigned char no1:1;
unsigned char no2:1;
unsigned char no3:1;
unsigned char no4:1;
unsigned char no5:1;
unsigned char no6:1;
unsigned char no7:1;
} __BITS8;

刚才实验了一下,这样用用:P0_bit.no0 =0;P0_bit.no0 =1;
也是可以反转P00的。
最后问题回到最上面那句代码了,这个定义是什么意思:
__saddr __no_init volatile union { unsigned char P0; __BITS8 P0_bit; } @ 0xFFF00;
还有最后一个@ 更不知道什么意思了



关键词: 代码 成器 生成 里边 一点 问题 unsigne

高工
2012-08-14 21:44:33 打赏
2楼
勤学好问的好孩子

院士
2012-08-14 21:50:44 打赏
3楼
@ 为存储地址的位置

高工
2012-08-14 22:00:39 打赏
4楼
只能看出意思,
先定义了位段类型 _BITS8
然后定义 _BITS8 型变量 P0_bit
然后定义 P0_bit为valatile型,地址在0xFFF00

如果想要把些语法全搞懂,方便自己编类似的代码
估计得看编译器的帮助文件了
这些都是自定义的语法

高工
2012-08-14 22:02:15 打赏
5楼
个人感觉没必要对这类语法深究,能看明白意思,会用提供的接口写程序就行了

院士
2012-08-14 22:10:54 打赏
6楼
我曾经试图去看过,查了一些资料,觉得没有必要,人也老了,看不进去了。果断放弃了~~

但是还是希望现在依然在上学的童鞋们深入研究……

工程师
2012-08-14 22:59:05 打赏
7楼
您多老了

院士
2012-08-14 23:11:22 打赏
8楼
不告诉你……

高工
2012-08-15 00:28:00 打赏
9楼
三十几了?

院士
2012-08-15 08:52:45 打赏
10楼
我身体老了,但思想还年轻

共14条 1/2 1 2 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册]