



全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
NIOSTIMER中断的相关笔记NIOS TIMER中断实验一、开发环境及实验目的(1)、开发环境: 硬件:DE270开发板软件:Quartus II 9.0sp2 Web Edition NIOS II EDC 9.0 NIOS IDE(2)、实验目的: 深入理解TIMER中断,学会写TIMER中断函数,学会调用TIMER中断 二、相关知识、资料 (1)状态寄存器:status:TO: 计数器递减至0时置1,并保持,直到软件修改为0RUN: 定时器运行时为1,停止时为0,不能被软件改写(2)控制寄存器(control): ITO: 若为1则TIMER递减至0时发出中断,否则中断被屏蔽 CONT: 为1时定时器连续工作,为0时定时器只工作一次 Start、stop: 分别用来启动定时器和停止定时器,只需置1,不能同时置1(3)周期计数器:Periodl & Periodh(4)定时器快照寄存器:(Snapl & Snaph)NIOS中访问定时器头文件:Altera_Avalon_timer_regs.h该文件:1、读写状态寄存器:IORD_ALTERA_AVALON_TIMER_STATUS(base)IOWR_ALTERA_AVALON_TIMER_STATUS(base,data)2、读写控制寄存器:IORD_ALTERA_AVALON_TIMER_CONTROL(base)IOWR_ALTERA_AVALON_TIMER_CONTROL(base,data)3、读写周期寄存器IORD_ALTERA_AVALON_TIMER_PERIODL(base)IOWR_ALTERA_AVALON_TIMER_ PERIODL (base,data)IORD_ALTERA_AVALON_TIMER_ PERIODH (base)IOWR_ALTERA_AVALON_TIMER_ PERIODH (base,data)4、读写计数器快照寄存器IORD_ALTERA_AVALON_TIMER_SANPL(base)IOWR_ALTERA_AVALON_TIMER_ SANPL (base,data)IORD_ALTERA_AVALON_TIMER_ SANPH (base)IOWR_ALTERA_AVALON_TIMER_ SANPH(base,data)三、试验内容(内容为大量截图新浪博客不方便上传,懒的上传了,仅上传NIOS源程序)#include #include #include #include #include system.h#include altera_avalon_pio_regs.h#include altera_avalon_timer_regs.h#include alt_types.h#include sys/alt_irq.h static void Timer_ISR_Init(void); /set interrupter alt_u8 i=0;int main(void) printf(n main function! n); Timer_ISR_Init(); /set interrupter function while(1) usleep(10000); return 0; /Timer1alt_u8 LED1=0; static void Timer1_Irq_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;static 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) & 0x01; if(K) IOWR_ALTERA_AVALON_TIMER_CONTROL(TIMER3_BASE,0x07); else IOWR_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_BASE,LED3); IOWR_ALTERA_AVALON_TIMER_STATUS(TIMER3_BASE,0); static void Timer_ISR_Init(void) printf(n INTERRUPTer function! n); /timer1 IOWR_ALTERA_AVALON_TIMER_STATUS(TIMER1_BASE,0); alt_irq_register(TIMER1_IRQ,NULL,Timer1_Irq_Handler); IOWR_ALTERA_AVALON_TIMER_CONTROL(TIMER1_BASE,0x01); /timer2 IOWR_ALTERA_AVALON_TIMER_STATUS(TIMER2_BASE,0); alt_irq_register(TIMER2_IRQ,NULL,Timer2_Irq_Handler); IOWR_ALTERA_AVALON_TIMER_CONTROL(TIMER2_BASE,0x01); /timer3 IOWR_ALTERA_AVALON_TIMER_STATUS(TIMER3_BASE,0); alt_irq_register(TIMER3_IRQ,NULL,Timer3_Irq_Handler); IOWR_ALTERA_AVALON_TIMER_CONTROL(TIMER3_BASE,0x01);(英文太差,写注释写的很差,估计就自己能看懂,见笑)四、实验心得:部分资料写在实验前的TIMER资料中总结在NIOS中C程序编写所应有的格式如上例所示:在一个时钟初始化中需写以下三句话:1、TIMER状态寄存器设置:开启TIMERIOWR_ALTERA_AVALON_TIMER_STATUS(TIMER1_BASE,0);2、中断注册,函数内为:中断号,空指针,中断函数alt_irq_register(TIMER1_IRQ,NULL,Timer1_Irq_Handler);3
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 举办线上义诊活动方案
- 办公终端安全管理制度
- 年产家居配件9000万件生产项目环境影响评价报告
- 公司手法传真管理制度
- 公司科研项目管理制度
- 小区装修工具管理制度
- 公司外出安全管理制度
- 小区住户卫生管理制度
- 小学图书审核管理制度
- 卖场治安防范管理制度
- 2025年人教版中考英语复习核心词汇1600词+英汉【2022新课标】
- dq加盟合同范例
- 网球运动的损伤与预防
- 公司授权另一个公司委托书模板
- 《挖掘机培训教程》课件
- 2025年春新北师大版生物七年级下册课件 第11章 人体的运动 第1节 人体的骨骼
- 《结直肠癌中医治疗》课件
- 《绿色建筑咨询服务》课件
- 变电站工作危险点控制措施
- 人教部编版八年级下册历史期末试卷
- 2024版全新大学生职业生涯规划书课件
评论
0/150
提交评论