/******************************************************************** * 文 件 名:SysTimer_test.c * 功 能:利用系统时钟服务产生1s的周期性事件,并借此控制LED闪烁,在做实验时首先在System Library设置页中,在System clock timer下拉列表框中选择一个系统时钟.* * 说 明:观察LED闪烁效果。 ********************************************************************/ #include #include "system.h" //包含基本的硬件描述信息 #include "altera_avalon_pio_regs.h" //包含基本的IO寄存器信息 #include "alt_types.h" //Altera定义的数据类型 #include "sys/alt_alarm.h" //系统时钟服务头文件 /****************************************************************** * 与硬件相关的宏定义,用户根据实际情况修改 ******************************************************************/ // 用户添加并命名的外设基地址,在SYSTEM中定义,用户需要根据不同的命名来修改此处 #ifndef LED_PIO_BASE //这是LED_PIO核的基地址 #define LED_PIO_BASE 0xffffffff //user's definition here #endif #if LED_PIO_BASE == 0xffffffff #error "No definition of LED_PIO core...\n" #endif #define LEDCON 0xff static alt_alarm alarm; //按调用API函数规定定义的变量 static unsigned char led = 0xff; /******************************************************************** * 名 称:my_alarm_callback * 功 能:按调用规定系统时钟回调函数,在该函数中实现用户功能 * 入口参数:context,系统传给回调函数的参数 * 出口参数:返回下一次的系统时钟服务的周期值 ********************************************************************/ alt_u32 my_alarm_callback (void* context) { if(led == 0xff){ led = 0x00; }else{ led = 0xff; } IOWR_ALTERA_AVALON_PIO_DATA(LED_PIO_BASE,led); //操作IO口 return alt_ticks_per_second(); } /******************************************************************** * 名 称:InitPIO() * 功 能:初始化LED_PIO为输出,其余输入,屏蔽中断,清边沿捕获寄存器 * 入口参数:无 * 出口参数:无 ********************************************************************/ void InitPIO(void) { /* LED_PIO为输出,其余输入 */ IOWR_ALTERA_AVALON_PIO_DIRECTION(LED_PIO_BASE, LEDCON); /* 禁止所有PIO中断 */ IOWR_ALTERA_AVALON_PIO_IRQ_MASK(LED_PIO_BASE, 0x00); /* 清清边沿捕获寄存器 */ IOWR_ALTERA_AVALON_PIO_EDGE_CAP(LED_PIO_BASE, 0x00); } int main() { InitPIO(); IOWR_ALTERA_AVALON_PIO_DATA(LED_PIO_BASE,0xff); //灭LED printf("test alarm...\n"); //打印提示信息 printf("alt_ticks_per_second() is %ld",alt_ticks_per_second()); if (alt_alarm_start (&alarm,alt_ticks_per_second() //启动系统时钟服务 ,my_alarm_callback,NULL) < 0) { printf ("No system clock available\n"); } while(1); //等待时钟事件发生 return 0; }

最新文章

  1. $(document).ready()方法和window.onload区别
  2. Tomcat-MAC下添加Tomcat环境并运行
  3. ModernUI教程:主题资源引用
  4. NYOJ题目124中位数
  5. IOS中程序如何进行推送消息(本地推送,远程推送)2(上)
  6. JavaScript字符串&amp;数字间转换
  7. laravel elixir
  8. html里那些细节
  9. TensorFlow 基本使用
  10. (转)《深入理解java虚拟机》学习笔记3——垃圾回收算法
  11. MATLAB conv2卷积的实现
  12. Keil C51程序设计中几种精确延时方法
  13. C# VS 面向对象基础(一)
  14. 新浪云-PHP实现上传原图,缩略图
  15. config -导航
  16. Micropython TPYBoard ADC的使用方法
  17. SQL Server 数据库状态选项-用户使用
  18. socket.io诡异的问题
  19. Navicat Premium 连接oracle ORA-01017:用户名/口令无效;登陆被拒绝
  20. Ubuntu14.04下如何安装TensorFlow

热门文章

  1. VMware该虚拟机似乎正在使用中。如果该虚拟机未在使用,请按“获取所有权(T)”按钮获取它的所有权
  2. SSM+layui实现增删改查
  3. vue学习指南:第十二篇(详细) - Vue的 路由 第二篇 ( 路由按需加载(懒加载))
  4. CodeForces 1141B
  5. nginx下载,安装,基础命令,和代理tomcat例子理解
  6. React的组件化
  7. codis安装以及启动
  8. RPA项目所遇知识点
  9. ignoreContentAdaptWithSize
  10. DVWA全级别之Insecure CAPTCHA(不安全的验证码)