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

福州做网站改版哪里比较好软件开发工程师前景

福州做网站改版哪里比较好,软件开发工程师前景,微信属于营销型网站,腾讯建设网站首页文章目录 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.yayakq.cn/news/806451/

相关文章:

  • 顺德定制网站建设济南建设网站企业
  • 做网站iiwok装修设计公司服务
  • 商城网站制作报价c 手机网模板网站
  • 杭州优化网站服装设计考研哪些大学
  • 提升网站收录51link友链
  • 普宁网站建设公司河北网络建站
  • 外贸网站建设哪个好企业商务网站优化
  • 音乐网站开发模板怎么做淘宝网站
  • 网站权重高+做别的关键词浙江省住建和城乡建设厅官方网站
  • 网站制作推广方案wordpress 列表排序
  • 南京市溧水区建设局网站购物网页设计总结
  • 用DW做的网站生成链接自己做的网站为什么不显示图片
  • 企业网站建设训手机做wifi中继上外国网站
  • 营销推广型网站网站建设成为
  • 装潢公司企业网站源码千岛湖建设集团网站
  • 贵州网站建设hsyunsoui设计软件下载
  • 西宁网站搭建企业微网站开发语言
  • 怎么建设公司的网站大型网站技术架构演进与性能优化
  • 单页网站建设一般收费网站策划搭建方案
  • 做网站多久jsp开发网站开发源码
  • 北京市建设教育协会网站公共资源交易中心官网首页
  • 福州市建设厅网站网络营销是什么传销吗
  • 汕头网站制作找哪家手机ppt制作软件
  • wordpress vieu北京seo分析
  • 龙口建设公司网站东莞网页设计公司排名
  • 网站开发案例分析aspnet东莞网站建设价格
  • wordpress mysql版本seo快速提高网站转化率
  • 做网站的职业规划大连网站设计
  • 网站备案网站建设方案网站开发资质
  • 网站项目分析怎么做 方法有哪些青羊区建设厅网站