FPGA-PS端编程1:
目标
在小梅哥的zynq 7015上,完成以下目标:
读取 S1 按键的电平,
当 S1 按键为按下状态时,驱动 PS LED 以 1S 的频率闪烁(注意理解 1S 的频率闪烁和 1S的时间翻转两种描述之间的差别),
当 S1 释放后,停止闪烁,
确保 S1释放后 PS_LED 处于熄灭状态。↔
通俗点讲,就是 S1 被按下后 PS_LED 就以 1s 的频率闪烁,释放后就熄灭且不再闪烁,
1S 的频率闪烁和 1S的时间翻转两种描述之间的差别

准备
S1按键的相关信息
ps端的s1按键,绑定在ps端的MIO47引脚。

PS端LED的相关信息
PS端的led绑定在MIO7上。

代码和注释
///*
// * main.c
// *
// * Created on: 2024年12月10日
// * Author: Administrator
// */
//
//#include "xparameters.h"
//#include "xil_io.h"
//#include "xgpiops.h"
//#include "sleep.h"
//
//int main(void)
//{
// u32 reg_val = 0;
// u32 Data = 0;
//
//设定IO方向, bit7的方向为输出
// // 方向寄存器(Direction Mode Register),用于设置GPIO引脚是作为输入还是输出
// reg_val = Xil_In32(XPAR_PS7_GPIO_0_BASEADDR + XGPIOPS_DIRM_OFFSET);
// // 读出来的数据,给最高位置1,有点我们always@*模块里面做修改,然后再输出的感觉
// Data = reg_val | (1<<7);
// // 再将值重新写入到对应的管脚,实现控制
// Xil_Out32(XPAR_PS7_GPIO_0_BASEADDR + XGPIOPS_DIRM_OFFSET, Data);
//设定输出使能, bit7输出使能
// // XGPIOPS_OUTEN_OFFSET是 GPIO输出使能寄存器(Output Enable Register)的偏移地址
// reg_val = Xil_In32(XPAR_PS7_GPIO_0_BASEADDR + XGPIOPS_OUTEN_OFFSET);
// Data = reg_val | (1<<7);
// Xil_Out32(XPAR_PS7_GPIO_0_BASEADDR + XGPIOPS_OUTEN_OFFSET, Data);
//
// while(1)
// {
// // 设bit7输出1
// Data = ((~(1<<7)) << 16) | (1<<7);
// Xil_Out32(XPAR_PS7_GPIO_0_BASEADDR + XGPIOPS_DATA_LSW_OFFSET, Data);
// usleep(1000000);
//
// // 设bit7输出0
// Data = ((~(1<<7)) << 16) & ~(1<<7);
// Xil_Out32(XPAR_PS7_GPIO_0_BASEADDR + XGPIOPS_DATA_LSW_OFFSET, Data);
// // 以微妙为单位进行延时 us sleep 进率是:s - ms us ns
// usleep(3000000);
// }
//
// return 0; // 虽然程序中不会运行到此处,一般写return防止编译器警告
//}//在小梅哥的zynq 7015上,完成以下目标:
//
//读取 S1 按键的电平,
//当 S1 按键为按下状态时,驱动 PS LED 以 1S 的频率闪烁(注意理解 1S 的频率闪烁和 1S的时间翻转两种描述之间的差别),
//当 S1 释放后,停止闪烁,
//确保 S1释放后 PS_LED 处于熄灭状态。↔
//通俗点讲,就是 S1 被按下后 PS_LED 就以 1s 的频率闪烁,释放后就熄灭且不再闪烁,#include "xgpiops.h"
#include "unistd.h"XGpioPs Gpio;
XGpioPs_Config *ConfigPtr;int main(void)
{ConfigPtr = XGpioPs_LookupConfig(XPAR_PS7_GPIO_0_DEVICE_ID);XGpioPs_CfgInitialize(&Gpio, ConfigPtr, ConfigPtr->BaseAddr);// 设置PS 端 MIO47管脚的 方向和输出使能XGpioPs_SetDirectionPin(&Gpio, 47, 0); // 设置使能XGpioPs_SetOutputEnablePin(&Gpio, 47, 0);// 设置PS 端 MIO7管脚的 方向和输出使能XGpioPs_SetDirectionPin(&Gpio, 7, 1); // 设置使能XGpioPs_SetOutputEnablePin(&Gpio, 7, 1);while(1){// 保持读取47号管脚状态,如果拉高,就意味着要开始闪烁,0.5s亮,0.5s灭// 因为小梅哥按键是摁下去低电平,平常的时候是高电平,所以前面需要加上一个取反的逻辑while (!XGpioPs_ReadPin(&Gpio, 47)){// 设置bit7输出1XGpioPs_WritePin(&Gpio, 7, 0x1);// 持续亮0.5susleep(500000);// 设置bit7输出0XGpioPs_WritePin(&Gpio, 7, 0x0);// 持续灭0.5susleep(500000);}}return 0;
}
相关文章:
FPGA-PS端编程1:
目标 在小梅哥的zynq 7015上,完成以下目标: 读取 S1 按键的电平, 当 S1 按键为按下状态时,驱动 PS LED 以 1S 的频率闪烁(注意理解 1S 的频率闪烁和 1S的时间翻转两种描述之间的差别), 当 S1 释放后,停止…...
自制数据库迁移工具-C版-06-HappySunshineV1.5-(支持南大Gbase8a、PostgreSQL、达梦DM)
目录 一、环境信息 二、简述 三、架构图 四、升级点 五、支持功能 六、后续计划支持功能 七、安装包下载地址 八、配置参数介绍 九、安装步骤 1、用户创建 2、安装包解压 3、环境变量配置 4、环境变量生效 5、动态库链接检验 (1)HsManage…...
了解RPC
本文来自智谱清言 --------- RPC(Remote Procedure Call,远程过程调用)是一种允许程序调用位于远程计算机上的子程序或服务的技术。这种技术使得构建分布式计算变得更加容易,因为它提供了强大的远程调用能力,同时保持…...
centos7 安装docker
文章目录 介绍docker特点安装1.前提准备2.下载1.移除旧版docker命令2.切换centos7的镜像源3.配置docker yum源4.安装最新docker5.输入命令验证docker 安装是否成功6.配置docker 镜像加速7.设置为开机自启 总结 介绍 Docker是一种开源的容器化平台,旨在简化应用…...
Docker 入门:如何使用 Docker 容器化 AI 项目(一)
引言 在人工智能(AI)项目的开发和部署过程中,环境配置和依赖管理往往是开发者遇到的挑战之一。开发者通常需要在不同的机器上运行同样的代码,确保每个人使用的环境一致,才能避免 “在我的机器上可以运行”的尴尬问题。…...
LLMs之rStar:《Mutual Reasoning Makes Smaller LLMs Stronger Problem-Solvers》翻译与解读
LLMs之rStar:《Mutual Reasoning Makes Smaller LLMs Stronger Problem-Solvers》翻译与解读 导读:这篇论文提出了一种名为rStar的自我博弈互推理方法,用于增强小型语言模型 (SLMs) 的推理能力,无需微调或依赖更强大的模型。rStar…...
【RK3588 Linux 5.x 内核编程】-内核中断与ThreadedIRQ
内核中断与ThreadedIRQ 文章目录 内核中断与ThreadedIRQ1、Threaded IRQ介绍2、Threaded IRQ相关API3、驱动实现4、驱动验证当 Interrupt 触发时,Interrupt handler 应该执行得非常快,它不应该运行更多的时间(它不应该执行耗时的任务)。 如果我们有执行更多任务的中断处理程…...
Message Processing With Spring Integration高级应用:自定义消息通道与端点
一、Spring Integration 简介 Spring Integration 是 Spring 框架的扩展,支持企业集成模式(EIP),提供轻量级的消息处理功能,帮助开发者构建可维护、可测试的企业集成解决方案。 核心目标: 提供简单的模型…...
S32K324 MCAL中的Postbuild和PreCompile使用
文章目录 前言Postbuild和PreCompile的概念MCAL中配置差异总结 前言 之前一直看到MCAL配置中有这个Postbuild和PreCompile的配置,但是不太清楚这两个的区别和使用方法。最近在使用中出现了相关问题,本文介绍一下MCAL中这两种配置的区别和使用。 Postbu…...
kubeadm_k8s_v1.31高可用部署教程
kubeadm_k8s_v1.31高可用部署教程 实验环境部署拓扑图**部署署架构****Load Balance****Control plane node****Worker node****资源分配(8台虚拟机)**集群列表 前置准备关闭swap开启ipv4转发更多设置 1、Verify the MAC address and product_uuid are u…...
【AI日记】24.12.22 容忍与自由 | 环境因素和个人因素
【AI论文解读】【AI知识点】【AI小项目】【AI战略思考】【AI日记】 工作 内容:看 OpenAi 这周的发布会和其他 AI 新闻,大佬视频时间:3 小时 读书 书名:富兰克林自传时间:1 小时评估:读完,总体…...
【Java基础面试题030】Java和Go的区别?
回答重点 可以从语言的设计理念、并发模型、内存管理、生态系统与应用场景来说: 1)语言设计理念: Java:Java是一种面向对象编程语言,强调继承、多态和封装等OOP特性。它运行在Java虚拟机(JVM)…...
学习嵩山版《Java 开发手册》:编程规约 - 常量定义(P5)
概述 《Java 开发手册》是阿里巴巴集团技术团队的集体智慧结晶和经验总结,他旨在提升开发效率和代码质量 《Java 开发手册》是一本极具价值的 Java 开发规范指南,对于提升开发者的综合素质和代码质量具有重要意义 学习《Java 开发手册》是一个提升 Jav…...
洛谷 P1595 信封问题 C语言递归
题目描述 某人写了 n 封信和 n 个信封,如果所有的信都装错了信封。求所有信都装错信封共有多少种不同情况。 输入格式 一个信封数 n,保证 n≤20。 输出格式 一个整数,代表有多少种情况。 输入输出样例 输入 #1 2 输出 #1 1 输入 #2 …...
QT创建一个模板槽和信号刷新UI
文章目录 信号与槽的声明work.cpp 信号与槽的连接 在Qt中,若您想设计一个仅含一个信号和槽函数框架,用以刷新UI上多个类型相同但可能属性各异的控件,我们可以借助QVariant的灵活性来传递不同种类的数据,同时利用控件的名称或某种标…...
【计算机视觉基础CV-图像分类】01- 从历史源头到深度时代:一文读懂计算机视觉的进化脉络、核心任务与产业蓝图
1.计算机视觉定义 计算机视觉(Computer Vision)是一个多学科交叉的研究领域,它的核心目标是使计算机能够像人类一样“看”并“理解”视觉信息。换句话说,它希望赋予计算机从图像、视频中自动提取、有意义地分析、理解并解释视觉场…...
C# cad启动自动加载启动插件、类库编译 多个dll合并为一个
可以通过引用costura.fody的包,编译后直接变为一个dll 自动加载写入注册表、激活码功能: 【CAD二次开发教程-实例18-启动加载与自动运行-哔哩哔哩】 https://b23.tv/lKnki3f https://gitee.com/zhuhao1912/cad-atuo-register-and-active...
Mybatis增删改查(配置文件版)
准备环境 1、数据库表tb_brand 2、实体类Brand 3、测试用例 3、1在test包中的java包中创建测试类com.xyy.test.MybatisTest.java 4、安装MyBatisX插件 添加插件后,因为在Mapper代理开发时,Mapper接口要和Mapper.xml映射文件放在同一个报下࿰…...
【Spring Security系列】5 次密码错误触发账号锁定?Spring Security 高效实现方案详解
作者:后端小肥肠 🍇 我写过的文章中的相关代码放到了gitee,地址:xfc-fdw-cloud: 公共解决方案 🍊 有疑问可私信或评论区联系我。 🥑 创作不易未经允许严禁转载。 姊妹篇: 【Spring Security系列…...
笔记day5
文章目录 1 复习2 最完美的解决方案,解决轮播图问题3 开发Floor组件4 把首页中的轮播图拆分为一个共用全局组件5 search模块开发 1 复习 完成商品分类三级列表路由跳转一级路由传参(合并参数)完成search模块中对于typeNav的使用(…...
一个从零实现的 CUDA 大模型推理引擎
我写了一个从零实现的 CUDA 大模型推理引擎 最近我在做一个比较硬核的小项目:用 C / CUDA 从零实现一个大模型推理引擎。 项目地址: https://github.com/luogantt/LLM-inference-engine 这个项目当前主要面向 DeepSeek-R1-Distill-Qwen-7B 的单 batc…...
别再手动算镀膜了!用Ansys Zemax非序列模式,5分钟搞定二向分色分光镜仿真
5分钟极速仿真:Ansys Zemax非序列模式下二向分色分光镜的实战技巧 在光学系统设计中,二向分色分光镜的仿真往往成为效率瓶颈。传统方法需要手动计算镀膜参数、反复调试光线路径,消耗工程师大量时间。本文将揭示如何利用Ansys Zemax非序列模式…...
为什么你需要FFmpeg Batch AV Converter:视频批量处理的终极解决方案
为什么你需要FFmpeg Batch AV Converter:视频批量处理的终极解决方案 【免费下载链接】ffmpeg_batch FFmpeg Batch AV Converter 项目地址: https://gitcode.com/gh_mirrors/ff/ffmpeg_batch 如果你经常需要处理大量视频文件,一定经历过这样的烦恼…...
终极指南:如何在Mac上完美使用Xbox控制器玩游戏
终极指南:如何在Mac上完美使用Xbox控制器玩游戏 【免费下载链接】360Controller TattieBogle Xbox 360 Driver (with improvements) 项目地址: https://gitcode.com/gh_mirrors/36/360Controller 你是否曾经在Mac上尝试连接Xbox控制器,却发现按键…...
Pixelle-Video:如何让AI为您的声音创作注入灵魂?
Pixelle-Video:如何让AI为您的声音创作注入灵魂? 【免费下载链接】Pixelle-Video 🚀 AI 全自动短视频引擎 | AI Fully Automated Short Video Engine 项目地址: https://gitcode.com/GitHub_Trending/pi/Pixelle-Video 在AI视频创作的…...
告别手动注册!用Inno Setup为你的C# SolidWorks插件制作一键安装包(附VS生成后事件脚本)
从代码到产品:用Inno Setup打造SolidWorks插件的专业安装体验 在SolidWorks二次开发领域,许多开发者投入大量精力完善插件功能,却在最后交付环节草草了事——简单复制DLL文件搭配批处理脚本的方式,不仅显得业余,更给终…...
专业休闲卤味零食包装设计公司排名榜单盘点-哲仕设计上榜
专业休闲卤味零食包装设计公司排名榜单盘点-哲仕设计上榜休闲卤味零食属于大众刚需休闲食品,涵盖肉类卤制熟食、素菜卤味小吃、真空独立卤包、常温即食卤品、麻辣风干肉干、组合卤味礼盒等品类,广泛适用于居家休闲解馋、办公下午茶加餐、追剧娱乐食用、出…...
从IMX334到HDMI输入:Hi3559AV100 MPP代码中VI参数配置的保姆级调整指南
从IMX334到HDMI输入:Hi3559AV100 MPP代码中VI参数配置实战解析 当我们需要将Hi3559AV100开发板从默认的IMX334 MIPI摄像头切换为HDMI输入时,整个视频输入(VI)通道的参数配置需要彻底重构。这不仅涉及硬件接口的转换,更需要深入理解MPP框架中V…...
QGIS工程文件.QGZ与.QGS到底怎么选?从团队协作到版本控制的完整避坑指南
QGIS工程文件.QGZ与.QGS深度对比:团队协作与版本控制的最佳实践 当你在QGIS中完成一天的工作,点击保存按钮时,系统默认会生成.QGZ格式的文件。但你是否想过,这个看似简单的选择可能会影响未来团队协作的效率?在GIS项目…...
Claude Code + OpenCode + OpenSpec 规范驱动开发实战:AI 驱动智能客服管理系统开发
当 AI 编程从“凭感觉聊天”升级为“按规范执行的流水线” 一、引言:AI 编程的“效率悖论” 2024 年 Google DORA 报告揭示了一个令人困惑的数据:AI 编码助手采用率每提升 25%,软件交付稳定性反而下降 7.2%。主观上开发者觉得用 AI 写代码速…...
