原创 NIOS II学习五~~system timer

2010-4-23 16:18 2996 8 9 分类: FPGA/CPLD

很精确的定时   1S变化一次  


#include "system.h"                     // SOPC Builder配置后的存储映射头文件 
#include "altera_avalon_pio_regs.h"     // PIO核的存储映射头文件 
#include "alt_types.h"                  // Altera的数据类型 
#include "sys/alt_alarm.h"              // Interval Timer核的驱动头文件 
#include "unistd.h"                     // NULL 
// 用户回调函数 
alt_u32 timer_CallBackFunc(void* context);  
alt_alarm timer_addr;                   // 指向结构体alt_alarm的指针 
alt_u32 ticks_num = 1000;                // 100 ticks  * 1 ms/tick = 100 ms     
int main() 

/* 
 * 函数功能:启动sys_clk_timer服务 
 * 函数备注:#include "sys/alt_alarm.h" 
 * 入口参数:timer_addr,指向结构体alt_alarm的指针 
 *        ticks_num,每隔ticks_num执行一次回调函数 
 *        timer_CallBackFunc,用户回调函数 
 *        context,传给用户回调函数的参数,此处为NULL 
 */
 alt_alarm_start(&timer_addr, ticks_num, timer_CallBackFunc, NULL); 
 while(1); 
 return 0; 
 }  


  * 函数功能:用户回调函数 


 * 函数备注:用户自己编写 


 * 入口参数:*context, 从alt_alarm_start()传来的参数 


* 出口参数:ticks_num, sys_clk_timer服务的周期数 


 */


alt_u32 timer_CallBackFunc(void* context) 



  static alt_u8 temp = 0;               // static 定义时,只可赋值一次 
  IOWR_ALTERA_AVALON_PIO_DATA(LED_BASE, temp); 
  temp = ~temp;                         // 翻转temp 
  return ticks_num;                     // 返回下一次sys_clk_timer服务的ticks_num 
}

文章评论1条评论)

登录后参与讨论

用户1505147 2010-5-2 20:43

期待楼主继续出后续的学习教程
相关推荐阅读
用户1623314 2011-01-22 14:52
STM32入门系列教程之十五《如何使用SecureCRT串口终端软件》
attachment download...
用户1623314 2011-01-22 14:51
STM32入门系列教程之十四《STM32的USB下载调试》
attachment download...
用户1623314 2011-01-22 14:50
STM32入门系列教程之十三《点亮LCD液晶屏》
attachment download...
用户1623314 2011-01-22 14:49
STM32入门系列教程之十二《实时时钟RTC编程》
attachment download...
用户1623314 2011-01-22 14:48
STM32入门系列教程之十一《Systick编程》
attachment download...
用户1623314 2011-01-22 14:47
STM32入门系列教程之十《定时器与蜂鸣器》
attachment download...
EE直播间
更多
我要评论
1
8
关闭 站长推荐上一条 /6 下一条