FPGA-PS端编程1:

ops/2024/12/22 21:37:03/

目标

在小梅哥的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;
}


http://www.ppmy.cn/ops/144131.html

相关文章

[SZ901]JTAG高速下载设置(53Mhz)

SZ901最高支持JTAG 53MHz的时钟频率&#xff0c;下载bit文件和固化程序的速度提升非常明显。 首先设置参数 1&#xff0c;将JTAG0 分频系数修改为3 2&#xff0c;设置参数&#xff0c;更新参数。&#xff08;完成&#xff09; 打开VIVADO VIVADO 正常识别FPGA&#xff0c;速…

秒优科技-供应链管理系统 login/doAction SQL注入漏洞复现

0x01 产品简介 秒优科技提供的供应链管理系统,即秒优SCM服装供应链管理系统,是一款专为服装电商企业设计的全方位解决方案。是集款式研发、订单管理、物料管理、生产管理、工艺管理、收发货管理、账单管理、报表管理于一体的服装电商供应链管理解决方案。它涵盖了从企划到开…

python如何获取excel单元格文字是否加粗

是的&#xff0c;Python 可以获取 Excel 单元格中的文字是否加粗。通常&#xff0c;这需要使用 openpyxl 库&#xff0c;它允许你读取和写入 Excel 文件&#xff08;.xlsx 格式&#xff09;。 以下是一个示例代码&#xff0c;展示如何检查某个单元格的文字是否加粗&#xff1a…

HarmonyOS(71) 自定义事件分发之TouchTestStrategy使用说明

TouchTestStrategy 1、前言2、TouchTestStrategy简介2.1、TouchTestStrategy枚举类型简介2.2、TouchTestStrategy.DEFAULT效果1.3、TouchTestStrategy.FORWARD_COMPETITION效果2.3、TouchTestStrategy.FORWARD效果3、参考资料1、前言 本文根据官方文档自定义事件分发整理而来,…

pycharm 快捷键

PyCharm 是一款功能强大的集成开发环境&#xff08;IDE&#xff09;&#xff0c;提供了丰富的快捷键来提高开发效率。以下是一些常用的 PyCharm 快捷键&#xff08;基于 Windows/Linux 系统&#xff0c;Mac 系统可能略有不同&#xff09;&#xff1a; 通用快捷键 功能快捷键&a…

电脑提示ntdll.d缺失是什么原因?不处理的话会怎么样?ntdll.dll文件缺失快速解决方案来啦!

电脑提示ntdll.dll缺失&#xff1a;原因、影响与解决方案 在日常的电脑使用中&#xff0c;我们偶尔会遇到一些令人困惑的系统错误&#xff0c;其中“ntdll.dll缺失”便是较为常见的一种。作为软件开发从业者&#xff0c;我深知这一错误给用户带来的不便&#xff0c;因此&#…

Docker基础命令实战

问题&#xff1a;Error response from daemon: Get "https://index.docker.io/v1/search?qmysql&n25": dial tcp 199.59.148.9:443: connect: connection refused 在pull nginx时出现的报错&#xff0c;可能原因是镜像源过期了&#xff0c;我们需要更换镜像源 …

搭建云手机平台的技术要求?

最近在互联网上关于云手机的讨论比较多&#xff0c;其中如何搭建云手机平台是个热门话题。都知道云手机是按照租赁的模式来收费的&#xff0c;所以很多小伙伴想自己搭建一个&#xff0c;这样就可以无限期免费使用了。其实云手机的原理&#xff0c;并没有表面上看起来这么简单&a…