#include
#include
#include "cgu_init.h"
#define LED1 0x0001
#define LED2 0x0002
#define LED3 0x0004
#define LED4 0x0008
int g_LEDs[] = {LED2, LED1, LED4, LED3};
void delay(int t)
{
int i,j;
for(i=0;i<400;i++)
for(j=0;j
}
void Init_LEDs(void)
{
*pREG_PORTG_FER_CLR =BITM_PORT_DATA_PX0 | BITM_PORT_DATA_PX1 | BITM_PORT_DATA_PX2 | BITM_PORT_DATA_PX3;
*pREG_PORTG_DIR_SET =BITM_PORT_DATA_PX0 | BITM_PORT_DATA_PX1 | BITM_PORT_DATA_PX2 | BITM_PORT_DATA_PX3;
}
void ClearSet_LED(const int led, const int bState)
{
if( led == LED1 )
{
if( 0 == bState )
*pREG_PORTG_DATA_CLR = BITM_PORT_DATA_PX0;
else
*pREG_PORTG_DATA_SET = BITM_PORT_DATA_PX0;
}
else if( led == LED2 )
{
if( 0 == bState )
*pREG_PORTG_DATA_CLR = BITM_PORT_DATA_PX1;
else if( 1 == bState )
*pREG_PORTG_DATA_SET = BITM_PORT_DATA_PX1;
}
else if( led == LED3 )
{
if( 0 == bState )
*pREG_PORTG_DATA_CLR = BITM_PORT_DATA_PX2;
else if( 1 == bState )
*pREG_PORTG_DATA_SET = BITM_PORT_DATA_PX2;
}
else
{
if( 0 == bState )
*pREG_PORTG_DATA_CLR = BITM_PORT_DATA_PX3;
else if( 1 == bState )
*pREG_PORTG_DATA_SET = BITM_PORT_DATA_PX3;
}
}
main(void)
{
int i;
CGU_Init(20, 1, 2);
Init_LEDs();
while(1)
{
for(i=0;i<4;i++)
{
delay(10000);
ClearSet_LED(g_LEDs[i], 1);
}
for(i=0;i<4;i++)
{
delay(10000);
ClearSet_LED(g_LEDs[i], 0);
}
}
}
硬件实现原理
利用 ADSP-BF706 处理器上的 IO 接口,以及外部中断,通过按键控制 LED 灯的点亮和熄灭,跑马灯功能,学习 ADSP-BF706 处理器 IO 接口输出及中断的使用方法。
测试步骤
1. 将仿真器(AD-HP530ICE)与 ADSP-BF706-CORE 板卡和计算机连接好。
2. 先给 ADSP-BF706-CORE 板卡上电,再为仿真器(ICE)上电。
3. 运行 CCES 软件,选择合适的 BF706 的 session 将仿真器与软件连接。
4. 加载工程文件,编译并全速运行。
测试结果
运行代码后,按下按键,板上的四个 LED 灯会显示不同的状态。
BF706核心板链接:https://item.taobao.com/item.htm?spm=a1z10.5-c.w4002-5192690539.12.spbVfT&id=535030877519
BF706仿真器链接:https://item.taobao.com/item.htm?spm=a1z10.5-c.w4002-5192690539.11.do8oc2&id=38007242820
任何ADI DSP的问题,均可联系OP的QQ:5516164,微信:OpenADSP
OP的网站:www.openadsp.com
OP的论坛:www.openadsp.com/bbs
OP的官方淘宝店:https://shop108086345.taobao.com/
ADI DSP中文资料全集(含视频教程和源码)的淘宝链接:https://item.taobao.com/item.htm?spm=a1z10.5-c.w4002-5192690539.12.Ck3v8f&id=39935721554