当前位置:网站首页>ZYNQ TTC使用方法
ZYNQ TTC使用方法
2022-07-22 10:24:00 【NjustMEMS_ZJ】
前言
计时器是嵌入式编程中最常使用的模块了,本文介绍下ZYNQ中定时器的使用,大部分内容参照官方手册ug1085
平台
Vivado 2017.4
Windows 10
ZCU102开发板
Features
Block Diagram
直接上应用代码
定时器初始化
int XTtcPs_Init(XTtcPs * TimerPtr,u16 DeviceId ,u16 rate_hz)
{
int Status;
XTtcPs_Config *Config;
XInterval Interval;
u8 Prescaler;
Config = XTtcPs_LookupConfig(DeviceId); // 查找设备
Status = XTtcPs_CfgInitialize(TimerPtr, Config, Config->BaseAddress);
if (Status != XST_SUCCESS) {
xil_printf("In %s:\t XTtcPs %d initialization Failed...\r\n",
__func__,DeviceId);
return XST_FAILURE;
}
else
{
xil_printf("In %s:\t XTtcPs %d initialization Success...\r\n",
__func__,DeviceId);
}
XTtcPs_SetOptions(TimerPtr, XTTCPS_OPTION_INTERVAL_MODE | XTTCPS_OPTION_WAVE_DISABLE);
XTtcPs_CalcIntervalFromFreq(TimerPtr, rate_hz, &Interval, &Prescaler);
XTtcPs_SetInterval(TimerPtr, Interval);
XTtcPs_SetPrescaler(TimerPtr, Prescaler);
//XTtcPs_Start(TimerPtr);
return Status;
}
注册中断函数
要注意,中断函数里尽量快进快出,以免出现不必要的问题。
XScuGic_SetPriorityTriggerType(ScuGicInstancePtr, XPAR_XTTCPS_2_DEVICE_ID,0x10, 0x3); //设置优先级
XScuGic_Connect(&ScuGicInstance, XPAR_XTTCPS_2_INTR,(Xil_InterruptHandler)XTtcPs2_ScTick_callback,
(void *)&XTtcPs2_ScTick);
XScuGic_Enable(&ScuGicInstance, XPAR_XTTCPS_2_INTR);
XTtcPs_EnableInterrupts(&XTtcPs2_ScTick, XTTCPS_IXR_INTERVAL_MASK);
边栏推荐
- C语言程序设计代码
- If else optimization
- 图的深度优先搜索和广度优先搜索
- Dynamic memory management and flexible array
- 【读书笔记】《微习惯:瘦身篇》
- 优博讯助力深圳打造全球“鸿蒙欧拉之城”
- RRPN:Arbitrary-Oriented Scene Text Detection via Rotation Proposals
- 通过shell脚本进行数据库操作
- Flutter development (32): flutter screen adaptation
- Fluent 2 Advanced (V):json_ Serializable use
猜你喜欢
AttributeError: module ‘tensorflow.keras.utils‘ has no attribute image_dataset_from_directory——解决方法
C语言程序设计代码
vmware nat模式下主机ping不通虚拟机:跟大部分方法不一样
蓝桥杯省赛训练营——栈与递归
Spark RDD depends on the working principle of DAG
【TA-霜狼_may-《百人计划》】图形3.3 曲面细分与几何着色器 大规模草渲染
As a beginner, I don't want to use eslint
RRPN:Arbitrary-Oriented Scene Text Detection via Rotation Proposals
定向爬取淘宝商品名称和价格(嵩天老师)
Host Ping fails in VMware NAT mode virtual machine: different from most methods
随机推荐
ping: www.baidu.com: 未知的名称或服务原因分析
appstore 上传屏幕快照尺寸
location.replace和location.href区别
美国土安全局对特勤局删除的国会大厦骚乱期间电子通信记录展开调查
低代码和无代码有什么区别?
Spark RDD operator: partition operation, mappartitions and mappartitionswithindex
【TA-霜狼_may-《百人计划》】图形3.3 曲面细分与几何着色器 大规模草渲染
[database basic dry goods] MySQL foundation and slow query optimization practice
Kotlin learning three: set and lambda
xcode 编译pod 第三方库报错
Flutter 2进阶(二):Flutter空安全
Error reported by Xcode compiling pod third-party library
Docker - DB2 database deployment through container installation tutorial
stat函数详解
nacos权限与数据库
ld: framework not found Pods_ XXX clang: error: linker command failed with exit code 1 (use -v to see
leetcode 32. 最长有效括号
Record the failure experience of installing cupy in win10 (with comparison between cupy and numpy)
Spark加载CSV和JSON文件(附在虚拟机中执行jar包)
One master-slave replication of MySQL