原创 PIC24HJ单片机自学笔记_定时器

2013-12-20 10:24 1709 12 15 分类: MCU/ 嵌入式 文集: PIC24HJ单片机自学笔记

PIC24HJ系列的单片机提供三种类型的定时器:

A型:定时器1
B型:定时器2,4,6,8
C型:定时器3,5,7,9
每一种都含有如下的寄存器:
1、16位定时计数寄存器:TMRx
2、16位周期寄存器:PRx
3、16位控制寄存器:TxCON
每一个定时器都含有跟中断有关的如下位:
中断使能,标志,优先级
A型定时器:能够操作在32K的内部时钟,可以通过外部时钟工作在异步模式,外部时钟可以在内部进行分频同步。
BC两种可以组成一个32位的计数器,C还可以触发一个AD转换。
A型:控制寄存器有如下控制位:
使能,在闲置模式下继续,定时器的GATED TIME累加位,输入时钟预分频位,外部时钟同步选择位,时钟选择(外部还是内部分频)。
B型:使能,在闲置模式下继续,定时器的GATED TIME累加位,输入时钟预分频位,32位模式选择,外部时钟同步选择位。
C型:……32位模式选择这个位没有,其余同B型
 
操作模式:
定时器模块可以工作在下面的几种模式下:
定时器模式
gated time模式
同步计数模式
异步技术模式(仅用于A型)
上面两种的时钟来自内部指令周期,后面两种用外部的时钟。
定时器模式的配置:
TCS:时钟源配置
TSYNC:同步配置位(仅用于A型)
TGATE:定时器GATE控制位
几种模式可以通过如下的设置来实现:
   20131219062055333.jpg
工作在定时器模式下的编程如下:
配置定时器去使能,先配置
选择内部时钟
关掉Tgate
选择分频
清定时器值
写入周期值(TIMER和TR做比较)
 
设置中断优先级
清中断标志
使能中断
 
开启定时器
编写中断服务程序
 
Tgate模式下,程序编写方法和上面相同,时序有一点不同,如下:
  20131219062203157.jpg
外部时钟为Gate输入,一个上升沿时,定时器开启,下降沿时,发生一次中断,定时器暂停。下一次上升沿时,计数器继续走……
同步模式:
同步模式下,外部的时钟通过分频得到一个内部时钟,配置时:
A模式配置为同步,BC的外部时钟本来就是同步的。
选择TCS来设置外部时钟源
这里注意,睡眠模式下,外部时钟源不可用。
这里,只是时钟源采用外部,编程基本上和上面的流程是一样的。
 
异步模式:
异步模式下,可以使用辅时钟来计时。
定时器在睡眠模式下,仍然可用。
 
中断:
中断通过中断使能,标志位和优先级来设置,中断标志在中断程序中记得要清空。
可以通过如下的程序来进行配置,这个程序在编译器中已经自带:

void ConfigIntTimer1(unsigned int config);

此函数中,清空了标志,使能中断和配置输出参数的优先级。
 
如何配置成32位定时器:
32位的定时器通过如下组成:
  20131219062231626.jpg20131219062257343.jpg
这里注意,这种情况下的配置,通过C型来配置,B型进行的配置无效。
还有一个值得注意的是读写顺序,如下:
  20131219062322649.jpg
具体的程序编写流程可以参照下面的示范程序:
  20131219062358182.jpg
另外还有Tgate和同步模式,跟16位的使用是一样的。
还有一种情况,就是定时器在节能模式下的应用。
很显然,在睡眠模式下,系统时钟停止工作,所以基于内部时钟的同步也同时工作,只有A模式的异步时钟可用,此时选用辅助时钟的话,A型还可以继续使用。
在IDLE 模式下,如果设置了在idle模式下继续可用的位使能,则模块可以继续工作。
 
外设需要使用定时器的情况:
  • 输入捕捉和输出比较可以用定时器作为时钟源,具体在具体的外设介绍中进行设置。
  • C型的定时器可以作为AD转换的触发信号
  • 用外部时钟作为定时器的时钟,可以做为一个外部中断
  • 设置为外部时钟或者Tgate模式时,引脚需要配置方向,而作为定时器时无需配置方向
 
在异步模式下,使用定时器1的资料,可以参考如下的官方文档:
http://ww1.microchip.com/downloads/en/DeviceDoc/70244B.pdf
 
 
 
 
 
 
 
 
 
 
 
 

PARTNER CONTENT

文章评论3条评论)

登录后参与讨论

用户403664 2013-12-18 17:16

用插入图片功能啊~

用户1714690 2013-12-18 17:01

是啊,贴图真麻烦

用户403664 2013-12-17 11:52

图片没出来
相关推荐阅读
用户1714690 2015-08-13 11:42
史上最高性价比PCI运动控制卡:基于MCX314AL,提供开发包!
  小日本的3轴插补运动控制卡芯片不是一般的贵啊,看看下面的某宝提供的报价:常用的基于PCI的运动控制卡已经在国内大规模应用,主要有如下问题: 所以基于这种芯片的...
用户1714690 2015-08-03 15:06
【博客大赛】TMC262步进伺服开发笔记1-选定STM32F103C8T6做为控制器
  现在手里已经有了两个方案: 一个STC单片机的方案,这个是网上一个工程师设计的,方案的程序很简单,简单的进行参数配置,然后驱动电机转动就OK,完全没有发挥出TMC262的优势。 一...
用户1714690 2015-08-03 15:06
【博客大赛】TMC262步进伺服开发笔记2-影响步进电机行为的几个参数
电机设置,首先得了解哪些参数会对电机的行为有直接或者间接的影响。 参数 描述 设置 电机...
用户1714690 2014-12-26 17:56
自己动手设计一款MP3音乐播放器-创建自己的公众号
    罗永浩今年的表现确实让各界大跌眼镜,这几个月销声匿迹也是情理之中的事情,我们确实该吐槽他的锤子手机,可是他的死磕精神呢? ...
用户1714690 2014-12-13 01:19
自己动手设计一款MP3音乐播放器:SDIO通信之物理层描述1
物理层一共有以下的内容需要了解 存储卡系统的内容,包括总线,卡容量等,一些命令格式,响应格式等内容,这个是必须完全理解。 SD卡的功能描述,包括复位,初始化和识别流程,读写...
用户1714690 2014-12-12 11:51
自己动手设计一款MP3音乐播放器
 最近打算利用晚上的时间来死磕一款MP3,之前一直做的都是工控之类的项目,并且偏向于硬件,最近打算做一款有意思一点的产品,利用晚上的时间来做,项目可能会拖的比较久。   当然也不能自己埋头...
我要评论
3
12
关闭 站长推荐上一条 /3 下一条