打印

请教懂的人解答关于定时器的问题

[复制链接]
1403|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
arm菜鸟人|  楼主 | 2012-3-20 20:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
现在要采集一路信号。但是采集的频率随着时间的变化而变化:
05分钟,每1秒记录一组数据;

510分钟,每5秒记录一组数据;


1030分钟,每20秒记录一组数据;


3060分钟,每30秒记录一组数据;


601800分钟,每60秒记录一组数据。



是不是设置五个中断
0-5分钟,用这个定时器/1s的中断,给出采集命令,到了5分钟产生中断打开另一个定时器进行5-10分钟/5s的采集,依次这般?但是这需要5个定时器啊?


刚开始用STM32编程,很多地方还不懂。求指教啊!


而且,定时器TIM 还有许多不明白的地方。它有哪些事件和中断呢?


一团雾水,大家多指点一二。在此谢过了!
沙发
arm菜鸟人|  楼主 | 2012-3-20 20:19 | 只看该作者
@香水城

使用特权

评论回复
板凳
arm菜鸟人|  楼主 | 2012-3-20 20:20 | 只看该作者
@grant_jx

使用特权

评论回复
地板
香水城| | 2012-3-21 10:05 | 只看该作者
用一个定时器,设置5次即可。

使用特权

评论回复
5
arm菜鸟人|  楼主 | 2012-3-21 13:47 | 只看该作者
4# 香水城

那是,开始设置定时器每秒中断一次,中断处理:采集发送数据,计数自增,直到0-5分钟的时候(300次),重新设置定时器每5秒中断一次,中断处理:采集发送数据,计数自增,直到5-10分钟的时候(60次),重新设置定时器每20秒中断一次……


START:

TIM_Config(1s);//每1秒中断一次

while(count1<=300)
{
    采集数据;
    发送数据;
    count1++;
   if(count1==300)
  {
    TIM_Config(5s);  //每五秒中断一次
  }
}

whlie(count2<=60)
{
   采集数据;
   发送数据;
   count2++;
   if(count2==60)
   {
      TIM_Config(20s);
   }
}



whlie(count3<=60)
{
   采集数据;
   发送数据;
   count3++;
   if(count3==60)
   {
      TIM_Config(30s);
   }
}


whlie(count4<=60)
{
   采集数据;
   发送数据;
   count4++;
   if(count4==60)
   {
      TIM_Config(60s);
   }
}


whlie(count5<=1740)
{
   采集数据;
   发送数据;
   count5++;

  // if(count2==1740)
   //{
   //   TIM_Config(20s);
   //}

}

END

使用特权

评论回复
6
yzq13246068880| | 2020-7-3 19:46 | 只看该作者

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

34

主题

539

帖子

1

粉丝