这篇应用手册主要介绍W7100A单片机的内部定时器/计数器、看门狗定时器和基本的示例程序。今天我们先介绍前半部分内容,欢迎大家的留言讨论:
简介
这篇应用手册主要介绍W7100A单片机的内部定时器/计数器、看门狗定时器和基本的示例程序。更多的详细信息,请参考W7100用户手册中与W7100A定时器/计数器相关的寄存器。
具体的例子将会在后面利用W7100A的定时器/计数器实现GPIO端口P0_3和P0_4翻转时讲到。由于iMCU7100EVB开发板的P0_3、P0_4和LED相连接,利用简单的代码实现P0_3和LED连接,就可以使LED闪烁。由于时钟的工作频率非常快,LED灯看起来像是一直在亮。文中所有的代码都是用C语言写的,并且基于Keil编译器实现。(注意:因为W7100A QFN 64引脚的封装和LQFP 100引脚的封装不同,用户必须确认GPIO引脚可用。)
2. 定时器0/计数器0
本章主要介绍定时器/计数器的结构,图2.1为模式0下的定时器0/计数器0的结构图:预分频的8位定时器/计数器。TL0的5位用来预分频,TH0的8位用来指示定时器/计数器。从图中我们可以得知,88.4736MHZ是内部的时钟频率,T0是外部的计数输入,TM0D.3是软件门控制位。同时,GATE0作为硬件门控制引脚,TCON.4是定时器0的启动位。
图2.2 是定时器0/计数器0模式1: 16位定时器/计数器的结构图;它能够利用TL0的8位和TH0的8位实现16位的定时/计数。
图2.3为定时器0/计数器0模式2的结构图: 自动重装的8位定时器/计数器。如果在模式2下发生中断,则重新装载保存的TH0的值到TL0寄存器中。在中断发生时,输入TL0的初始值,TH0的输入值就会重新装载。
图2.4 所示为定时器0/计数器0 模式3下的结构图: 2个8位定时器/计数器。在这种模式下,定时器1和定时器0同时使用TH0和TL0寄存器进行操作。根据定时器0和定时器1的设定分别发生不同的定时/计数事件。TCON.6是定时器1的启动位。
下面的章节将会介绍上图中定时器/计数器0的示例代码。
2.1 定时器0 8位定时器 软件门控
通过TMOD寄存器将定时器0设置为模式0下的8位定时器,然后利用TH0和TL0设置其中断发生循环周期。设置完成后,将TR0置位来启动定时器0。如果发生中断,通过中断处理函数复位定时器0中断标志位;然后执行用户设定的中断事件。在本文档中,是对Port0.3端口进行取反操作。
2.2 定时器0 8位定时器 硬件门控
所有的步骤基本和2.1节中的相同,除了TMOD寄存器的硬件门控部分。在这种模式下,定时器0只有在GATE0引脚被置位时才能执行。
2.3 定时器0 8位计数器 软件门控
通过TMOD寄存器将定时器0设置为模式0下的8位计数器、软件门控方式,并且利用TH0和TL0设置中断循环发生周期。在设置完成后,置位TR0来启动计数器0。在确认T0引脚作为输入后,开始计数。如果发生中断,利用中断处理函数复位定时器0的中断标志位,然后执行用户设定的事件。在本文档中,对Port0.3进行取反操作。
2.4 定时器0 8位计数器 硬件门控
所有的步骤都和2.3节中的基本相同,除了TMOD寄存器的硬件门控部分。在这种模式下,定时器0只有在GATE0引脚置位时才能执行操作。
2.5 定时器0 16位定时器 软件门控
通过TMOD寄存器,设置定时器0处于模式1、16位定时器、软件门控方式,然后利用TH0和TL0设定中断发生循环周期。在设置完成后,通过置位TR0位启动定时器0。如果发生中断,执行中断处理函数复位定时器0中断标志位;然后执行用户设定的事件。在本文档中,对Port0.3端口进行取反操作。
2.6 定时器0 16位定时器 硬件门控
所有的步骤和2.5节中的基本相同,除了TMOD寄存器的硬件门控部分。在这种模式下,定时器0只有在GATE0引脚被置位时才可以执行操作。
2.7 定时器0 16位计数器 软件门控
通过TMOD寄存器将定时器0设置为16位计数器,软件门控方式,然后利用TH0和TL0定义中断事件循环周期大小。在设置完成后,置位TR0来启动计数器0。在确认T0为输入引脚后,启动计数功能。如果中断发生,通过中断处理函数复位定时器0中断标志位;然后执行用户设定的事件。在本文档中,对Port0.3端口进行取反操作。
2.8 定时器0 16位计数器 硬件门控
所有的步骤和2.7节中的基本相同,除了TMOD寄存器的硬件门控部分。在这种模式下,定时器0只有在GATE0引脚被置位时才能执行操作。
2.9 定时器0 8位自动重装定时器 软件门控
通过TMOD寄存器将定时器0设置为8位自动重装、软件门控方式,然后通过TH0和TL0定义中断发生循环周期大小。设置TH0的重装值,并且初始化TL0的值。在设置完成后,置位
TR0位启动定时器0。在确认T0为输入引脚后开始计数。如果发生中断,调用中断处理函数复位定时器0中断标志位,然后执行用户设定的事件。在本文档中,对Port0.3端口进行取反操作。
2.10 定时器0 8位自动重装定时器 硬件门控
所有的步骤和2.9的基本相同,除了TMOD寄存器的硬件门控部分。在这种模式下,只有GATE0引脚被置位时定时器0才能执行操作。
这是本文的第一部分,后续部分我们将在以后的博文为大家一一介绍,希望对大家能有所帮助。欢迎大家的留言讨论。
更多有关W7100的博文请看这里:
W7100学习笔记 -W7100部分固件(firmware)解析
什么是API函数以及如何使用W7100A进行初始化(TCPIPCore)?(二)
更多有关W7100A的博文请看这里: