收藏 分享(赏)

NIOS TIMER中断的相关笔记.docx

上传人:buyk185 文档编号:12411796 上传时间:2021-12-12 格式:DOCX 页数:4 大小:46.98KB
下载 相关 举报
NIOS TIMER中断的相关笔记.docx_第1页
第1页 / 共4页
NIOS TIMER中断的相关笔记.docx_第2页
第2页 / 共4页
NIOS TIMER中断的相关笔记.docx_第3页
第3页 / 共4页
NIOS TIMER中断的相关笔记.docx_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

1、NIOS TIMER 中断的相关笔记NIOS TIMER 中断实验一、开发环境及实验目的(1 ) 、开发环境: 硬件:DE270 开发板软件:Quartus II 9.0sp2 Web EditionNIOS II EDC 9.0 NIOS IDE(2 ) 、实验目的: 深入理解 TIMER 中断,学会写 TIMER 中断函数,学会调用 TIMER 中断二、相关知识、资料(1 )状态寄存器:status:TO: 计数器递减至 0 时置 1,并保持,直到软件修改为 0RUN: 定时器运行时为 1,停止时为 0,不能被软件改写(2 )控制寄存器(control):ITO: 若为 1 则 TIMER

2、 递减至 0 时发出中断,否则中断被屏蔽CONT: 为 1 时定时器连续工作,为 0 时定时器只工作一次Start、 stop: 分别用来启动定时器和停止定时器,只需置 1,不能同时置 1(3 )周期计数器:Periodl /set interrupteralt_u8 i=0;int main(void)printf(“n main function! n“);Timer_ISR_Init(); /set interrupter functionwhile(1)usleep(10000);return 0;/Timer1alt_u8 LED1=0;static void Timer1_Irq_

3、Handler(void *context,alt_u32 id)printf(“n Timers1 INTERRUPT! n“);LED1+;IOWR_ALTERA_AVALON_PIO_DATA(LED1_BASE,LED1);IOWR_ALTERA_AVALON_TIMER_STATUS(TIMER1_BASE,0);IOWR_ALTERA_AVALON_TIMER_CONTROL(TIMER2_BASE,0x07);/Timer2alt_u8 LED2=0;alt_u8 K;alt_u32 Timer_Prd = 25000000,12500000,6250000,3125000;st

4、atic void Timer2_Irq_Handler(void *context,alt_u32 id)printf(“n Timers2 INTERRUPT! n“);LED2=(LED2+1)%4;IOWR_ALTERA_AVALON_TIMER_PERIODL(TIMER2_BASE,Timer_PrdLED2);IOWR_ALTERA_AVALON_TIMER_PERIODH(TIMER2_BASE,0);IOWR_ALTERA_AVALON_PIO_DATA(LED2_BASE,LED2);K=IORD_ALTERA_AVALON_PIO_DATA(K1_BASE) if(K)I

5、OWR_ALTERA_AVALON_TIMER_CONTROL(TIMER3_BASE,0x07);elseIOWR_ALTERA_AVALON_TIMER_CONTROL(TIMER3_BASE,0x0a);IOWR_ALTERA_AVALON_TIMER_STATUS(TIMER2_BASE,0);/Timer3alt_u8 LED3=0;static void Timer3_Irq_Handler(void *context,alt_u32 id)printf(“n Timers3 INTERRUPT! n“);LED3+;IOWR_ALTERA_AVALON_PIO_DATA(LED3

6、_BASE,LED3);IOWR_ALTERA_AVALON_TIMER_STATUS(TIMER3_BASE,0);static void Timer_ISR_Init(void)printf(“n INTERRUPTer function! n“);/timer1IOWR_ALTERA_AVALON_TIMER_STATUS(TIMER1_BASE,0);alt_irq_register(TIMER1_IRQ,NULL,Timer1_Irq_Handler);IOWR_ALTERA_AVALON_TIMER_CONTROL(TIMER1_BASE,0x01);/timer2IOWR_ALT

7、ERA_AVALON_TIMER_STATUS(TIMER2_BASE,0);alt_irq_register(TIMER2_IRQ,NULL,Timer2_Irq_Handler);IOWR_ALTERA_AVALON_TIMER_CONTROL(TIMER2_BASE,0x01);/timer3IOWR_ALTERA_AVALON_TIMER_STATUS(TIMER3_BASE,0);alt_irq_register(TIMER3_IRQ,NULL,Timer3_Irq_Handler);IOWR_ALTERA_AVALON_TIMER_CONTROL(TIMER3_BASE,0x01)

8、;(英文太差,写注释写的很差,估计就自己能看懂,见笑)四、实验心得:部分资料写在实验前的 TIMER 资料中总结在 NIOS 中 C 程序编写所应有的格式如上例所示:在一个时钟初始化中需写以下三句话:1、 TIMER 状态寄存器设置:开启 TIMERIOWR_ALTERA_AVALON_TIMER_STATUS(TIMER1_BASE,0);2、中断注册,函数内为:中断号,空指针,中断函数alt_irq_register(TIMER1_IRQ,NULL,Timer1_Irq_Handler);3、 timer 控制寄存器设置:开启 TIMER 中断信号发送IOWR_ALTERA_AVALON_TIMER_CONTROL(TIMER1_BASE,0x01);ISR 书写:若在初始化内并没有将 TIMER 声明为循环工作,则需要在其中加入重启中断:IOWR_ALTERA_AVALON_TIMER_STATUS(TIMER1_BASE,0);

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 建筑环境 > 建筑资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报