练习2:FALG 功能的简单使用

来源:互联网 发布:淘宝发布q币教程 编辑:程序博客网 时间:2024/04/29 21:58

一、   寄存器的配置

在实现FLAG的功能时首先应对相应的寄存器进行配置,FLAG功能涉及到控制寄存器FALGREG,置位寄存器FLAGREGST和复位寄存器FLAGRECL

1、  FLAGREG寄存器


FALG功能只涉及到寄存器的低8位,低4位是输入输出使能,高4位控制输出状态

2、置位复位寄存器


对FLAGERG寄存器的只能对一个位进行操作,当对多个位操作时要用FLAGREGST与FLAGREGCL寄存器

二、相关库函数


库函数__builtin_sysreg_write(int reg ,unsigned int value)第1个参数是寄存器的名称,在c语言中寄存器的名称都要以两个下划线开头,这样区别变量名与寄存器的名称。

三、源程序

程序功能是实现FALG2与FLAG3的输出电平不断高低变化。在ADSP-TS201上的现象是LED4和LED6不断闪烁(DSPA 工作)。

/*目的:使LED4与LED6闪烁*/#include <sysreg.h>#include <defts201.h>//#define RWRITE(reg,value) __builtin_sysreg_write(reg,value)//#define RREAD(reg) __builtin_sysreg_read(reg)int main(void){int i;__builtin_sysreg_write(__FLAGREGST,FLAGREG_FLAG2_EN | FLAGREG_FLAG3_EN);while(1){/*将flag2配置为输出*/for(i=0;i<=0x1000000;i++);__builtin_sysreg_write(__FLAGREGST,FLAGREG_FLAG2_OUT | FLAGREG_FLAG3_OUT);for(i=0;i<=0x1000000;i++);__builtin_sysreg_write(__FLAGREGCL,~(FLAGREG_FLAG2_OUT | FLAGREG_FLAG3_OUT));}return 0;}









0 0
原创粉丝点击