接口讲完了,下面写点应用程序,GPIO最典型的应用,LED跑马灯。

硬件准备

ADSP-EDU-BF533:BF533开发板
AD-HP530ICE:ADI DSP仿真器

软件准备

Visual DSP++软件

硬件链接

硬件设计原理图

硬件实现原理

ADSP-EDU-BF533开发板上共设计了 8 个 LED,这些 LED 直接连接于 CPLD,通过灌电流方式接入,需要点亮时,将该位数据写 0,通过配置 CPLD 映射的 DEVICE_OE 寄存器和 LED_DAT 寄存器,可以对 LED 灯进行控制。

其寄存器映射如下:

DEVICE_OE 寄存器(读/写):
DEVICE_OE 寄存器地址:0x20320000
DEVICE_OE 寄存器设置硬件设备上一些控制管脚的电平状态。
DEVICE_OE 寄存器位功能:

LED_OE:LED 指示灯使能位
1:关闭 LED 灯模块
0:使能 LED 灯模块

LED_DAT 寄存器(写唯一):
LED_DAT 寄存器地址:0x20340000
LED_DAT 寄存器是 LED 模块的数据寄存器,该寄存器的 8Bit 分别对应板卡上 8 个 LED 指示灯,通过对寄存器 Bit 位设置点亮其中一个 LED 指示灯。

LED_DAT:
1:熄灭 LED 灯
0:点亮 LED 灯

硬件连接示意图

代码实现功能

代码实现了通过逐次配置 LED_DAT 寄存器,实现了 LED 跑马灯功能。

调试步骤

1. 将仿真器(ICE)与 ADSP-EDU-BF53x 开发板和计算机连接好。
2. 先给 ADSP-EDU-BF53x 开发板上电,再为仿真器(ICE)上电。
3. 运行 VisualDSP++ 5.0 软件,选择合适的 BF533 的 session 将仿真器与软件连接。
4. 加载 VisualDSP++ 5.0 工程文件 BF53x_LED.dpj,编译并全速运行。

调试结果

板卡上的 LED 逐个点亮,实现跑马灯功能。

程序源码

CPLD.c

#ifndef CPLD_C
#define CPLD_C

#include “cpld.h”

void IIC_Enable(void)
{
*pDEVICE_OE &= ~PF0_SET ;
}

void Interrupt_Enable(void)
{
*pDEVICE_OE |= PF0_SET; //关闭IIC总线,将PF0设置为中断接口
}

void CMOS_Enable(void)
{
*pDEVICE_OE &= ~PPI_SET0;
*pDEVICE_OE &= ~PPI_SET1;
}

void LCD_Enable(void)
{
*pDEVICE_OE |= PPI_SET0;
*pDEVICE_OE &= ~PPI_SET1;
}

void PCLK_OUT_Enable(void)
{
*pDEVICE_OE |= PPI_SET0;
*pDEVICE_OE &= ~PPI_SET1;
}

void ExtPCLK_IN_Enable(void)
{
*pDEVICE_OE |= PPI_SET0;
*pDEVICE_OE |= PPI_SET1;
}

void LCDBK_Enable(void)
{
*pDEVICE_OE &=(~LCDBK_OE);
}

void LCDBK_Disable(void)
{
*pDEVICE_OE |= LCDBK_OE;
}

void LED_Enable(void)
{
*pDEVICE_OE &= ~LED_OE; //使能LED
}

void SD_Enable(void)
{
*pDEVICE_OE |= SPI_SEL0;
*pDEVICE_OE &= ~SPI_SEL1;
}

void Touch_Enable(void)
{
*pDEVICE_OE &= ~SPI_SEL0;
*pDEVICE_OE &= ~SPI_SEL1;
}

void ExtSPI0_Enable(void)
{
*pDEVICE_OE &= ~SPI_SEL0;
*pDEVICE_OE |= SPI_SEL1;
}

void ExtSPI1_Enable(void)
{
*pDEVICE_OE |= SPI_SEL0;
*pDEVICE_OE |= SPI_SEL1;
}

void ExtIO_Interrupt_Enable(void)
{
*pDEVICE_OE &= ~EXT_IO_INTOE;
}

void ExtIO_Interrupt_Disable(void)
{
*pDEVICE_OE |= EXT_IO_INTOE;
}

#endif

LED.C

#include <cdefBF533.h>
#include “cpld.h”

delay(int count)
{
int i;
for(i=0;i<count;i++);
}

void Set_PLL(unsigned int pmsel,unsigned int pssel)
{
unsigned int new_PLL_CTL;
*pPLL_DIV = pssel;
asm(“ssync;”);
new_PLL_CTL = (pmsel & 0x3f) << 9;
*pSIC_IWR |= 0xffffffff;
if (new_PLL_CTL != *pPLL_CTL)
{
*pPLL_CTL = new_PLL_CTL;
asm(“ssync;”);
asm(“idle;”);
}
}

void Init_EBIU(void)
{
*pEBIU_AMBCTL0 = 0x7bb07bb0;
*pEBIU_AMBCTL1 = 0xffc07bb0;
*pEBIU_AMGCTL = 0x000f;
}

