一、实验内容
(1) 学习和理解ADC模块“ADC_Sw_Trigger”
【1】 分析该程序的功能;
【2】 阅读参考资料MK10DN32VLH5.PDF中Chapter31,理解和分析函数adcInit()和
adcGet()的功能;
(2) 学习和理解看门狗“External watchdog monitor”“Software watchdog”
【1】 分析“External watchdog monitor”的功能
【2】 分析“Software watchdog”的功能
【3】 阅读参考资料MK10DN32VLH5.PDF中Chapter23,思考这两个程序有什么相同点和不同点。
二、实验目的
进一步熟悉keil开发环境,阅读和学习数据手册,学习并理解ADC,看门狗功能原理。
嵌入式系统是现代电子设备中的核心组成部分,它将计算能力与特定应用相结合。在本实验"嵌入式原理与实践(实验四)"中,主要关注的是两个关键的嵌入式组件:ADC(模数转换器)和看门狗(Watchdog Timer)。实验旨在加深对keil开发环境的熟悉,掌握数据手册的阅读方法,以及理解ADC和看门狗的工作原理。
1. **ADC模块**:
ADC(Analog-to-Digital Converter)是将模拟信号转化为数字信号的关键部件。在这个实验中,ADC模块使用的是"ADC_Sw_Trigger",意味着ADC的启动是通过软件触发的。ADC初始化函数`adcInit()`负责开启ADC的时钟,配置低功耗模式,设定通道模式和时钟分频等参数。而`adcGet()`函数则是启动ADC转换,获取转换后的数字值并将其输出。在通信系统中,ADC的这一过程对于将连续的模拟信号如声音、温度等转换为计算机能够处理的离散数字信息至关重要。
2. **看门狗**:
看门狗是一种用于监控嵌入式系统运行状态的机制,分为外部看门狗(External watchdog monitor)和软件看门狗(Software watchdog)。外部看门狗通常是一个独立的硬件组件,其功能是在预设的时间间隔后如果没有收到喂狗(重置计数器)信号,系统将自动重启。这在系统出现故障或死锁时能确保系统的稳定性和可靠性。而软件看门狗则由软件控制,功能相似,但其喂狗时间和行为可编程。实验中,外部看门狗默认200ms未喂狗会导致系统重启,而软件看门狗除了这个功能外,还可以被选择性地禁用。
两者的相同点在于,它们都设定了一个时间窗口,如果在这个时间内没有收到喂狗信号,系统将会复位。同时,它们都有设置窗口的高低值,允许调整看门狗的响应时间。不同之处在于,软件看门狗可以被禁用,而外部看门狗通常不具备这样的选项。
3. **思考题解答**:
看门狗就像一个系统守护者,当系统进入异常状态时,它能强制系统恢复到初始状态,以防止系统长时间无响应或进入不期望的运行模式。其工作原理类似于计数器,若未在规定时间内重置,计数器溢出则导致系统复位。
通过这次实验,学生不仅了解了keil开发环境的使用,还深入学习了ADC和看门狗的硬件操作和软件接口。实验过程中的理论结合实践有助于巩固这些概念,为未来在嵌入式系统设计和调试中遇到类似问题提供了基础。实验心得也表明,这种实践性的学习方法对提升技能和理解复杂系统原理非常有益。