NOS II - Timer定时器

NOS II-Time定时器

简单回忆NIOS II中定时器的使用。

一、定时器的框图

image-20240610180740613

二、定时器寄存器的描述

定时器的寄存器都是16bit的,

偏移量寄存器名称R/W15bit4bit3bit2bit1bit0bit
0Status - 状态寄存器R/W - 可读可写*****runTO
1Control - 控制寄存器R/W***stopstartcontITO
2PeriodL - 周期低16位R/W超时周期-1(位15…0)
3PeriodH - 周期高16位R/W超时周期-1(位31…16)
4SnapL - 快照低16bitR/W计时快照(位15…0)
5SnapH - 快照高16bitR/W计时快照(位31…16)

1、状态寄存器

0bit : TO,这一位表示计时器寄到定时的时间时,这一位就会被置1。

1bit : run,如果为1这表示正在计数,只要在计数,这位就是1,否则为0

2、控制寄存器

0bit :ITO表示是否允许中断,一般都是要允许中断的;

1bit:cont表示是连续的那个单词,表示是否工作在连续工作模式,还是单次工作模式.。即如果置为1,计数完一轮之后再计数第二轮,一直循环计数

2bit:start位,如果这位被置为1,则表示启动定时器;

3bit:stop位,如果是1这表示定时器IP停止工作;

3、周期寄存器

用于配置要计数多久

4、快照寄存器

用于查看当前计数到哪里了

三、中断操作

只要内部计数器减到且控制寄存器对的ITO位设置位1,定时器内核就会产生IRO。用户要用以下的任意一种方式应答IRQ:

  • 清除状态寄存器的TO位,等待下一个超时事件的发生;
  • 通过将控制寄存器的ITO位清0来禁止中断

四、定时器内核的配置选项

image-20240610184835964

五、定时器的软件编程

定时器内核提供硬件对的寄存器访问和HAL层的API函数:

定义内核的寄存器映射并提供硬件设备访问宏定义:
altera_avalon_timer_regs.h
实现了HAL系统库的定时器设备驱动程序:
altera_avalon_time.h
altera_avalon_timer_sc.c
altera_avalon_timer_ts.c
altera_avalon_timer_vars.v

定时器TIMER0的简单应用,配置步骤:

//	定时器的初始化
	alt_ic_isr_register(TIMER0_IRQ_INTERRUPT_CONTROLLER_ID, TIMER0_IRQ, TIMER0_Interrupts, NULL, 0);//	Timer0中断函数注册,TIMER0_Interrupts是中断服务函数,即计数到时需要执行的任务,用户自己编写
	IOWR_ALTERA_AVALON_TIMER_CONTROL(TIMER0_BASE, 0);//配置控制寄存器		停止Timer0。TIMER0_BASE是定时器的地址
	IOWR_ALTERA_AVALON_TIMER_STATUS(TIMER0_BASE, 0);//配置状态寄存器		清中断标志
	IOWR_ALTERA_AVALON_TIMER_PERIODH(TIMER0_BASE, (2500000 >> 16));//配置周期寄存器的高16bit,nios的时钟50MHz,周期是20ns,要计时50ms=50000000ns,50_000_000ns/20ns=2500000次,50MHz的时钟需要计数到250000次才能计数到50ms
	IOWR_ALTERA_AVALON_TIMER_PERIODL(TIMER0_BASE, (2500000 & 0xFFFF));//配置周期寄存器的低16bit	定时时间为50ms
	
//	启动定时器
	IOWR_ALTERA_AVALON_TIMER_CONTROL(TIMER0_BASE, 0x07);//	启动Timer0定时器

对注册中断函数alt_ic_isr_register()的参数进行简单的介绍:

  • TIMER0_IRQ_INTERRUPT_CONTROLLER_ID:是中断控制器标号,从system.h中复制。arm系统中一般有个中断控制器来管理中断,比如串口中断,定时中断等;
  • TIMER0_IRQ:硬件中断号,从system.h中复制
  • TIMER0_Interrupts:中断服务函数
  • NULL:这位参数是指向与设备驱动实例相关的数据结构体
  • 0:flag标志位,保留使用,一般我们置为0就可以;
--晓凡 2024610日于武汉书 
  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
NOS(Newcastle-Ottawa Scale)文献质量评价量表是一种常用的评价研究质量的工具。该量表根据研究设计的不同,将研究分为观察性研究和队列研究两类。观察性研究在评估中有8个项目,包括选择研究对象的合适性、研究中控制混杂因素的措施以及结果的可靠性等。而队列研究在评估中有9个项目,其中包括选择队列的合适性、研究中控制混杂因素的措施以及结果的可靠性等。 NOS文献质量评价量表通过对每个项目进行评分,计算总分来评估研究的质量。观察性研究的总分可达到9分,队列研究的总分可达到10分。得分越高,说明研究设计和方法越科学合理,研究的质量越高。 NOS文献质量评价量表的优势在于其评价项目全面,并且具有一定的标准化。它可以帮助研究人员系统地评估研究的质量,并在不同研究之间进行比较。评价研究的质量对于决策的制定和实践的指导具有重要意义,因此使用NOS文献质量评价量表可以提高决策和实践的科学性和可靠性。 然而,NOS文献质量评价量表也存在一些限制。首先,该量表只是评估研究的质量,不能判断其结果的可靠性和适用性。其次,评价标准可能存在主观性,不同评价者之间的评价结果可能存在差异。此外,该量表可能不适用于某些特殊领域的研究,需要结合领域特点进行调整和补充。 总之,NOS文献质量评价量表是一种常用的评价研究质量的工具。通过评估研究的不同方面,可以为决策和实践提供科学的依据。然而,该量表也存在一些限制,需要在使用时结合具体研究领域的特点进行调整和补充。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值