版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、.课程结业实验报告课程名称:嵌入式系统设计报告题目:基于 ARM的看门狗程序设计专业班级:通信 1601 班学号:学生姓名:指导教师:2017年6月20日.看门狗实验1 实验目的(1) 了解 WATCHDOG 的作用;(2) 掌握 WATCHDOG 定时器的使用方法。2 实验内容(1) 编程添加看门狗功能,观察看门狗作用;(2) 编程实现看门狗喂狗。3 实验基础知识(1) 看门狗功能:嵌入式系统运行时受外部干扰或系统错误, 程序有时会出现 “跑飞”,导致整个系统瘫痪。为防止这一现象的发生,在对系统稳定性要求较高的场合往往要加入看门狗电路( WATCHDOG)。看门狗的作用是当系统跑飞而进入死循
2、环时,恢复系统的运行。(2) 看门狗工作原理: 设本系统程序完整运转一周的时间是Tp,看门狗定是周期是Ti,Ti>Tp, 在程序运行一周后就修改定时器的计数值,只要程序正常运行,定时器就不会溢出,若由于干扰等原因是系统不能在Tp 时刻修改定时器的数值,定时器将在Ti 时刻溢出,引发系统复位,使系统得以重新运行,从而起到监控的作用在一个完整的嵌入式系统中或单片机小系统中通常都有看门狗定时器,且一般集成在处理器芯片中,看门狗实际上就是一个定时器,知识它在期满后将自动引起系统复位。(3) 看门狗定时器计数值:输入到计数器的时钟周期t_watchdog =1/(PCLK/Prescaler va
3、lue + 1)/ Division_factor)看门狗的定时周期T = WTCNT * t_watchdog(4)看门狗定时器寄存器控制寄存器( WTCON )数据寄存器( WTDAT )计数器寄存器( WTCNT )4 实验步骤.(1) 新建一个工程 watchdog,添加相应的文件,并修改 watchdog 的工程设置;创建watchdog.c并加入到工程watchdog 中,部分参考代码如下:/* functions */void rtc_tick_isr(void) _attribute_ (interrupt("IRQ");void rtc_int_isr(v
4、oid) _attribute_ (interrupt("IRQ");/ 设置寄存器参数#define WDT_ENABLE(0x01<<5)#define WDT_INT_ENABLE(0x01<<2)#define WDT_RST_ENABLE(0x01<<0)#define WDT_CLK_SEL(0X3<<3)/* 1/128 */#define WDT_PRE_SCALER(PCLK/1000000-1)<<8)/* 49void watchdog_init()rWTCNT = 8448 * 2;/* 设
5、置看门狗初始值*/rWTCON= WDT_ENABLE| WDT_RST_ENABLE| WDT_CLK_SEL| WDT_PRE_SCALER;/*打开看门狗*/void rtc_set_date(st_date* p_date)rRTCCON= 0x01;rBCDYEAR = p_date->year;rBCDMON= p_date->mon;rBCDDAY= p_date->day;rBCDDATE = p_date->week_day;rBCDHOUR = p_date->hour;rBCDMIN= p_date->min;rBCDSEC= p_da
6、te->sec;rRTCCON= 0x00;void rtc_get_date(st_date* p_date). void rtc_tick_init( char tick )Irq_Request(IRQ_TICK, rtc_tick_isr);rRTCCON= 0x0;/Noreset3,Merge BCDcounters2,BCD clockselectXTAL1, RTC Control disable0rTICNT= (tick&0x7f)|0x80;/*TICK中断使能 ,周期为 (1+tick)/128 秒 */Irq_Enable(IRQ_TICK);void
7、Main(void)int old_index ;st_date m_date;/*配置系统时钟*/ChangeClockDivider(1,1);/ 1:2:4ChangeMPllValue(0xa1,0x3,0x1);/ FCLK=202.8MHz/* 中断初始化*/Isr_Init();/* 初始化端口*/Port_Init();/* 初始化串口*/Uart_Init(0,115200);Uart_Select(0);/* 设置告警的时间及方式,0x41 表示使能RTC 告警,以及使能秒时钟告警*/rtc_alarm_set(&m_date, 0x41);rtc_tick_ini
8、t(127)/* 打开看门狗复位功能*/.watchdog_init();old_index = led_index;PRINTF(" 请在 2 秒内喂狗,否则系统将在约2 秒后复位 nn");while(1)if(old_index != led_index)/* 每隔一秒更新一次数据*/rtc_get_date(&m_date);old_index = led_index;void rtc_tick_isr(void)Irq_Clear(IRQ_TICK);/* 清除 TICK 中断*/*(U8*) 0x10000006) = 0x00;*(unsigned char*)0x10000004 = seg7tableled_index%10;led_index+;/* 喂狗*/rWTCNT = 8448 * 2;(2)注意设置运行设备,如图1.1 所示。.图 1.1 设置 Devices(3)编译 watchdog,下载程序并运行,通过超级终端看是否复位,实验结果如图1.2所示。图 1.2 实验结果(4) 删除“喂狗”代码,查看运行结果,如图 1.3 所示。.图 1.3运行结果5 实验总结通过本次实验我进一步了解了看门狗的工作原理和功能,以及看门狗寄存器定时周期的计算方法,同时也对嵌入式系统设计有了更加广泛且深刻的认识。基于 arm 的程序设计
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 智能井盖物联网工程师岗位招聘考试试卷及答案
- 城镇供水调度技师试卷及答案
- 超精密加工工程师考试试卷及答案
- 1.1长度和时间的测量 教案(表格式) 初中物理人教版八年级上册
- 区域围产期质量协同管理机制构建
- 2026及未来5年中国SNS行业市场全景调研及发展前景研判报告
- 2026年及未来5年中国车前子种植行业市场全景评估及投资前景展望报告
- 市政桥施工方案(3篇)
- 护坡种草施工方案(3篇)
- 公务员业务管理制度(3篇)
- 2026年烟台南山学院综合评价招生素质测试(笔试)模拟试题及答案(二)
- 模具生产车间6s管理制度范本
- 神经内镜垂体瘤课件
- 北京市石景山区2025-2026学年第一学期高三年级期末考试试卷英语试卷+答案
- 中国兽药典三部 2020年版
- 经络腧穴学知到智慧树章节测试课后答案2024年秋湖南中医药大学
- MOOC 中医与辨证-暨南大学 中国大学慕课答案
- 2024初中英语沪教版单词表默写版(七-九年级)中考复习必备
- 传媒文化公司人力资源工具表
- 回弹法-混凝土强度自动计算表
- 北京市西城区2021学年上学期高一年级期末考试生物试卷
评论
0/150
提交评论