MicroBlaze的Timer IP比较简单易用,一个XPS_TC IP包含两个32bit定时/计数器。工作方式也比较灵活,可以设置中断、自动加载、Count UP/DOWN等模式,每当timer溢出的时候产生中断,进入中断程序后通过写1 clear中断标志位,通常的做法是csr = = XTmrCtr_mGetControlStatusReg(XPAR_MY_TIMER_BASEADDR, 0);然后再“XTmrCtr_mSetControlStatusReg(XPAR_MY_TIMER_BASEADDR, 0, timer_csr);”,这样可以在不影响别的控制位的前提下clear中断标志位。

同样值得注意的是用了XIntc模块,要将timer中断服务程序连接(注册)到XIntc模块上。

使用Timer IP的流程是:

(1)设置Load Regisiter初始值;

(2)设置控制/状态寄存器,包括中断时能、timer使能、COUNT方向、Relaod使能等;

(3)注册中断服务函数;

(4)开MB全局中断和XIntc中断;

(5)等待中断发生。

(6)在中断服务程序中clear中断标志位。

例程(100MHz下,每一秒产生一个中断)

#include "xparameters.h"
#include "xutil.h"
#include "xintc.h"
#include "xtmrctr.h"
void timer_int_handler(void);
unsigned int push_button_times, timer_cnt;
int main()
{timer_cnt = 0;xil_printf("--start the program test---\r\n");XTmrCtr_mSetLoadReg(XPAR_MY_TIMER_BASEADDR, 0, 100000000);XTmrCtr_mSetControlStatusReg(XPAR_MY_TIMER_BASEADDR, 0,XTC_CSR_ENABLE_TMR_MASK | XTC_CSR_ENABLE_INT_MASK |XTC_CSR_AUTO_RELOAD_MASK | XTC_CSR_DOWN_COUNT_MASK);//must enable mb_enable bitmicroblaze_enable_interrupts();//must enable xgpio_interruptglobalenable bit;//register the isrXIntc_RegisterHandler(XPAR_INTC_0_BASEADDR, \XPAR_XPS_INTC_0_MY_TIMER_INTERRUPT_INTR,\(XInterruptHandler)timer_int_handler, \(void *)0);//must enable XIntc_mMasterEnableXIntc_mMasterEnable(XPAR_INTC_0_BASEADDR);//must enable specific interrupt(s) in the interrupt controller.XIntc_mEnableIntr(XPAR_INTC_0_BASEADDR, \XPAR_PUSH_BUTTONS_POSITION_IP2INTC_IRPT_MASK\|XPAR_DIP_SWITCHES_8BIT_IP2INTC_IRPT_MASK\|XPAR_RS232_UART_INTERRUPT_MASK\|XPAR_MY_TIMER_INTERRUPT_MASK);while(1);return 0;
}void timer_int_handler(void)
{unsigned int timer_csr;timer_cnt++;timer_csr = XTmrCtr_mGetControlStatusReg(XPAR_MY_TIMER_BASEADDR, 0);if(timer_csr & XTC_CSR_INT_OCCURED_MASK){xil_printf("--timer interrupt happened times = %d!--\r\n", timer_cnt);XTmrCtr_mSetControlStatusReg(XPAR_MY_TIMER_BASEADDR, 0, timer_csr);}
}

