实验3 RTC定时器的应用及中断机制
2017-05-29 10:01
183 查看
实验目的及要求:
1、熟悉并掌握S3C2440的RTC部件功能,了解BCD码的使用;
2、熟悉并掌握RTC部件的相关寄存器格式;
3、熟悉并掌握RTC部件寄存器的初始化编程;
4、熟悉并掌握RTC部件的日期、时间的读写程序编写。
5、熟悉ARM9微处理器核的中断处理机制;
6、了解S3C2440芯片的中断控制结构及相关中断控制寄存器;
7、熟悉并掌握中断初始化程序编写;
8、熟悉并掌握S3C2440芯片中断源识别的编程;
9、熟悉并掌握中断服务程序编写
1、 RTC部件初始化
对RTC相关数据寄存器进行赋值
实验结果:
2、 数据输出问题
本次实验采用了S3C2440异步串行通讯,使用了GPIO的H端口进行发送。
3、 关于中断产生问题
设置RTC时间片计时器开中断,并且每0.5秒产生一个中断
实验结果:
4、中断服务程序设定问题:
由于RTC产生的是IRQ中断,所以为IRQ中断设置服务程序为RTC_TICK_ISR,本程序的作用为输出年月日时分秒,由于每0.5秒产生一个中断,所以产生了问题3的效果。
5、 关于为什么要用到while(1)程序
这段程序主要是为了防止整个程序结束,利用本程序去等待中断的产生。保证了程序可以持续的执行。
总结:
本次实验熟悉了RTC部件的编写,也对中断的产生和中断服务程序的具体编写有了更详细的了解,本次实验的输出使用了第八章的异步串行通信,这让我对第八章的知识更加的熟悉了。
1、熟悉并掌握S3C2440的RTC部件功能,了解BCD码的使用;
2、熟悉并掌握RTC部件的相关寄存器格式;
3、熟悉并掌握RTC部件寄存器的初始化编程;
4、熟悉并掌握RTC部件的日期、时间的读写程序编写。
5、熟悉ARM9微处理器核的中断处理机制;
6、了解S3C2440芯片的中断控制结构及相关中断控制寄存器;
7、熟悉并掌握中断初始化程序编写;
8、熟悉并掌握S3C2440芯片中断源识别的编程;
9、熟悉并掌握中断服务程序编写
1、 RTC部件初始化
U8 Y,MO,D,W,H,MI,S; //初始化RTC相关寄存器 year=17; month=5; day=16; wkday=1; hour=11; minute=01; second=56; if(year>1999)year=year-2000; Y=(U8)(year/10*16+year%10); MO=(U8)(month/10*16+month%10); D=(U8)(day/10*16+day%10); W=(U8)(wkday); H=(U8)(hour/10*16+hour%10); MI=(U8)(minute/10*16+minute%10); S=(U8)(second/10*16+second%10); rRTCCON = (U8)(rRTCCON |0x01); //进行RTC读写 rBCDYEAR=Y; //对年数据寄存器进行复赋值 rBCDMON=MO; //对月数据寄存器进行复赋值 rBCDDATE=D; //对日数据寄存器进行复赋值 rBCDHOUR=H; //对时数据寄存器进行复赋值 rBCDMIN=MI; //对分数据寄存器进行复赋值 rBCDSEC=S; //对秒数据寄存器进行复赋值 rRTCCON = (U8)(rRTCCON &0xfe);
对RTC相关数据寄存器进行赋值
实验结果:
2、 数据输出问题
本次实验采用了S3C2440异步串行通讯,使用了GPIO的H端口进行发送。
//初始化端口H的引脚功能为串口功能(UART0的功能引脚) rGPHCON = (rGPHCON | 0x000000aa) & 0xffffffaa; if (com==0) //com==0表示UART0 { while((rUTRSTAT0&0x4)!=0x4); WrUTXH0(data); }
3、 关于中断产生问题
rTICINT = 0xbf;
设置RTC时间片计时器开中断,并且每0.5秒产生一个中断
实验结果:
4、中断服务程序设定问题:
由于RTC产生的是IRQ中断,所以为IRQ中断设置服务程序为RTC_TICK_ISR,本程序的作用为输出年月日时分秒,由于每0.5秒产生一个中断,所以产生了问题3的效果。
INTS_OFF(); SetISR_Interrupt(IRQ_NUM, RTC_TICK_ISR, NULL); INTS_ON();
5、 关于为什么要用到while(1)程序
while(1) { }
这段程序主要是为了防止整个程序结束,利用本程序去等待中断的产生。保证了程序可以持续的执行。
总结:
本次实验熟悉了RTC部件的编写,也对中断的产生和中断服务程序的具体编写有了更详细的了解,本次实验的输出使用了第八章的异步串行通信,这让我对第八章的知识更加的熟悉了。
相关文章推荐
- 【中断】VxWorks下MPC860的中断处理机制及其应用
- STM32串口采样与仪表步进电机控制程序(主程序与串口程序,需用正点原子定时器中断实验程序模板)
- STM32单片机学习(5) 定时器中断实验
- STM32F4——定时器原理及应用(中断、输入捕获、PWM输出)
- cortex_m3_stm32嵌入式学习笔记(八):定时器中断实验(定时器的更新中断)
- ARM S3C2410X系统中断编程机制的研究与应用
- 【并发编程】Java中断机制——协作式中断含义及应用
- 使用STM32的systick定时器中断实现RTC工作过程出错
- 王爽 汇编 实验13:编写、应用中断进程
- 定时器的应用---中断方式---让8个LED灯,左右各4个来回亮
- mini2440 RTC实时时钟中断和报警功能实验
- 基于国嵌ok6410教学视频的“定时器0中断"实验
- lesson3 数码管静态显示及定时器和中断应用
- TQ2440 定时器中断--基本应用
- 王爽《汇编语言》实验13:编写、应用中断例程 - 打印字符串 解答
- VxWorks下MPC860的中断处理机制及其应用
- 定时器中断 流水灯实验
- VxWorks下MPC860的中断处理机制及其应用
- TI CC2530基础实验(定时器3中断方式——自由运行模式)
- 4、定时器中断实验