您的位置:首页 > 财经 > 金融 > 深圳政府在线官网_如何自制微信小程序_企业网站seo托管怎么做_深圳小程序开发公司

深圳政府在线官网_如何自制微信小程序_企业网站seo托管怎么做_深圳小程序开发公司

2024/12/23 9:59:12 来源:https://blog.csdn.net/qq_59527512/article/details/142764487  浏览:    关键词:深圳政府在线官网_如何自制微信小程序_企业网站seo托管怎么做_深圳小程序开发公司
深圳政府在线官网_如何自制微信小程序_企业网站seo托管怎么做_深圳小程序开发公司

源码

#include "iocc2530.h"//引用CC2530头文件int t1_Count=0;  //定时器1溢出次数计数void Init_Led(void){
/*******************LED1初始化部分******************/P1SEL &=~ 0x01;       //设置P1_0口为通用I/O口P1DIR |= 0x01;        //设置P1_0口为输出口P1_0=0;               //熄灭LED1
/**************************************************/
}
void Init_T1(void){
/*****************定时器1初始化部分****************/T1CTL |=0x0C;         //定时器1时钟频率128分频T1CC0L = 0x12;        //设置最大计数值的低8位T1CC0H = 0x7A;        //设置最大计数值的高8位T1IE = 1;             //使能定时器1中断T1OVFIM = 1;          //使能定时器1溢出中断EA = 1;               //使能总中断T1CTL |= 0x03;        //定时器1采用正计数/倒计数模式/**********************************************/
}
void main(void){Init_Led();Init_T1();while(1); //程序主循环
}
/**************************************************************
函数名称:T1_INT
功  能:定时器1中断处理函数
入口参数:无
出口参数:无
返 回 值:无
**************************************************************/
#pragma vector = T1_VECTOR
__interrupt void T1_INT(void)
{T1STAT &= ~0x20;      //清除定时器1溢出中断标志位t1_Count++;           //定时器1溢出次数加1,溢出周期为0.5sif(t1_Count == 3)     //如果溢出次数到达3,说明经过了1.5s{P1_0 = 1;           //点亮LED1}
if(t1_Count == 4)       //如果溢出次数到达4,说明经过了2秒{P1_0 = 0;           //熄灭LED1t1_Count = 0;       //清零定时器1溢出次数}
}

源码讲解

#include "iocc2530.h"//引用CC2530头文件

int t1_Count=0;  //定时器1溢出次数计数

void Init_Led(void){
/*******************LED1初始化部分******************/


  P1SEL &=~ 0x01;    
  //设置P1_0口为通用I/O口

  P1DIR |= 0x01;      
 //设置P1_0口为输出口


  P1_0=0;               //熄灭LED1
/**************************************************/


}
void Init_T1(void){
/*****************定时器1初始化部分****************/
  


  T1CTL |=0x0C;        

//定时器1时钟频率128分频

  T1CC0L = 0x12;      
 //设置最大计数值的低8位

  T1CC0H = 0x7A;        
//设置最大计数值的高8位

  T1IE = 1;    
外部中断配置流程表3.5 IEN1寄存器的描述      

  //使能定时器1中断

  T1OVFIM = 1;        

定时器 1、定时器 3 和定时器 4 还分别拥有一个计数溢出中断屏蔽位,

分别是T1OVFIM、T3OVFIM和T4OVFIM。当这些位被设置成1时,对应定时器的计数溢出中断便被使能,这些位都可以进行位寻址。不过一般用户不需要对其进行设置,因为这些位在CC2530上电时的初始值就是1。如果要手工设置,可以用以下代码实现。T1OVFIM=1; //使能定时器1溢出中断最后要使能系统总中断EA。

 //使能定时器1溢出中断

  EA = 1;        
IEN0寄存器的描述     
//使能总中断

  T1CTL |= 0x03;        
//定时器1采用正计数/倒计数模式

/**********************************************/
}
void main(void){
  Init_Led();
  Init_T1();
  while(1); //程序主循环
}
/**************************************************************
函数名称:T1_INT
功  能:定时器1中断处理函数
入口参数:无
出口参数:无
返 回 值:无
**************************************************************/
#pragma vector = T1_VECTOR
__interrupt void T1_INT(void)
{


  T1STAT &= ~0x20;    
 //清除定时器1溢出中断标志位
T1STAT寄存器的描述

  t1_Count++;           //定时器1溢出次数加1,溢出周期为0.5s
  if(t1_Count == 3)     //如果溢出次数到达3,说明经过了1.5s
  {
    P1_0 = 1;           //点亮LED1
  }
if(t1_Count == 4)       //如果溢出次数到达4,说明经过了2秒
  {
    P1_0 = 0;           //熄灭LED1
    t1_Count = 0;       //清零定时器1溢出次数
  }
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com