当前位置: 首页 > news >正文

红谷滩园林建设集团网站刷神马关键字排名软件

红谷滩园林建设集团网站,刷神马关键字排名软件,深圳seo推广,类似WordPress的Python文章目录 1.片内外设I/O2.定时器简介3.定时器1寄存器4.定时器1操作自由运行模式模模式正计数/倒计数模式 5.16位计数器定时器1控制LED 示例 6.定时器3概述自由运行模式倒计数模式模模式正/倒计数模式 7.定时器3寄存器定时器3控制LED闪烁 1.片内外设I/O 定时器这样的片内外设也…

文章目录

        • 1.片内外设I/O
        • 2.定时器简介
        • 3.定时器1寄存器
        • 4.定时器1操作
          • 自由运行模式
          • 模模式
          • 正计数/倒计数模式
        • 5.16位计数器
          • 定时器1控制LED 示例
        • 6.定时器3概述
          • 自由运行模式
          • 倒计数模式
          • 模模式
          • 正/倒计数模式
        • 7.定时器3寄存器
          • 定时器3控制LED闪烁

1.片内外设I/O

定时器这样的片内外设也需要I/O口来实现功能,同USART一样,定时器也有2个可选择的I/O位置
在这里插入图片描述
当I/O引脚用作通用I/O时,需要把PxSEL对应位置0,如果时用作外设功能则需要将PxSEL对应位置1
在这里插入图片描述
在PERCFG寄存器中可配置定时器引脚是使用位置1还是位置2(引脚映射)
在这里插入图片描述

2.定时器简介

CC2530有T1、T2、T3、T4共4个定时器,用于控制和测量,可用的5个通道的正计数/倒计数模式。
T1为16位定时/计数器,支持输入采样、输出比较和PWM功能,T1有5个独立的输入采样/输出比较通道,每个通道对应一个I/O口
T2位MAC定时器,T3、T4为8位定时器/计数器,支持输出比较和PWM功能,T3、T4有两个独立的输出比较通道,每一个通道对应一个I/O口

定时器1的功能如下:

  • 5个捕获/比较通道
  • 上升沿、下降沿或任何边缘的输入捕获
  • 设置、清除或切换输出比较
  • 自由运行、模或正计数/倒计数操作
  • 可被1、8、32或128整除的时钟分频器
  • 在每个捕获/比较和最终计数上生成中断请求
  • DMA触发功能

3.定时器1寄存器

PERCFG.T1CFG选择是否使用备用位置1或备用位置2。
定时器1由以下寄存器组成:
(1)T1CNTH - 定时器1计数高位。
(2)T1CNTL - 定时器1计数低位。
(3)T1CTL - 定时器1控制。
(4)T1STAT - 定时器1状态。
定时器1寄存器如下图所示。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.定时器1操作

一般来说,控制寄存器T1CTL用于控制定时器操作。状态寄存器T1STAT保存中断标志。定时器1有三种操作模式,对应不同的定时应用,各种操作模式如下所述。

自由运行模式

在自由运行操作模式下,计数器从0x0000开始,每个活动时钟边沿增加1。当计数器达到0xFFFF(溢出),计数器载入Ox0000,继续递增它的值。当达到最终计数值0xFFFF,设置标志IRCON.T1IF和T1STAT.OVFIF。如果设置了相应的中断屏蔽位TIMIF.OVFIM以及IEN1.T1IE,将产生一个中断请求。自由运行模式可以用于产生独立的时间间隔,输出信号频率。

模模式

当定时器运行在模模式,16位计数器从0x0000开始,每个活动时钟边沿增加1。当计数器达到寄存器T1CC0(溢出)时,寄存器T1CC0H: T1CC0L保存最终计数值,计数器将复位到0x0000,并继续递增。如果定时器开始于T1CC0以上的一个值,当达到最终计数值(0xFFFF)时,设置标志IRCON.T1IF和T1CTL.OVFIF。如果设置了相应的中断屏蔽位TIMIF.OVFIM以及IEN1.T1IE,将产生一个中断请求。模模式被大量用于周期不是0xFFFF的应用程序,模模式计数器的操作如图所示。
在这里插入图片描述

正计数/倒计数模式

在正计数/倒计数模式,计数器反复从0x0000开始,正计数直到达到T1CC0H: T1CCOL保存的值。然后计数器将倒计数达到0x0000,如图所示。这个定时器用于周期必须是对称输出脉冲而不是0xFFFF的应用程序,因为这种模式允许中心对齐的PWM输出应用的实现。在正计数/倒计数模式,当达到最终计数值时,设置标志IRCON.T1IF和T1CTL.OVFIF。如果设置了相应的中断屏蔽位TIMIF.OVFIM以及IEN1.T1EN,将产生一个中断请求。
在这里插入图片描述

5.16位计数器

定时器1包括一个16位计数器,在每个活动时钟边沿递增或递减。活动时钟边沿周期由寄存器位CLKCON.TICKSPD定义,它设置全球系统时钟的划分,提供了从0.25MHz到32MHz的不同的时钟标记频率(可以使用32MHz XOSC作为时钟源)。这在定时器1中由TICTL.DIV设置的分频器值进一步划分。这个分频器值可以为1、8、32或128。因此当32MHz晶振用作系统时钟源时,定时器1可以使用的最低时钟频率是1953.125Hz,最高是32MHz。当16MHz RC振荡器用作系统时钟源时,定时器1可以使用的最高时钟频率是16MHz。
读取16位的计数器值:T1CNTH和T1CNTL,分别包含在高位字节和低位字节中。当读取T1CNTL时,计数器的高位字节在那时被缓冲到T1CNTH,以便高位字节可以从T1CNTH中读出。因此T1CNTL必须在读取T1CNTH之前首先读取。对TICNTL寄存器的所有写入访问将复位16位计数器。
当达到最终计数值(溢出)时,计数器产生一个中断请求。可以用T1CTL控制寄存器设置启动并停止该计数器。当一个不是00的值写入到TICTL.MODE时,计数器开始运行。如果00写入到T1CTL.MODE,计数器停止在它现在的值上。

定时器1控制LED 示例

在TI定时器处于8分频下,计数器每8/(32x10^6)s增加1,当计数到0xFFFF发生溢出中断约0.16s,中断300次约5s时间

#include<ioCC2530.h>#define LED1 P1_0unsigned int counter = 0;		// 溢出次数void LED_Init()
{P1SEL &= ~0x01;P1DIR |= 0x01;LED1 = 0;
}void T1_Init()
{CLKCONCMD &= ~0x7f;			// 晶振设置为32MHzwhile(CLKCONSTA & 0x40);	// 等待晶振稳定EA = 1;						// 开总中断T1IE = 1;					// 开T1溢出中断T1CTL |= 0x01;				// 设定时器1为自由运行模式T1CTL |= 0x04;				// 设置8分频启动定时器1
}void main()
{LED_Init();T1_Init();while(1);
}#pragma vector = T1_VECTOR
__interrupt void T1_ISR()
{IRCON = 0x00;		// 清除中断标志if(counter<300)		counter++;		// 每300次中断切换LED1状态,约5selse{counter = 0;					// 计数清零LED1 = !LED1;					// LED1状态反转}
}

6.定时器3概述

定时器3和定时器4的所有定时器功能都是基于8位计数器建立的,所以定时器3和定时器4的最大计数值要远远小于定时器1,常用于较短时间间隔的定时。定时器3和定时器4各有0、1两个通道,功能较定时器1要弱。计数器在每个时钟边沿递增或递减。活动时钟边沿的周期由寄存器位CLKCONCMD.TICKSPD[2:0]定义,由TxCTL.DIV[2:0](其中x指的是定时器号码,3或4)设置的分频器值进一步划分。计数器可以作为一个自由运行计数器、倒计数器、模计数器或正/倒计数器运行。
可以通过寄存器TxCNT读取8位计数器的值,其中,x指的是定时器号码: 3或4。计数器开始和停止是通过设置TxCTL控制寄存器的值实现的。当TxCTL.START写入1时,计数器开始。当TxCTL.START写入0时,计数器停留在它的当前值。

自由运行模式

在自由运行模式操作下,计数器从0x00开始,每个活动时钟边沿递增。当计数器达到0xFF,计数器载入0x00,并继续递增。当达到最终计数值0xFF(比如,发生了一个溢出),就设置中断标志TIMIF.TxOVFIF。如果设置了相应的中断屏蔽位TxCTL.OVFIM,就产生一个中断请求。自由运行模式可以用于产生独立的时间间隔和输出信号频率。

倒计数模式

在倒计数模式,定时器启动之后,计数器载入TxCC0的内容。然后计数器倒计时,直到0x00。当达到0x00时,设置标志TIMIF.TxOVFIF。如果设置了相应的中断屏蔽位TxCTL.OVFIM,就产生一个中断请求。定时器倒计数模式一般用于需要事件超时间隔的应用程序。

模模式

