上海妇科疾病研究所 上海女性不孕医院 上海引产医院 无痛引产痛不痛 上海人流医院 白癜风治疗医院 上海小儿脑瘫医院 上海女子医院
BF706和BF707的LED跑马灯程序设计-Blackfin-技术中心-国内专业ADI仿真器,Blackfin开发板,DSP芯片,软件算法,解决方案提供商-北京四维卓信电子有限公司
用户名: 密码:
主页 设为首页 加入收藏
      产品中心       技术中心       下载中心        社区新闻        诚聘英才       大学计划        关于我们       技术论坛
  您的当前位置:ADSP开源社区 >> 技术中心 >> Blackfin 今天是:
技术中心  
SigmaDSP
SHARC
A2B音频总线
Blackfin
ADI操作系统
ADSP-218X
TigerSAHRC
ADI DSP仿真器
产品导航
ADI DSP仿真器
SigmaDSP开发板
ADI A2B总线开发板
SHARC DSP开发板
销售网络
Blackfin  
BF706和BF707的LED跑马灯程序设计
[ 作者:OP ] [ 来源:ADSP开源社区 ] [ 发布时间:2017-2-28 ]
    BF706跟BF707是ADI最新的BF70X系列处理器的代表作,使用CCES开发软件进行开发,这跟我们头10几年所使用的Visual DSP++就完全不一样了。CCES是基于eclipse的开发环境,好坏抛开来不说,仅就例程来讲,ADI公司提供的这些例子全部都是嵌套+嵌套,调用加调用的方式,我个人觉得容易把人搞得晕头转向,而作为搞了10几年ADI DSP开发的OP来说,直截了当得寄存器配置,实现相应的驱动功能,这种直来直往的编程方式来得跟愉快一些。

    分享一个我在BF706板子上写的用按键控制LED灯的程序:


#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

联系我们 | 关于我们 | 免责声明 | 诚征英才 | 友情链接
Copyright 2019 All rights reserved  本网页版权属Open ADSP所有
北京海淀区中关村大街32号新中发市场3659 邮编100100
电话 18611096839 
粤ICP备14035876号-1