SoC 外设-自定义 ip 实验 PWM实现呼吸灯

DS-5 中eclipse更新第二种代码为:

/** main.c**  Created on: 2021年12月9日*      Author: awcloud*///gcc标准头文件
#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>
#include <sys/mman.h>//HPS厂家提供的底层定义头文件
#define soc_cv_av //开发平台Cyclone V 系列#include "hwlib.h"
#include "socal/socal.h"
#include "socal/hps.h"//与用户具体的HPS 应用系统相关的硬件描述头文件
#include "hps_0.h"#define HW_REGS_BASE (ALT_STM_OFST)     //HPS外设地址段基地址
#define HW_REGS_SPAN (0x04000000)       //HPS外设地址段地址空间 64MB大小
#define HW_REGS_MASK (HW_REGS_SPAN - 1) //HPS外设地址段地址掩码static volatile unsigned long *pwm_virtual_base=NULL;
int fpga_init(void *virtual_base)
{int fd;//1.打开mmuif((fd = open("/dev/mem",(O_RDWR | O_SYNC))) == -1){printf("ERROR:open failed \"/dev/mem\"...")   ;return 1;}//将外设空间映射到用户空间  mmap()virtual_base = mmap(NULL,HW_REGS_SPAN, ( PROT_READ | PROT_WRITE ), MAP_SHARED,fd,HW_REGS_BASE);//外设地址 = 虚拟地址 + 外设设的偏移地址(mm_bridge + 桥上的偏移地址)pwm_virtual_base = virtual_base +((unsigned long)(ALT_LWFPGASLVS_OFST + MY_PWM_0_BASE) & (unsigned long)(HW_REGS_MASK));return fd;
}int main()
{int fd,i;void *virtual_base=NULL;fd = fpga_init(virtual_base);*(pwm_virtual_base+2) =0x01;   //使能信号*(pwm_virtual_base+0) = 0xffff;//输入预重装值int tmp=-65536;//操作外设while(1){tmp = tmp + 10;if(tmp>65536){tmp = -65536;}else if(tmp > 0){*(pwm_virtual_base+1) = tmp  ; //亮到灭的过程}else{*(pwm_virtual_base+1) = -tmp;  //灭到亮的过程}usleep(200);}//取消地址映射if(munmap(virtual_base,HW_REGS_SPAN) == -1){printf("ERROR:munmap() failed...\n");close(fd);return 1;}//关闭 mmuclose(fd);return 0;
}

实验流程链接:

https://pan.baidu.com/s/1ukN9QYPqNp10BJlALUwljw
提取码:3333

SoC 外设-自定义 ip 实验 PWM实现呼吸灯相关推荐

  1. 第六期 自定义IP添加-PWM 基于ARTY A7的MicroBlaze系统搭建与应用

    第六期 自定义IP添加-PWM 基于ARTY A7的MicroBlaze系统搭建与应用 说明 演示:在软核中添加自定义的ip bd文件的编辑 vitis文件 说明 直接在cpu中添加p产生pwm的IP ...

  2. 【STM32】HAL库 STM32CubeMX教程七---PWM输出(呼吸灯)

    前言: 本系列教程将 对应外设原理,HAL库与STM32CubeMX结合在一起讲解,使您可以更快速的学会各个模块的使用 所用工具: 1.芯片: STM32F407ZET6/ STM32F103ZET6 ...

  3. 嵌入式系统开发13——STM32输出PWM实现呼吸灯

    本文主要介绍在STM32F103C8T6上,利用定时器输出PWM波形,进而驱动LED实现呼吸灯. 目录 一.任务要求 二.PWM简介 1.什么是PWM 2.相关概念 3.PWM的产生 4.PWM的通道 ...

  4. 【mcuclub】PWM(呼吸灯、调节灯亮度)

    一.简介 PWM,脉冲宽度调制,是英文"Pulse Width Modulation"的缩写,简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应 ...

  5. 【STM32F4教程】第六节:通用定时器之PWM实现呼吸灯

    Conceit is the quicksand of success. 自负是成功的流沙. PWM实现呼吸灯 PWM概述 相关概念 PWM设置流程 呼吸灯实现例程 pwm.c main.c PWM概 ...

  6. STM32学习日记3---定时器TIM3重映射PWM波呼吸灯实验

    文章目录 1. 代码 关于PWM波的输出,我们需要用到定时器的4个通道(通用定时器和高级定时器有,基本定时器没有这4个通道)里面的PWM生成.然后查看数据手册,了解定时器的重映射引脚情况.所以配置时, ...

  7. zynq 7000 自定义IP 实验

    本文通过一个简单例子介绍zynq 7000中自定义ip 的设计过程. 此例子就是控制4个led . 在ps-pl 试验中,一般用的就是Vivado 自带的GPIO ip. 所以如果你熟悉了PS端和PL ...

  8. 【RED-V】驱动 PWM 实现呼吸灯

    打开 FreedomStudio 软件,依次在菜单栏中选择[File]->[New]->[Freedom E SDK Software Project]新建工程. 在 Select Tar ...

  9. 【CC2530授课笔记】⑧ PWM实现呼吸灯,RGB三色灯,蜂鸣器播放音乐

    摘要 这篇文章通过定时器产生PWM波,控制LED实现呼吸灯的效果,并且通过三路PWM分别控制RGB三色灯,实现了颜色渐变.最后通过调制PWM频率,使用蜂鸣器实现了音乐播放. PWM简介 Pulse W ...

最新文章

  1. 找java培训机构如何挑选
  2. 块级元素 Vs 内联元素
  3. jwt token 附加用户信息_JWT的正确使用方法,API开发为什么使用JWT
  4. string 是值类型,还是引用类型(.net)
  5. validatebox自定义验证规则以及使用
  6. 【NLP论文推荐】 掌握实体关系抽取必读的文章
  7. 几款脑力训练软件分析与推荐
  8. 一篇教你随意下载网易云音乐歌曲的博客!
  9. PPT模板 | 红色学术风论文答辩PPT模板
  10. j2sdk jdk jre jvm的联系与区别
  11. 豆瓣fm android,豆瓣FM for Android
  12. NLP文本相似度(TF-IDF)
  13. 什么是意志力?如何提高意志力?
  14. 系统架构师(八)系统分析与设计方法
  15. 基于Pytorch的MNIST手写数字识别实现(含代码+讲解)
  16. 基于深度学习的图标型验证码识别系统(包含完整代码、界面)
  17. PreScan快速入门到精通第三十四讲基于PreScan进行超声波雷达传感器仿真
  18. 科大讯飞在线语音合成(2018最新版本)
  19. 企业实施单元测试现状调查(浙江大学管理学院 李云)
  20. hualinux 编程概念 3.16:DevOps 详解

热门文章

  1. AT89C51定时器
  2. AAFD-DU多回路故障电弧探测器在某医院的应用
  3. 2019年回顾——2020年计划
  4. selectionSort
  5. 模拟器qemu测试华为 LiteOS
  6. vue 列表、查询、折线图、导出excel
  7. Mysql索引,SQL优化
  8. 【第二篇】商城系统-工欲善其事必先利其器-环境准备
  9. SQL Server:“数据收缩”详解
  10. html如何调用vlc,mp4 播放器html代码 VLC_SDK的调用