DSP

TS201学习之FLAG

2019-07-13 15:46发布

              本篇介绍TS201的IO——FLAG的使用。在板子上,两块DSP分别将FLAG0连接了一个LED,在TS201上面没有像串口这样的调试端口,因此在以后的测试过程中,这个LED就充当了完成指示器了,呵呵~~         FLAG端口就是TS201的通用IO,每个DSP上有4个这样的FLAG,从FLAG0~FLAG3,使用方法都是一样的。         参考TS201硬件手册,对于FLAG的控制有如下描述:              这样编程就很明了了,通过改变寄存器的相应位,完成FLAG的控制,下面给出具体代码:   /*********************************************************** 函 数 名:Init_LEDs() 功 能:初始化FLAG0作为LED的输出端口 说 明: 入口参数: 返 回 值:无 设 计: 日 期:2012-04-04 修 改: 日 期: ************************************************************/ void Init_LEDs(void) { __builtin_sysreg_write(__FLAGREGST, FLAGREG_FLAG0_EN); // enable FLAG0 as outputs }
  /*********************************************************** 函 数 名:ClearSet_LED() 功 能:对LED管脚进行置1、清零、取反操作 说 明: 入口参数:bState =0 : 置位 =1 : 清零 其他 : 取反 返 回 值:无 设 计: 日 期:2012-04-05 修 改: 日 期: ************************************************************/ void ClearSet_LED(const int bState) { volatile int temp; if( 0 == bState ) //清零 __builtin_sysreg_write(__FLAGREGCL, ~FLAGREG_FLAG0_OUT); else if( 1 == bState ) //置位 __builtin_sysreg_write(__FLAGREGST, FLAGREG_FLAG0_OUT); else //取反 { temp = __builtin_sysreg_read(__FLAGREG); temp = temp ^ FLAGREG_FLAG0_OUT; __builtin_sysreg_write(__FLAGREG, temp); } }
              首先初始化LED的端口,然后通过适当的延时,完成LED的闪烁。             EnjoyYourself!