开启TTC定时器,不同于7000系列的私有定时器

此处设置LPD_LSBUS频率

TTC频率取决于LPD_LSBUS

可前往指定位置查看参数

不使能填写对应宏

可前往指定位置查看参数

main.c

#include <stdio.h>
#include "xparameters.h"
#include "xgpiops.h"
#include "sleep.h"
#include "xscugic.h"
#include "xil_exception.h"
#include "xil_printf.h"
#include "xttcps.h"
#include "main.h"
#include "gpio.h"
#include "Ttc.h"
#include "intr.h"//定义变量
XGpioPs 	Gpio;			//GPIO	驱动实例
XScuGic 	Intc;			//GIC	驱动实例
XTtcPs 		TTC;			//定时器 驱动实例int main(){xil_printf("MIO_TTC_INT\r\n");mio_config(&Gpio);TTC_config(&TTC);TTC_intr_config(&Intc,&TTC);XTtcPs_Start(&TTC);while(1){}return 0;
}

main.h

#include <stdio.h>
#include "xparameters.h"
#include "xgpiops.h"
#include "sleep.h"
#include "xscugic.h"
#include "xil_exception.h"
#include "xil_printf.h"
#include "xttcps.h"#define GPIO_DEVICE_ID		XPAR_XGPIOPS_0_DEVICE_ID		//MIO器件ID
#define MIO_LED0			0
#define MIO_LED1			7
#define MIO_LED2			8
#define MIO_KEY0			12
#define MIO_KEY1			11
#define TTC_DEVICE_ID		XPAR_XTTCPS_0_DEVICE_ID			//TTC定时器器件ID
#define TTC_INTR_ID			XPAR_XTTCPS_0_INTR				//TTC定时器中断ID
#define INTC_DEVICE_ID		XPAR_SCUGIC_SINGLE_DEVICE_ID	//中断控制器器件ID#define TIMER_LOAD_VALUE	20000000 - 1				    //TTC定时器装载值     100Mhz->0.2ms = 20_000_000

gpio.c

#include <stdio.h>
#include "xparameters.h"
#include "xgpiops.h"
#include "sleep.h"
#include "xscugic.h"
#include "xil_exception.h"
#include "xil_printf.h"
#include "gpio.h"
#include "main.h"void mio_config(XGpioPs *gpio_ptr){////////////配置GPIO输入输出////////////XGpioPs_Config *ConfigPtr;//根据器件ID查找GPIO配置信息ConfigPtr = XGpioPs_LookupConfig(GPIO_DEVICE_ID);//对GPIO驱动初始化XGpioPs_CfgInitialize(gpio_ptr, ConfigPtr,ConfigPtr->BaseAddr);//设置引脚方向 	0:输入 	1输出XGpioPs_SetDirectionPin(gpio_ptr, MIO_LED0, 1);XGpioPs_SetDirectionPin(gpio_ptr, MIO_LED1, 1);//设置输出使能	0: 不使能	1: 使能XGpioPs_SetOutputEnablePin(gpio_ptr, MIO_LED0, 1);XGpioPs_SetOutputEnablePin(gpio_ptr, MIO_LED1, 1);//设置初始状态XGpioPs_WritePin(gpio_ptr, MIO_LED0, 0x0);XGpioPs_WritePin(gpio_ptr, MIO_LED1, 0x0);
}

gpio.h

         

#include <stdio.h>
#include "xparameters.h"
#include "xgpiops.h"
#include "sleep.h"
#include "xscugic.h"
#include "xil_exception.h"
#include "xil_printf.h"
#include "main.h"extern XGpioPs 	Gpio;			//GPIO	驱动实例#define led0(a)	XGpioPs_WritePin(&Gpio,MIO_LED0,a);void mio_config(XGpioPs *gpio_ptr);

intr.c

#include <stdio.h>
#include "xparameters.h"
#include "xgpiops.h"
#include "sleep.h"
#include "xscugic.h"
#include "xil_exception.h"
#include "xil_printf.h"
#include "xttcps.h"
#include "main.h"
#include "intr.h"
#include "xttcps_hw.h"u8 led_state	;void TTC_intr_config(XScuGic *intr_ptr,XTtcPs *TTC_ptr){//GIC配置信息驱动实例XScuGic_Config *IntcConfig;//根据中断控制器的器件ID查找配置信息IntcConfig = XScuGic_LookupConfig(INTC_DEVICE_ID);//根据查找到的配置信息初始化中断控制器XScuGic_CfgInitialize(intr_ptr, IntcConfig,IntcConfig->CpuBaseAddress);//关联GPIO中断处理程序XScuGic_Connect(intr_ptr, TTC_INTR_ID,(Xil_ExceptionHandler)IntrHandler,(void *)TTC_ptr);//使能GIC的GPIO中断XScuGic_Enable(intr_ptr, TTC_INTR_ID);//使能TTC定时器中断XTtcPs_EnableInterrupts(TTC_ptr,XTTCPS_IXR_INTERVAL_MASK);//针对异常初始化Xil_ExceptionInit();//注册中断请求异常处理程序Xil_ExceptionRegisterHandler(XIL_EXCEPTION_ID_INT,(Xil_ExceptionHandler)XScuGic_InterruptHandler,intr_ptr);//使能异常处理Xil_ExceptionEnableMask(XIL_EXCEPTION_IRQ);
}void IntrHandler(void *CallBackRef){XTtcPs *TTC_ptr = (XTtcPs *) CallBackRef;led_state = !led_state;xil_printf("led_state = %d\r\n",led_state);XTtcPs_ClearInterruptStatus(TTC_ptr,XTTCPS_IXR_INTERVAL_MASK);
}

intr.h

#include <stdio.h>
#include "xparameters.h"
#include "xgpiops.h"
#include "sleep.h"
#include "xscugic.h"
#include "xil_exception.h"
#include "xil_printf.h"
#include "xttcps.h"
#include "main.h"void TTC_intr_config(XScuGic *intr_ptr,XTtcPs *TTC_ptr);
void IntrHandler(void *CallBackRef);

Ttc.c

#include <stdio.h>
#include "xparameters.h"
#include "xgpiops.h"
#include "sleep.h"
#include "xscugic.h"
#include "xil_exception.h"
#include "xil_printf.h"
#include "xttcps.h"
#include "main.h"
#include "Ttc.h"void TTC_config(XTtcPs *TTC_ptr){XTtcPs_Config *ConfigPtr;//根据器件ID查找GPIO配置信息ConfigPtr = XTtcPs_LookupConfig(TTC_DEVICE_ID);//对定时器驱动初始化XTtcPs_CfgInitialize(TTC_ptr, ConfigPtr,ConfigPtr->BaseAddress);//配置定时器参数//配置工作模式   定时模式XTtcPs_SetOptions(TTC_ptr, XTTCPS_OPTION_INTERVAL_MODE);//预分频   不使能XTtcPs_SetPrescaler(TTC_ptr,XTTCPS_CLK_CNTRL_PS_DISABLE);//设置间隔   定时值XTtcPs_SetInterval(TTC_ptr,TIMER_LOAD_VALUE);//开启定时器   ->配置完中断后//XTtcPs_Start(TTC_ptr);
}

Ttc.h

#include <stdio.h>
#include "xparameters.h"
#include "xgpiops.h"
#include "sleep.h"
#include "xscugic.h"
#include "xil_exception.h"
#include "xil_printf.h"
#include "xttcps.h"
#include "main.h"void TTC_config(XTtcPs *TTC_ptr);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/99121.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/99121.shtml
英文地址,请注明出处:http://en.pswp.cn/diannao/99121.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

人工智能训练师三级备考笔记

