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

简介: 通过定时器T1查询方式控制LED1周期性闪烁(模模式)宏定义与函数声明初始化主函数


宏定义与函数声明



/**************************************/
/*         CC2530例程             */
/*例程名称:定时器(查询方式)        */
/*描述:通过定时器T1查询方式控制LED1周期性闪烁
**************************************/
#include <ioCC2530.h>
#define uint unsigned int
#define uchar unsigned char
#define LED1 P1_0    //定义LED1为P1_0口控制
//函数声明
void InitLed(void);   //初始化P1口
void InitT1();                  //初始化定时器T1
//初始化程序
/*****************************/


初始化



void InitLed(void)
{
    P1DIR |= 0x01;    //P1_0定义为输出
    LED1 = 0;       //LED1灯初始化熄灭
 }
//定时器初始化
void InitT1() //系统不配置工作时钟时默认使用内部RC振荡,即16MHz
{
  T1CTL=0x0E;          //128分频,模模式
  T1CC0L=0x12;
  T1CC0H=0x7A;
  T1CCTL0 |= 0x04;      //开启通道0的输出比较模式
}


主函数



/***************************
* 函数名称:main
 * 功    能:main函数入口
 * 入口参数:无
 * 出口参数:无
 * 返 回 值:无
***************************/
void main(void)
{
    uchar count;
    InitLed();    //调用初始化函数
    InitT1();
    while(1)
    {          
      if(T1STAT&0x21==0x21)
      {
        T1STAT&=~0x21;
        ++count; 
      }
      if(count == 6)   //如果溢出次数到达6说明经过了1.5秒
      {
        LED1 = 1;        //点亮LED1
      }
      if(count == 8)   //如果溢出次数到达8说明经过了2秒
      {
        LED1 = 0;        //熄灭LED1
        count=0;
      }
   }
}


相关文章
|
Ubuntu
Ubuntu双显示屏如何设置竖屏
本文介绍了如何在Ubuntu操作系统中设置双显示屏,特别是如何通过命令行将外接显示屏设置为竖屏显示。文章提供了详细的步骤,包括使用`xrandr`命令查询显示屏、旋转屏幕,以及尝试设置开机自启动和开机手动启用的方法。
672 0
|
9月前
|
SQL Oracle 关系型数据库
【YashanDB 知识库】同样建表语句,大整型数字在 Oracle 插入成功,在 YashanDB 插入失败
在 YashanDB 中执行与 Oracle 相同的建表语句并插入大整型数字时,出现错误“YAS-00013 value is larger than INTEGER allowed”。原因是 YashanDB 的 int 类型取值范围为 -2,147,483,648 到 2,147,483,647,而问题中的整型数字有 16 位,超出了此范围。Oracle 使用 NUMBER 类型,INT 不是其标准类型。解决方法是将字段修改为 Number 或 Bigint。影响版本:YashanDB 所有版本。
|
3天前
|
云安全 人工智能 自然语言处理
AI说的每一句话,都靠谱吗?
阿里云提供AI全栈安全能力,其中针对AI输入与输出环节的安全合规挑战,我们构建了“开箱即用”与“按需增强”相结合的多层次、可配置的内容安全机制。
|
10天前
|
域名解析 人工智能
【实操攻略】手把手教学,免费领取.CN域名
即日起至2025年12月31日,购买万小智AI建站或云·企业官网,每单可免费领1个.CN域名首年!跟我了解领取攻略吧~
|
4天前
|
安全 Java Android开发
深度解析 Android 崩溃捕获原理及从崩溃到归因的闭环实践
崩溃堆栈全是 a.b.c?Native 错误查不到行号?本文详解 Android 崩溃采集全链路原理,教你如何把“天书”变“说明书”。RUM SDK 已支持一键接入。
415 188
|
2天前
|
数据采集 消息中间件 人工智能
跨系统数据搬运的全方位解析,包括定义、痛点、技术、方法及智能体解决方案
跨系统数据搬运打通企业数据孤岛,实现CRM、ERP等系统高效互通。伴随数字化转型,全球市场规模超150亿美元,中国年增速达30%。本文详解其定义、痛点、技术原理、主流方法及智能体新范式,结合实在Agent等案例,揭示从数据割裂到智能流通的实践路径,助力企业降本增效,释放数据价值。