studygu 2023-08-19 20:56 采纳率: 0%
浏览 7

CC2530编写呼吸灯,采用定时器T1的自由运行模式

呼吸灯一直闪烁,看不出呼吸的过程,不知哪里出了问题?望各位不吝赐教。代码如下:

/******************呼吸灯************************/
void  t1_init()
{
   T1CTL=0x05;//8分频,自由运行模式
    TIMIF|=0x40;
    IRCON=0x00;
    EA=1;
    T1IE=1;
    T1CNTL=(65535-2000)%256;//(8/16M)*1000=1ms定时
    T1CNTH=(65535-2000)/256;
}

#pragma vector=T1_VECTOR
__interrupt void T1(void)
{
  pwm_wanttime++;
  breath_wanttime++;
  if(pwm_wanttime==pwm_value)  
    D3=1;//灯亮
  if(pwm_wanttime==10)
  {
     pwm_wanttime=0;
     D3=0;//灯灭
  }
  
  if((breath_wanttime==200)&&(directflag==0))//每隔200ms变化一次占空比
  {
    breath_wanttime=0;
    pwm_value++;
    if(pwm_value==9)  directflag=1;
  }
  if((breath_wanttime==200)&&(directflag==1))
  {
    breath_wanttime=0;
    pwm_value--;
    if(pwm_value==1)  directflag=0;
  }
}

/********************MAIN************************/
void main(void)
{
   halBoardInit();//选手不得在此函数内添加代码
    ConfigRf_Init();//选手不得在此函数内添加代码
 //端口初始化
    P1SEL&=~(0x1f);
    P1DIR=0x1b;
    P0SEL&=~(0X02);
    P0DIR&=~(0X02);
    D3=D4=D5=D6=0;
    //定时器T1 8分频,自由运行模式
    t1_init();
   while(1)
   {
      ;
   }
}
  • 写回答

2条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-08-19 22:07
    关注

    【以下回答由 GPT 生成】

    根据提供的代码,我注意到以下几个可能会导致呼吸灯效果无法显示的问题:

    1. 频率问题:在代码的t1_init函数中,设置了T1的计数值来控制定时器的频率。根据提供的代码,每1ms触发一次T1中断。为了呼吸灯能够呈现出明显的呼吸过程,需要调整呼吸灯的占空比变换速度和频率。

    2. 呼吸灯控制:根据代码逻辑,pwm_wanttime每次T1中断都会自增,然后根据条件判断来控制LED的亮灭状态。但根据提供的代码,没有看到变量的初始值定义,我无法判断是否正确地初始化了相关变量。

    3. 呼吸灯占空比变化:根据提供的代码,pwm_value变量在每次breath_wanttime达到200时进行变化。但没有提供相关变量的初始值定义,我无法判断pwm_value的范围是否正确,并且在达到上限或下限时是否能够正确地切换变化的方向。

    解决这些问题需要更深入地了解你所使用的硬件平台和你编写的函数。请提供更多代码和硬件配置的细节,以便更准确地诊断和解决问题。



    【相关推荐】



    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 创建了问题 8月19日

悬赏问题

  • ¥15 游戏盾如何溯源服务器真实ip?
  • ¥15 Mac版Fiddler Everywhere4.0.1提示强制更新
  • ¥15 android 集成sentry上报时报错。
  • ¥50 win10链接MySQL
  • ¥35 跳过我的世界插件ip验证
  • ¥15 抖音看过的视频,缓存在哪个文件
  • ¥15 自定义损失函数报输入参数的数目不足
  • ¥15 如果我想学习C大家有是的的资料吗
  • ¥15 根据文件名称对文件进行排序
  • ¥15 deploylinux的ubuntu系统无法成功安装使用MySQL❓