CC2530:定时器查询方式,中断方式

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

#include <ioCC2530.h>

typedef unsigned char uchar;
typedef unsigned int  uint;

#define LED1 P1_0       // P1.0锟斤拷锟斤拷锟斤拷LED1


void InitLed(void)
{
    P1DIR |= 0x01;      //P1.0定义为输出
    LED1 = 1;           //使LED1灯上电默认为熄灭 
}


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) 
            {
              count=0;
              LED1 = !LED1;  //LED1闪烁     
            }
        } 
    }
}

InitT1()

功能:定时器初始化,系统不配置工作时钟时默认2分频,即16MHz

定时器T3通过中断方式控制LED1周期性闪烁

#include <ioCC2530.h>

typedef unsigned char uchar;
typedef unsigned int  uint;

#define LED1 P1_0       

uint count;             //用于定时器计数

void InitLed(void)
{
    P1DIR |= 0x01;          
    LED1 = 1;                //使LED1默认为熄灭
}


{     
    T3CTL |= 0x08 ;          //开溢出中断   
    T3IE = 1;                //开总中断和T3中断
    T3CTL |= 0xE0;           //128分频,128/16000000*N=0.5S,N=62500
    T3CTL &= ~0x03;          //自动重装 00锟斤拷>0xff  62500/255=245(次)
    T3CTL |= 0x10;           //启动
    EA = 1;                  //开总中断
}

//定时器T3处理函数
#pragma vector = T3_VECTOR 
__interrupt void T3_ISR(void) 
{ 
    IRCON = 0x00;            //清中断标志,也可以由硬件自动完成
    if(count++ > 244)        //245次中断后LED取反,闪烁一轮
    {                        //经过示波器测量保持精确
        count = 0;           //计数清零
        LED1 = ~LED1;        //改变LED1的状态
    } 
}



void main(void)
{
    InitLed();		     //设置LED对应的IO口
    InitT3();            //设置T3相应的寄存器
    while(1)
    {};
}

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不吃橘子的橘猫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值