void main(void)
{
unsigned int i;

Set_PLL(16,4);
Init_EBIU();
LED_Enable();while(1){*pLED_DAT =0x00; //点亮所有LED灯for(i=0;i<8;i++){   *pLED_DAT = ~(0x1<<i);delay(3000000);}       }

}

ADI Blackfin DSP处理器-BF533的开发详解14:LED跑马灯(含源代码)相关推荐

  1. ADI Blackfin DSP处理器-BF533的开发详解3:GPIO(含源代码)

    我们从最基础的GPIO开始,先讲外设,这玩意不管是单片机,还是ARM,又或是FPGA,甚至SOC的芯片,都有GPIO,有共性,就好理解,让我们看看在ADI的DSP里头,GPIO是怎么一回事吧. 硬件准 ...

  2. ADI Blackfin DSP处理器-BF533的开发详解1:软件和硬件的准备

    BF533是ADI Blackfin系列DSP处理器里的最经典型号,这个DSP我用了20年,单就这一颗DSP来讲,我相信国内应该没有比我更资深的了,下面就来说一说这颗DSP. 这颗IC是Blackfi ...

  3. ADI Blackfin DSP处理器-BF533的开发详解58:DSP控制ADXL345三轴加速度传感器的应用(含源码)

    硬件准备 ADSP-EDU-BF533:BF533开发板 AD-HP530ICE:ADI DSP仿真器 软件准备 Visual DSP++软件 硬件链接 MEMS三轴加速度传感器 我做了一个三轴加速度 ...

  4. ADI Blackfin DSP处理器-BF533的开发详解60:DSP控制ADXL345三轴加速度传感器-电子水平仪(含源码)

    硬件准备 ADSP-EDU-BF533:BF533开发板 AD-HP530ICE:ADI DSP仿真器 软件准备 Visual DSP++软件 硬件链接 MEMS三轴加速度传感器 我做了一个三轴加速度 ...

  5. ADI Blackfin DSP处理器-BF533的开发详解21:RTC实时时钟的原理及应用(含源码)

    硬件准备 ADSP-EDU-BF533:BF533开发板 AD-HP530ICE:ADI DSP仿真器 软件准备 Visual DSP++软件 硬件链接 硬件设计原理图 功能介绍 ADSP-BF53x ...

  6. ADI Blackfin DSP处理器-BF533的开发详解55:CVBS输入-DSP和ADV7180的应用详解(含源码)

    硬件准备 ADSP-EDU-BF533:BF533开发板 AD-HP530ICE:ADI DSP仿真器 软件准备 Visual DSP++软件 硬件链接 CVBS IN 视频输入 硬件实现原理 CVB ...

  7. ADI Blackfin DSP处理器-BF533的开发详解25:USB接口设计(含源代码)

    硬件准备 ADSP-EDU-BF533:BF533开发板 AD-HP530ICE:ADI DSP仿真器 软件准备 Visual DSP++软件 硬件链接 硬件设计原理图 功能介绍 跟网口一样,USB这 ...

  8. ADI Blackfin DSP处理器-BF533的开发详解80:uClinux在BF上的应用详解

    硬件准备 ADSP-EDU-BF533:BF533开发板 AD-HP530ICE:ADI DSP仿真器 软件准备 Visual DSP++软件 硬件链接 Blackfin可以跑操作系统,因为他作为一个 ...

  9. ADI Blackfin DSP处理器-BF533的开发详解15:RS232串口的实现(含源代码)

    硬件准备 ADSP-EDU-BF533:BF533开发板 AD-HP530ICE:ADI DSP仿真器 软件准备 Visual DSP++软件 硬件链接 硬件设计原理图 实现原理 ADSP-EDU-B ...

最新文章

  1. Ubuntu16.04系统下汉字显示为方框解决办法(图文详解)
  2. 嵌入式设备web服务器比较
  3. 人生第一个过 5K Star 的 项目 x-spreadsheet 感谢各位大佬的支持
  4. 拨号云服务器怎么自动配置网关_教你在阿里云创建增强型云网关
  5. C++Primer学习笔记:第2章 变量和基本类型
  6. pssh Oracle,服务器批量执行工具 PSSH
  7. Sentinel一键下载安装运行_分布式系统集群限流_线程数隔离_削峰填谷_流量控制_速率控制_服务熔断_服务降级---微服务升级_SpringCloud Alibaba工作笔记0030
  8. Java中的字符串程序
  9. MySQL基础_模糊查询—between and in is null <=>(安全等于)等关建字
  10. 天朝四大不正经社交软件 第一名“亮了”
  11. Django之admin
  12. rocketmq云服务搭建踩坑
  13. 如何在IDEA上创建一个JSP项目【亲测有效】
  14. 数据质量管理方法有哪些
  15. 任务管理器已被管理员停用 解决方法
  16. 新技能get!用 Python 高效背单词!
  17. 使用ab对nginx进行压力测试
  18. 无root 修改/usr/lib/x86_64-linux-gnu/libstdc 解决ImportError: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: v
  19. 你知道吗,自信是你成功的第一秘诀
  20. iPad Pro 2022版最新渲染图曝光,刘海屏来了!

热门文章

  1. unity2018关联不到vs_vs2017里装了一个unity,现在又装了一个unity3d2018,有何区别?...
  2. 运营商大数据到底有什么意义?
  3. vue 梯形百分比占比图
  4. Java读取文本txt
  5. QGIS 3D:三维DEM数据加载渲染漫游
  6. [附源码]计算机毕业设计JAVA校园二手交易平台的设计
  7. <Java开发环境配置>6-SQLyog安装教程
  8. linux下安装transmission下载种子
  9. php 开发桌面应用,winbinder开发php桌面应用程序 | 学步园
  10. 市面主流软件静默安装参数