CC2530定时器1 定时器3使led不同频率闪烁

这篇博客展示了如何在单片机中初始化并利用T1和T3定时器来控制两个LED的交替闪烁。通过设置中断和计数器,当计数值达到预设阈值时翻转LED的状态。程序中涉及了中断处理、定时器配置和IO口操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#include <iocc2530.h>
#define led1 P1_0
#define led2 P1_1
#define uint unsigned int

uint count1=0;
uint count2=0;

void init_T1(){
  CLKCONCMD &=~0x7F;
  while(CLKCONCMD & 0x40);
  EA=1;
  T1IE=1;
  T1CTL=0x05;
  led1=0;
  led2=1;
}

void init_T3(){
  T3IE=1;
  T3CTL=0x7c;
}

void init_led(){
  //1111 1100
  P1SEL &=0xFC;
  //0000 0011
  P1DIR |=0x03;
  
}
void main(){
  init_led();
  init_T1();
  init_T3();
  while(1){
    
  }
}

#pragma vector = T1_VECTOR
__interrupt void T1_ISR(){
  //清中断标志
  IRCON = 0x00;
  if(count1<300){
    count1++;
  }else{
    count1=0;
    led1=!led1;
  }
}

#pragma vector = T3_VECTOR
__interrupt void T3_ISR(){
  //清中断标志
  IRCON = 0x00;
  if(count2<300){
    count2++;
  }else{
    count2=0;
    led2=!led2;
  }
}


在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值