前言
DSP芯片的寄存器能够实现对系统和外设功能的配置和控制,所以对寄存器的操作尤为重要,那么如何实现对寄存器的操作呢?下面来介绍位定义和结构体的方式来实现对DSP内部寄存器的访问和控制。
一、什么是位定义?
C语言中有一种“位域”或者叫“位段”的结构体,所谓的“位域”就是将一个字节中的二进制位划分为好几个不同的区域,并说明每个区域的位数,每个区域都有一个区域名。
位域语法说明如下:
struct 位域结构名
{
类型说明符 位域名1:位域长度;
类型说明符 位域名2:位域长度;
类型说明符 位域名3:位域长度;
类型说明符 位域名4:位域长度;
类型说明符 位域名5:位域长度;
...
类型说明符 位域名n:位域长度;
};
数据类型可以是int、char、Uint16,位域名可以任意取,但不能重复命名,位域长度表示该位由几位组成。
关于位定义的注意事项:
①位域的定义必须按从右往左的顺序,也就是说得从最低位开始定义。
②一个位域必须存储在同一个字节中,不能跨两个字节。如果一个字节所剩空间不够放另一域时,应该从下一个单元起存放该域。
③位域的长度不能超过8位。
④位域可以是无名域,它只起填充或调整位置的作用,无名域不能调用。
用位定义方式定义SCICCR寄存器&#x