3103|2

7172

帖子

195

TA的资源

五彩晶圆(高级)

楼主
 

【玩转C2000 Launchpad】菜鸟LESSON3-看懂C程序 [复制链接]

菜鸟学习C2000 LESSON3 看懂C程序
题记:
只是看懂C程序,不包括对GPIO寄存器的理解,对GPIO寄存器的深入还没开始了解,只是对程序里的一些位域和结构体的初步学习而已。
1.     位域
先来介绍一下,关于结构,他们实现位域(bit field)的能力。位段的声明和结构类似,但他的成员是一个或多个位的字段。这些不同长度的字段实际上存储于一个或多个整型变量中。
语法格式:
Struct 位域结构名
{
       类型说明符 位域名1:位域长度
       类型说明符 位域名2:位域长度
       类型说明符 位域名3:位域长度
……
类型说明符 位域名n:位域长度
}
其中,类型说明符就是基本的数据类型。
      位域名可以自行取,能够反映其位域的功能就好
         位域长度是指这个位域是由多少个位组成的,
        和结构体一样,最后一个“;”不可缺少

C和指针》
位域提供的唯一优点就是简化了源代码。
这个优点必须与位域的移植性较弱这个缺点进行权衡。
再看一下DSP2802x_Gpio.h头文件里的位域定义:

1.     共同体
使用位定义的方法定义寄存器可以方便地实现对寄存器功能位进行操作,但有时候如果需要对整个寄存器进行操作。
例子:
   再看一下DSP2802x_Gpio.h头文件里的共同体定义:

先定义了一个共同体GPADAT_REG
Uint32  all;   //可实现对寄存器整体操作
Struct  GPADAT_BITS bit; //可实现位操作
以上两个就是最基本的操作,下面来看看,LED闪烁 是怎么来使用位域和共同体的。
头文件里

先定义了一个共同体GPIO_CTRL_REGS
Union GPADAT_REG  GPADIR; //声明了一个GPA1_REG变量 GPADIR
打开InitGpio()函数

现在这个就很清楚了,操作了GPIO0GPIO1的位,具体输入输出现在不做讨论,现在不看具体寄存器的意义,只是看懂基本的C程序而已。

最新回复

好资料  详情 回复 发表于 2012-12-28 21:50
 
点赞 关注

回复
举报

1972

帖子

1

TA的资源

五彩晶圆(初级)

沙发
 
好资料

点评

共同学习  详情 回复 发表于 2012-12-31 11:46
 
 

回复

7172

帖子

195

TA的资源

五彩晶圆(高级)

板凳
 

回复 沙发 bobde163 的帖子

共同学习
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表