本帖最后由 daixi520 于 2013-8-20 21:24 编辑
这是TMS320VC5509的一个例程,关于点亮LED灯的,不是应该置零时灯才亮的吗?那为什么程序里面依次输出0001,0010,0100,1000时灯挨个亮呢?难道不应该是1110,1101,1011,0111时才轮流亮的吗?求指导
// 定义指示灯寄存器地址和寄存器类型
#define LBDS (*((unsigned int *)0x400001))
// 子程序接口
void Delay(unsigned int nDelay); // 延时子程序
main()
{
unsigned int uLED[4]={1,2,4,8}; // 控制字,逐位置1: 0001B 0010B 0100B 1000B
int i;
CLK_init(); // 初始化DSP运行时钟
SDRAM_init(); // 初始化EMIF接口
while ( 1 )
{
for ( i=0;i<4;i++ )
{
LBDS=uLED; // 正向顺序送控制字
Delay(256); // 延时
}
for ( i=3;i>=0;i-- )
{
LBDS=uLED; // 反向顺序送控制字
Delay(256); // 延时
}
}
}
void Delay(unsigned int nDelay)略 |