MicroBlaze定时器(Timer)的使用相关推荐

  1. 【Android 异步操作】Timer 定时器 ( Timer 与 TimerTask 基本使用 | Timer 定时器常用用法 | Timer 源码分析 )

    文章目录 一.Timer 定时器基本使用 二.Timer 定时器常用用法 三.Timer 源码分析 四.Timer 部分源码注释 五.源码及资源下载 参考文档 : Timer 定时器 API 文档 T ...

  2. Java定时器Timer

    Java定时器Timer 在JDK库中,Timer类主要负责计划任务的功能,也就是在指定的时开始执行某一个任务.Timer类的主要作用就是设置计划任务,但封装任务的类却是TimerTask类,执行计划 ...

  3. python定时器 是线程吗_python线程定时器Timer(32)

    相对前面几篇python线程内容而言,本片内容相对比较简单,定时器 – 顾名思义,必然用于定时任务. 一.线程定时器Timer原理 原理比较简单,指定时间间隔后启动线程!适用场景:完成定时任务,例如: ...

  4. python定时器timer_python通过线程实现定时器timer的方法

    本文实例讲述了python通过线程实现定时器timer的方法.分享给大家供大家参考.具体分析如下: 这个python类实现了一个定时器效果,调用非常简单,可以让系统定时执行指定的函数 下面介绍以thr ...

  5. 第5章 定时器Timer

    第5章 定时器Timer 标签: Java多线程编程 <Java多线程编程核心技术> 个人笔记 第5章 定时器Timer 定时器Timer的使用 方法scheduleTimerTask t ...

  6. python中实现定时器Timer

    实现定时器最简单的办法是就是循环中间嵌time.sleep(seconds), 这里我就不赘述了 # encoding: UTF-8 import threading #Timer(定时器)是Thre ...

  7. Python 线程定时器 Timer - Python零基础入门教程

    目录 一.Python 线程定时器 Timer 原理 二.Python 线程定时器 Timer 使用 三.Python 线程定时器 Timer 总结 四.猜你喜欢 零基础 Python 学习路线推荐 ...

  8. 定时器Timer的实现

    定时器Timer的实现 定时器在实际项目中会用的比较平凡.因此,本文首先介绍定时器Timer的windows版本,跨平台的定时器将在下一篇文章中介绍.它们的源代码均用C++编写.源代码详见:https ...

  9. Java定时器Timer学习之一

    2019独角兽企业重金招聘Python工程师标准>>> 种类: 接通延时型定时器:接通延时型定时器是各种PLC(可编程控制器)中最常见最基本的定时器,这种定时器在Siemens的PL ...

最新文章

  1. 【解析】工业机器人中的各类传感器技术应用
  2. UWP 负载包含两个或多个具有相同目标的路径 'xxx'
  3. 第十六届智能车竞赛竞速组别网络报名说明
  4. javadoc maven_创建Maven源代码和Javadoc工件
  5. 【机器学习】 - 关于图像质量评价IQA(Image Quality Assessment)
  6. Python 偏函数
  7. 推一个知乎学弱猹的公众号
  8. Spring Security3
  9. Linux中ELF格式文件介绍
  10. MFC界面开发帮助文档:BCG可视化设计器使用指南
  11. 厦门市大专计算机学校有哪些,2021厦门公办大专学校有哪些 【教育部专科院校名单】...
  12. 【pip command】之卸载 pip 之后重新安装
  13. 想自学单片机,各位有什么书和板子值得推荐的吗?
  14. java阿里云图片检测同/异步sdk调用详解
  15. 三星手机怎么看html5,三星手机查看硬件信息方法
  16. 朱朱的2020年(上)
  17. 联通假4G欺骗消费者!
  18. kafka启动失败 The Cluster ID doesn‘t match...
  19. Liquid Warping GAN 水记
  20. 导出RCP程序遇到错误

热门文章

  1. word内多级列表标题变成黑块解决办法
  2. 深度linux没有硬盘,安装Deepin系统到硬盘分区部分没有发现硬盘数据的解决
  3. U盘装系统(Linux)
  4. Whistle pc抓包,手机抓包,https抓包
  5. 2019 杭电多校 E - Everything Is Generated In Equal Probability HDU 6595 数学
  6. 图像处理:分水岭算法(图像分割)
  7. 苹果6plus自动时间不准 修复苹果自动设置时间不准教程(图文)
  8. 2022团体程序设计天梯赛题解 L2
  9. 智能POS如何获取日志数据库文件
  10. 【C语言程序设计】实验 1