Xilinx SDK 初学之——API函数笔记(timer相关函数)

初学Xilinx SDK的开发,下面记录使用到的API函数及自己的理解。若有误,还请指教。

1、XScuTimer_Config *XScuTimer_LookupConfig(u16 DeviceId)

名称 代码 解释
函数名 XScuTimer_LookupConfig 查询ID对应的设备配置信息
参数1 u16 DeviceId timer对应的设备ID,在xparameter.h中定义
返回值 XScuTimer_Config 指向给定ID设备的配置类表的指针

////////////////////////////////////////////////////
应用举例
XScuTimer_Config *ConfigPtr;
ConfigPtr = XScuTimer_LookupConfig (XPAR_PS7_SCUTIMER_0_DEVICE_ID);
//得到当前定时器配置列表的指针
////////////////////////////////////////////////////

2、s32 XScuTimer_CfgInitialize(XScuTimer *InstancePtr,XScuTimer_Config *ConfigPtr, u32 EffectiveAddress)

名称 代码 解释
函数名 XScuTimer_CfgInitialize 初始化timer
参数1 XScuTimer *InstancePtr 指向timer实例的指针
参数2 XScuTimer_Config *ConfigPtr 指向配置结构体的指针
参数3 u32 EffectiveAddress 设备的基地址,一般为配置信息的基地址
返回值 s32 XST_SUCCESS:配置成功;XST_DEVICE_IS_STARTED :定时器已经启动

////////////////////////////////////////////////////
应用举例
XScuTimer Timer; // 定时器
XScuTimer_Config *ConfigPtr; // 配置信息指针
ConfigPtr = XScuTimer_LookupConfig (XPAR_PS7_SCUTIMER_0_DEVICE_ID);
//得到当前定时器配置列表的指针
XScuTimer_CfgInitialize(&Timer, ConfigPtr, ConfigPtr->BaseAddr); //初始化timer
////////////////////////////////////////////////////

3、void XScuTimer_LoadTimer(InstancePtr,Value ) ;

名称 代码 解释
函数名 XScuTimer_LoadTimer 装载timer周期
参数1 InstancePtr 指向timer实例的指针
参数2 Value 装载值
返回值 void

////////////////////////////////////////////////////
应用举例
XScuTimer Timer; // 定时器
u32 value = 0x13D92D3F; // 定时1s
XScuTimer_LoadTimer(&Timer, value);
////////////////////////////////////////////////////
另,关于value和定时周期的计算有如下公式:
定时时间=[(预分频器值 + 1)(加载值 + 1)]/定时器频率
一般私有定时器频率为CPU频率一半,常见为333MHz。若需要定时1s,则
加载值=1s*(333*1000000)*(1/s) - 1 = 0x13D92D3F
////////////////////////////////////////////////////

4、int XScuTimer_IsExpired(XScuTimer *InstancePtr)

名称 代码 解释
函数名 XScuTimer_IsExpired 查询timer是否计数满
参数1 XScuTimer *InstancePtr 指向timer实例的指针
返回值 int TRUE or FALSE

其他比如XScuTimer_EnableAutoReload、XScuTimer_Start等较为简单,不再详述

本文转载自: https://blog.csdn.net/tangkunjyy/article/details/62215670

最新文章

最新文章