定时器 T1 通过查询方式控制 LED1 周期性闪烁

发布者:科技创客最新更新时间:2018-05-13 来源: eefocus关键字:定时器  查询方式  周期性闪烁 手机看文章 扫描二维码
随时随地手机看文章

关键就是对寄存器的配置。

CC2530的T1定时器(16位)需要配置三个寄存器T1CTL、T1STAT、IRCON

这里只是给出简单的介绍,要详细的可以参考CC2530的datasheet.

T1CTL(0xE4) 作用是定时器 1 的控制和状态 
T1CTL (Bit 3:2) 分频器划分值,如下: 
00: 标记频率/1 
01: 标记频率/8 
10: 标记频率/32 
11: 标记频率/128 
T1CTL (Bit 1:0) 选择定时器1模式 
00: 暂停运行。 
01: 自由运行,从0x0000到0xFFFF反复计数。 
10: 模,从0x0000到T1CC0反复计数。 
11: 正计数/倒计数,从 0x0000 到 T1CC0 反复计数并且从 T1CC0 倒计数到 0x0000。

T1STAT(0xAF) 作用是定时器 1 状态 
Bit5: 定时器 计数器溢出中断标志 
Bit4: 定时器 1 通道 4 中断标志 
Bit3: 定时器 1 通道 3 中断标志 
Bit2: 定时器 1 通道 2 中断标志 
Bit1: 定时器 1 通道 1 中断标志

Bit0: 定时器 1 通道 0 中断标志 



IRCON(0xC0) 作用是中断标志 4 
Bit1: 定时器1中断标志。当定时器1中断发生时设为1并且当CPU向量指向中断服务例程时清除。 
0: 无中断未决 
1: 中断未决


T1 配置如下:

T1CTL = 0x0d; //128 分频,自动重装 0x0000-0xFFFF 
T1STAT= 0x21; //通道 0,中断有效



/****************************************************************************
* 描    述: 定时器T1通过查询方式控制LED1周期性闪烁
****************************************************************************/
#include
typedef unsigned char uchar;
typedef unsigned int  uint;
#define LED1 P1_0       // P1.0口控制LED1
/****************************************************************************
* 名    称: InitLed()
* 功    能: 设置LED灯相应的IO口
* 入口参数: 无
* 出口参数: 无
****************************************************************************/
void InitLed(void)
{
    P1DIR |= 0x01;      //P1.0定义为输出
    LED1 = 1;           //使LED1灯上电默认为熄灭     
}


/****************************************************************************
* 名    称: InitT1()
* 功    能: 定时器初始化,系统不配置工作时钟时默认是2分频,即16MHz
* 入口参数: 无
* 出口参数: 无
****************************************************************************/
void InitT1()
{
    T1CTL = 0x0d;       //128分频,自动重装 0x0000-0xFFFF 
    T1STAT= 0x21;       //通道0,中断有效   
}


/****************************************************************************
* 程序入口函数
****************************************************************************/
void main(void)
{
    uchar count=0;
    
    InitLed();     //调用初始化函数
    InitT1();
    
    while(1)
    {
        if(IRCON > 0)
        { 
            IRCON=0;
            if(count++ >= 1)    //约1s周期性闪烁,示波器测大约为1025MS  也可以用一 //个延时函数延时
            {
              count=0;
              LED1 = !LED1;     //LED1闪烁        
            }
        } 
    }
}


关键字:定时器  查询方式  周期性闪烁 引用地址:定时器 T1 通过查询方式控制 LED1 周期性闪烁

上一篇:定时器的输出比较模式产生的PWM波的频率计算
下一篇:定时器 T3定(8 位)通过中断方式控制 LED

推荐阅读最新更新时间:2024-03-16 16:02