一、实操1&#xff09;通用语法&#xff08;常见于实操题第一块代码块&#xff09;1.读取文件数据或加载数据集等描述时一般为以下结构&#xff1a;Datapd.read_文件格式(文件名) 注意&#xff1a;文件名需要用‘ ’框起来&#xff0c;必须要有引号文件格式有以下内容csv、txt…

Cherry Studio递归工具调用机制深度解析

在现代AI应用开发中,工具调用(Tool Calling)已成为大语言模型与外部系统交互的核心机制。Cherry Studio作为一款先进的AI对话客户端,实现了一套完整的递归工具调用系统,能够让AI助手在执行复杂任务时自动调用多个工具,并根据执行结果智能决策下一步操作。本文将深入解析这…

[哈希表]966. 元音拼写检查器

966. 元音拼写检查器 class Solution:def spellchecker(self, wordlist: List[str], queries: List[str]) -> List[str]:origin set(wordlist) # 存储原始单词用于完全匹配lower_to_origin {} # 存储小写形式到原始单词的映射vowel_to_origin {} # 存储元音模糊形…

正则表达式与文本三剑客(grep、sed、awk)基础与实践

正则表达式基础与实践一、正则表达式概述1. 定义正则表达式&#xff08;Regular Expression&#xff0c;简称 RE&#xff09;是用于描述字符排列和匹配模式的语法规则&#xff0c;核心作用是对字符串进行分割、匹配、查找、替换操作。它本质是 “模式模板”&#xff0c;Linux 工…

eclipse中web项目编译后的lib里面jar为空问题处理

1. 检查项目构建配置验证项目性质右键单击项目 → Properties确认项目已正确配置&#xff1a;​Project Facets​&#xff1a;确保已勾选"Dynamic Web Module"​Targeted Runtimes​&#xff1a;确保已选择服务器运行时&#xff08;如Tomcat&#xff09;检查部署程序…

C语言中的递归问题——汉诺塔问题

汉诺塔&#xff08;Tower of Hanoi)&#xff0c;又称河内塔&#xff0c;是一个源于印度古老传说的益智玩具。传说大梵天创造世界的时候做了三根金刚石柱子&#xff0c;在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在…

ArkAnalyzer源码初步分析I——分析ts项目流程

1.前言&#xff1a; 鸿蒙程序分析框架ArkAnalyzer&#xff08;方舟分析器&#xff09; 源码地址 入门文档 2.阅读入门文档后&#xff1a; 本人具有一定的Java开发经验。虽然我对 TypeScript&#xff08;TS&#xff09;和 ArkTS 还不熟&#xff0c;但很多概念对我这个 Java 开…

c#基础二(类和对象,构造器调用顺序、访问级别、重写和多态、抽象类和接口)

