highrestimer

来自「FPGA中niosII的应用实例--包括PIO」· 代码 · 共 58 行

TXT
58
字号
/*
 * 声明:本范例源于书籍‘NiosII软件架构解析’
 * 作者:蔡伟纲
 * 博客地址: http://NiosII.cublog.cn 
 *
 * 一、功能: Timestamp驱动演示代码.
 * 二、该源码需要硬件开发板的支持,因为ISS对Timestamp定时器的模拟还不够精确
 *     如果将该源码运行于ISS模式下,将得不到精确的结果;
 * 三、运行前提:
 *    1. 选择包含JTAG_UART和定时器的NiosII系统(ptf文件);
 *	     其中的定时器要求:
 *        (1) 具备可写的period寄存器;
 *        (2) 具备可读的snapshot寄存器;
 *    2. 在系统库属性中完成下面的配置:
 *        (1) 将stdout映射到JTAG_UART;
 *        (2) 将定时器映射为Timestamp时钟;
 */
#include <stdio.h>
#include "system.h"
#include "sys/alt_timestamp.h"
#include "alt_types.h"
#include "priv/alt_busy_sleep.h"

void func1(void)
{
  alt_busy_sleep(1000);//Unit: us;
}

void func2(void)
{
  alt_busy_sleep(5000);//Unit: us;
}

int main (void)
{
  alt_u32 time1;
  alt_u32 time2;
  alt_u32 time3;
  
  if(alt_timestamp_start() < 0)
  {
    printf ("No timestamp device available\n");
  }
  else
  {
    time1 = alt_timestamp();
    func1(); /* first function to monitor */
    time2 = alt_timestamp();
    func2(); /* second function to monitor */
    time3 = alt_timestamp();
    alt_u32 Elapsed_Time1 = (time2-time1)/(ALT_CPU_FREQ/1000000);
    printf ("Elapsed time in func1 = %d us\n", Elapsed_Time1);
    alt_u32 Elapsed_Time2 = (time3-time2)/(ALT_CPU_FREQ/1000000);
    printf ("Elapsed time in func2 = %d us\n", Elapsed_Time2);
  }
  return 0;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?