PIC单片机之看门狗_看门狗定时器工作原理
看门狗定时器 看门狗定时器(WDT,WatchDogTImer)是单片机的一个组成部分,它实际上是一个计数器,一般给看门狗一个数字,程序开始运行后看门狗开始倒计数。如果程序运行正常,过一段时间CPU应发出指令让看门狗复位,重新开始倒计数。如果看门狗减到0就认为程序没有正常工作,强制整个系统复位。 工作原理 使用时,WDT将递增,直到溢出,或称“超时”。除非处于休眠或空闲模式,WDT超时会强制器件复位。为避免WDT超时复位,用户必须定期用PWRSAV或CLRWDT指令将看门狗定时器清零。如果WDT在休眠或空闲模式下超时,器件将唤醒并从PWRSAV指令执行处继续执行代码。在上述两种情况下,WDTO位(RCON《4》)都会置1,表示
[单片机]
PIC单片机之看门狗_看门狗<font color='red'>定时器</font>工作原理
用单片机定时器T0和P1.7端口产生连续矩形脉冲的程序
已知51单片机,fosc=6MHz,试编写程序,利用T0和P1.7产生如下图所示的连续矩形脉冲。 参考程序: org 0000h ljmp main org 000bh ljmp int_t0 org 0030h main: mov tmod,#00000010b mov ie,#10000010b mov th0,#0ech mov tl0,#4ch clr p1.7 setb tr0 sjmp $ int_t0: jb p1.7,loop
[单片机]
用单片机<font color='red'>定时器</font>T0和P1.7端口产生连续矩形脉冲的程序
STM32高级控制定时器1学习
高级控制定时器(Tim1)是由一个16位的自动装载计数器组成,它由一个可编程预分频器驱动。 用途在于:测量输入信号的脉冲宽度(输入捕获),或者产生输出波形(输出比较,PWM,嵌入死区时间的互补PWM等)。 使用定时器预分频器和RCC时钟控制预分频器,可以实现脉冲宽度和波形周期从几个微秒到几个毫秒的调节。 具体如下: 16位上下,自动装载计数器。 16位可编程预分频器,计数器时钟频率的分频率的分频系数为1-65535之间任意数值 4个独立通道: 输入捕获 输出比较 PWM生成 单脉冲模式输出 死区时间可编程的互补输出 使用外部信号控制定时器和定时器互连的同步电路 在指定数目的计数器周期之后更新定时器寄存器
[单片机]
mini2440定时器学习笔记
S3C2440有5个16位定时器,定时器0、1、2和3有PWM功能(因此这4个定时器也被称为PWM定时器),都有一个输出引脚,定时器4是一个内部定时器,无外部输出引脚。 定时器的时钟源是PCLK,然后通过内部的两级分频器分频得到定时器工作所需要的频率。其中,定时器0、1公用一个8位的第一级预分频器prescaler 0,定时器2、3、4公用另一个8位的第一级预分频器prescaler 1;每个定时器都有一个与之对应的第二级分频器clock divider如下图所示 虽然定时器较多,但工作原理都是相同的,只需要理解一个定时器的工作原理即可。对于某一个定时器,其内部结构原理图如图二所示。缓存寄存器TCMPBn和TCN
[单片机]
mini2440<font color='red'>定时器</font>学习笔记
PIC12F629单片机定时器1控制3个LED循环源程序,且时间可调
PIC12F629不用外振即可正常运行,低成本首选,原理如下:按键按一次LED1低亮,按两次LED2亮,按三次LED3亮,一直循环, 按键长按3秒松开则可以计入自动循环模式,再次长按3秒则退出,进入待机模式;2脚接轻触开关到地,可以做为设置键(原理图来自网上故VDD接﹢5V,漏画,SET设置键没有画,有时间修正下原理图),用来设置每个LED亮的时间,互不影响!源码已经编译通过,洞洞板做了一个PCB, 正常运行,新手贴勿喷。 单片机源程序如下: /****************************************************************************** 设计要求:按一次按键是打
[单片机]
stm32 通用定时器中断
void TIM_DeInit(TIM_TypeDef* TIMx) // 用初始化参数初始化定时器的寄存器 TIMx: where x can be 1 to 17 to select the TIM peripheral. TIM Output Compare Init structure definition void TIM_OC1FastConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCFast) void TIM_OC1Init(TIM_TypeDef* TIMx, TIM_OCInitTypeDef* TIM_OCInitStruct) void TIM_OC1NPola
[单片机]
PIC定时器( TIMER2 )
1、PIC TIMER2定时器 Timer2的功能Timer0有些不同,Timer2是一个八位的计数器,有一个八位的计数寄存器TMR2,Timer2具有以下功能:有两个分频器,一个是前分频器,一个是后分频器.分频可以软件进行设置,另外,Timer2的时钟源是指令时间(FOSC/4),Timer2有一个寄存器 PR2,此寄存器的功能是当TMR2增加到PR2的值时,将产生中断,当然,中断必须允许,然后PR2的值会重新变为00H.下面来介绍Timer2的编程: Timer2的控制寄存器T2CON作用是设置Timer2的开启关闭和前后分频的分频系数,寄存器 T2CON的 TOUTPS 3:0 位设置后分频系数,可以被设置成1:
[单片机]
PIC<font color='red'>定时器</font>( TIMER2 )
利用单片机PWM信号对舵机进行驱动控制
  在机器人机电控制系统中,舵机控制效果是性能的重要影响因素。舵机可以在微机电系统和航模中作为基本的输出执行机构,其简单的控制和输出使得单片机系统非常容易与之接口。 舵机是一种位置伺服的驱动器,适用于那些需要角度不断变化并可以保持的控制系统。其工作原理是:控制信号由接收机的通道进入信号调制芯片,获得直流偏置电压。它内部有一个基准电路,产生周期为20ms,宽度为1.5ms的基准信号,将获得的直流偏置电压与电位器的电压比较,获得电压差输出。最后,电压差的正负输出到电机驱动芯片决定电机的正反转。当电机转速一定时,通过级联减速齿轮带动电位器旋转,使得电压差为0,电机停止转动。 图1 舵机的控制要求 舵机的控制
[单片机]
利用单片机PWM信号对舵机进行驱动控制
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved