通过定时器T1查询方式控制LED1周期性闪烁(正计数/倒计数)

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


宏定义与函数声明



/**************************************/
/*         CC2530例程             */
/*例程名称:定时器(查询方式)        */
/*建立时间:2016/05/1                 */
/*描述:通过定时器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 = 0x0F;          //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 == 3)   //如果溢出次数到达3说明经过了1.5秒
      {
        LED1 = 1;        //点亮LED1
      }
      if(count == 4)   //如果溢出次数到达8说明经过了2秒
      {
        LED1 = 0;        //熄灭LED1
        count=0;
      }
   }
}
相关文章
|
JavaScript Java 测试技术
基于Java的图书馆管理系统的设计与实现(源码+lw+部署文档+讲解等)
基于Java的图书馆管理系统的设计与实现(源码+lw+部署文档+讲解等)
264 1
|
2月前
|
缓存 小程序 数据安全/隐私保护
短剧平台 item_get_video - 获取各平台短剧视频接口对接全攻略:从入门到精通
短剧行业迅猛发展,抖音、快手、红果等平台汇聚海量内容。item_get_video接口可精准获取单部短剧的播放地址、分集信息、作者数据等,支撑聚合平台搭建、分销推广与竞品监测。本文详解主流平台接口特性、权限申请、代码实现及问题排查,助力开发者高效对接,提升开发效率与用户体验。
|
6月前
|
运维 网络协议 Linux
CentOS下Bind服务的安装与故障排查
通过以上的步骤,您应该能够在CentOS系统上安装并配置BIND DNS服务,并进行基本的故障排查。
581 0
|
机器学习/深度学习 算法 决策智能
北大领衔,多智能体强化学习研究登上Nature子刊
北京大学研究团队近日在《Nature》子刊上发布了一篇关于多智能体强化学习(MARL)的论文,提出了一种高效且可扩展的MARL框架,旨在解决大规模网络控制系统中的决策问题。该框架实现了智能体间的局部通信,减少了通信成本与计算复杂度,并在交通、电力及疫情防控等多个真实场景实验中,显著提升了决策性能。论文链接:https://www.nature.com/articles/s42256-024-00879-7。尽管该研究仍存局限,但为MARL的应用提供了新思路。
479 2
|
10月前
|
Kubernetes Cloud Native Serverless
OpenKruise v1.8版本解读:解锁云原生应用管理的无限可能
OpenKruise在2025年2月发布了最新的1.8版本。此版本带来了诸多重要的更新与增强,致力于进一步提升云原生应用管理的效率、弹性和可靠性。
|
存储 负载均衡 NoSQL
Tomcat 9.X(9.0.74)集群实现Session共享(基于redisson)
本文主要介绍了tomcat集群环境下基于redis+Redisson实现session共享,分享给大家,供广大从业者学习和参考。
13246 4
|
图形学
【实现100个unity特效之5】unity2d 各种粒子特效
【实现100个unity特效之5】unity2d 各种粒子特效
1008 0
|
缓存 编译器 程序员
C/C++编译器并行优化技术:并行优化针对多核处理器和多线程环境进行优化,以提高程序的并行度
C/C++编译器并行优化技术:并行优化针对多核处理器和多线程环境进行优化,以提高程序的并行度
1247 0
|
敏捷开发 测试技术 持续交付
几个有用的测试网站
几个有用的测试网站
1707 0