一、类1.0对象初始化器class Student {public String name;public int age { get; set; } } internal class Program {static void Main(string[] args){ //写法一Student stunew Student();stu.name"Tom";stu.age20;//写法二Student stu2 new Student { name &qu…

Qt之快捷键、事件处理、自定义按键——完成记事本项目

快捷键我们电脑中的记事本中还支持快捷键&#xff0c;如“CTRLO”打开文件、“CTRLS”保存文件在Qt中使用QShortcut这个类创建快捷键在.cpp文件的构造函数中创建QShortcut对象&#xff0c;绑定打开文件和保存文件的槽函数放大缩小字体还是在.cpp的构造函数中编写代码Widget::Wi…

Open cascade中如何使用BRepAlgoAPI_Splitter分割一个Face

理论介绍 在OpenCASCADE几何建模内核中&#xff0c;BRepAlgoAPI_Splitter是一个强大的工具&#xff0c;用于将一个形状&#xff08;Shape&#xff09;用另一个形状&#xff08;Tool&#xff09;进行分割。这种操作在CAD建模中非常常见&#xff0c;比如用平面切割实体、用曲线分…

【医疗 AI】Baichuan-M2 医疗大模型:技术解读与使用方法

【医疗 AI】Baichuan-M2 医疗大模型&#xff1a;技术解读与使用方法1. Baichuan-M2 医疗大模型简介1.1 基本信息1.2 下载地址1.3 技术特点2. Baichuan-M2 模型技术报告2.1 摘要2.2 医学性能评估2.2.1 HealthBench基准2.2.2 中国医疗场景对比评估2.3 系统架构2.3.1 验证器系统2.…

unity pcd 二进制版 简单显示文件对象(单色)

unity Point Cloud Viewer and Tool 那个插件不支持pcd二进制&#xff0c;而且网上到处都是AI 我恨这种AI滥用&#xff0c;提供不了一点价值 好了&#xff0c;言归正传 可以在Point Cloud Viewer and Tool这个插件报错地方转用这个代码&#xff0c;具体咋结合请自行研究。 …

强大的开源文档问答工具-Kotaemon

Kotaemon 是一个基于 RAG&#xff08;Retrieval-Augmented Generation&#xff09;架构的开源文档问答工具&#xff0c;为用户提供与文档对话的智能交互体验。该项目同时服务于终端用户和开发者&#xff0c;具有高度的可扩展性和定制化能力。技术栈分析核心技术栈后端框架Pytho…

区块链:搭建简单Fabric网络并调用智能合约

使用docker服务搭建Hyperledger/fabric网络的详细教程&#xff0c;实现构建多节点的简单联盟链&#xff0c;并编写、调用智能合约实现投票业务。 目录 背景知识 Hyperledger Fabric 基本组件 交易(Transaction) 智能合约 实验目的 实验环境 基础依赖 安装Golang 安装do…

Web前端面试题(2)

Web前端面试题(附答案及解析)&#xff08;2025.9月最新版&#xff09;-CSDN博客 1.link 与 import 的区别和用法 主要区别 特性<link>import语法类型HTML标签CSS规则加载方式并行加载&#xff08;与其他资源同时加载&#xff09;串行加载&#xff08;必须等待主CSS文件…

Paxos协议

目录 Paxos 是什么&#xff08;What&#xff09; Paxos 的目的&#xff08;Why&#xff09; 角色与职责&#xff08;Who&#xff09; 基本流程&#xff08;How&#xff09; 常见问题与对策 什么是多数派&#xff08;Quorum&#xff09; Paxos vs Raft 异同点 Paxos 是什…

第十二篇:Qcom Camx打印实时帧率 FPS

一、第一种方式(有些低平台可能没有) adb shell setprop persist.vendor.camera.enableFPSLog TRUE adb shell setprop persist.vendor.camera.systemLogEnable TRUE adb shell setprop vendor.debug.camera.overrideLogLevels 0xff chi-cdk/core/chiframework/chxextensi…

TRAE通用6A规则+敏捷开发5S规则

网上研究别人的一些规则,也搞一份给大家 6A工作流项目规则 身份定义 你是一位资深的软件架构师和工程师,具备丰富的项目经验和系统思维能力。你的核心优势在于: 上下文工程专家:构建完整的任务上下文,而非简单的提示响应 规范驱动思维:将模糊需求转化为精确、可执行的规…

【Nginx开荒攻略】Nginx主配置文件结构与核心模块详解:从0到1掌握nginx.conf:

目录 引言 1 nginx.conf的整体结构 2 main全局块详解 2.1 核心指令解析 2.1.1 user&#xff1a;运行用户 2.1.2 worker_processes&#xff1a;工作进程数 2.1.3 pid&#xff1a;PID文件路径 2.1.4 worker_rlimit_nofile&#xff1a;文件描述符限制 2.2 main块配置示例…

【前端教程】从基础到优化:一个登录页面的完善过程

最近做了一个简单的登录页面,主要练习了文本框的onfocus与onblur事件的使用。虽然功能实现了,但仔细想想还有不少可以改进的地方。今天就来分享一下这个登录页面的开发过程和优化思路。 初始实现与解析 先来看一下最初的实现代码: <!DOCTYPE html> <html> &l…