⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 highrestimer范例.txt

📁 nios范例(含源代码)
💻 TXT
字号:
/*
 * 声明:本范例源于书籍‘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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -