这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 企业专区 » 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 跳转至

回复

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