当定时器运行在模模式,8位计数器在0x00启动,每个活动时钟边沿递增。当计数器达到寄存器TxCC0所含的最终计数值时,计数器复位到0x00,并继续递增。当发生这个事件时,设置标志TIMIF.TxOVFIF。如果设置了相应的中断屏蔽位TxCTL.OVFIM,就产生一个中断请求。模模式可以用于周期不是0xFF的应用程序。

正/倒计数模式

在正/倒计数定时器模式下,计数器反复从0x00开始正计数,直到达到TxCC0所含的值,然后计数器倒计数,直到达到0x00。这个定时器模式用于需要对称输出脉冲,且周期不是0xFF的应用程序。因此它允许中心对齐的PWM输出应用程序的实现。
通过写入TxCTL.CLR清除计数器也会复位计数方向,即从0x00模式正计数。
这两个定时器各分配了一个中断向量。当以下定时器事件之一发生时,将产生一个中断。
(1)计数器达到最终计数值。
(2)比较事件。
(3)捕获事件。
SFR 寄存器 TIMIF 包含定时器 3 和定时器 4 的所有中断标志。寄存器位TIMIF.TxOVFIF 和 TIMIF.TxCHnIF分别包含 2 个最终计数值事件,以及四个通道捕获/比较事件的中断标志。仅当设置了相应的中断屏蔽位时,才会产生一个中断请求。如果有其它未决的中断,必须通过 CPU,在一个新的中断请求产生之前,清除相应的中断标志。而且,如果设置了相应的中断标志,使能一个中断屏蔽位将产生一个新的中断请求。

7.定时器3寄存器

在这里插入图片描述
在这里插入图片描述

定时器3控制LED闪烁

定时器3是8为计数器,在自由模式下计数到0xFF产生溢出中断时间约为0.000064秒,定时器3控制的LED闪烁会比定时器1控制的LED闪烁快很多,300次中断约0.0192s

#include<ioCC2530.h>#define LED1 = P1_0unsigned int counter = 0;void LED_Init()
{P1SEL &= ~0x01;P1DIR |= 0x01;LED1 = 0;
}void T3_Init()
{CLKCONCMD &= ~0x7f;			// 晶振设置为32MHzwhile(CLKCONSTA & 0x40);	// 等待晶振稳定EA = 1;						// 开总中断T3IE = 1;					// 开T1溢出中断T3CTL |= 0x7C;				// 设定时器3为8分频 自由运行模式 启动定时器3
}void main()
{LED_Init();T3_Init();while(1);
}#pragma vector = T3_VECTOR__interrupt void T3_ISR()
{IRCON = 0x00; 	// 清除中断if(counter < 300)	counter++;else{counter = 0;LED1 = !LED1;}
}

将中断次数counter大小修改为30000时,约每2s LED状态改变一次

http://www.yidumall.com/news/56694.html

相关文章:

  • 自己怎么做装修网站网络营销电子版教材
  • 网站建设公司业务在哪里来旺道seo推广系统怎么收费
  • 海外网站入口卖友情链接赚钱
  • 网站层次长沙优化科技有限公司
  • 做盗链电影网站怎么样营销网站建设
  • 东莞网站建设 汇卓抖音账号权重查询
  • 初学者制作网页用什么软件厦门百度快速优化排名
  • 陵水网站建设哪家专业北京软件开发公司
  • 许昌网站推广公司搜索引擎优化培训班
  • 做网站 创业网络媒体有哪些
  • 网站栏目策划方案关键词排名优化营销推广
  • 怎么开店山东seo首页关键词优化
  • 用凡科建设的网站安全吗百度关键词优化词精灵
  • 网站编程用什么语言好seo流量增长策略
  • 网站建设岗位图片搜索图片识别
  • 网站开发技术指标武汉百度推广代运营
  • 品牌网站建设要选磐石网络市场营销推广策划
  • 制作公司网站步骤十大少儿编程教育品牌
  • 一般做网站的在哪里找市场营销互联网营销
  • 外贸网站建设制作教程网站优化团队
  • 招商银行官网首页 网站软文平台
  • jekyll做公司网站今日头条普通版
  • 中信建设有限责任公司湖南分公司外贸seo
  • 网站建设安全保密协议seo搜索引擎优化报价
  • wordpress add page镇江百度seo
  • 上海网站建设-目前企业网站所面临的困惑北京网站优化排名
  • 网站编辑教程济宁seo推广
  • 做美团旅游网站多少钱百度指数有什么作用
  • 电商网站建站免费crm客户管理系统
  • 网站群建设规划方案佛山百度关键词排名