定时器定时32位数据 点击:433 | 回复:6



470759514

    
  • 精华:0帖
  • 求助:6帖
  • 帖子:6帖 | 217回
  • 年度积分:0
  • 历史总积分:1992
  • 注册:2013年4月01日
发表于:2013-07-01 11:14:25
楼主
求助帖10分-未结帖


当T8的定时时间超过一定数值的时候就会变成负数,不能正常进行定时?我想是跟

定时器定时设定值是16位有关。请问如何编程才能实现32位的设定值定时呢?





my39366

  • 精华:0帖
  • 求助:3帖
  • 帖子:7帖 | 253回
  • 年度积分:0
  • 历史总积分:463
  • 注册:2011年12月15日
发表于:2013-07-01 11:59:24
1楼

一个计时器触发计数器  但是你定时器为什么能用到32768以上的数据?  和16位无关 计数是二进制的在+1  加到最后 高位变1  就是负数

fsjnzhouyan

  • 精华:1帖
  • 求助:7帖
  • 帖子:190帖 | 847回
  • 年度积分:2190
  • 历史总积分:80614
  • 注册:2008年11月05日
发表于:2013-07-01 12:29:01
2楼

与定时器定时设定值是16位无关,TD330值取绝对值即可。



470759514

  • 精华:0帖
  • 求助:6帖
  • 帖子:6帖 | 217回
  • 年度积分:0
  • 历史总积分:1992
  • 注册:2013年4月01日
发表于:2013-07-01 14:18:29
3楼

回复内容:

对: fsjnzhouyan 与定时器定时设定值是16位无关,TD330值取绝对值即可。 内容的回复!


貌似定时一超过32767就会出现负数!你这样加绝对值的话,就直接改变了那个数值了。请问有没有别的算法可以定时到更大的数据呢?

470759514

  • 精华:0帖
  • 求助:6帖
  • 帖子:6帖 | 217回
  • 年度积分:0
  • 历史总积分:1992
  • 注册:2013年4月01日
发表于:2013-07-01 14:23:14
4楼

回复内容:

对: my39366 一个计时器触发计数器  但是你定时器为什么能用到327... 内容的回复!


你是说定时器只能定时到32768以下的数据吗?是不是超过这个值就会变成负数啦?可以编个程序超出这个界限吗?

my39366

  • 精华:0帖
  • 求助:3帖
  • 帖子:7帖 | 253回
  • 年度积分:0
  • 历史总积分:463
  • 注册:2011年12月15日
发表于:2013-07-05 09:38:37
5楼

回复内容:

对: 470759514  回复内容:对: my39366  一个计时器触发计数器... 内容的回复!


 有办法  -1就是32768  -2就是32769    出现负数就是 32768+ABS(EV N)  把这个值赋值给一个32位的     不过没有必要非得用32字的啊 ,你可以多长时间一个计数,比如 1s一个计数,再扩展可以在此基础上1000s一个计数,1s的个数*1000+EV不就得了   TML单位是0.001吧

470759514

  • 精华:0帖
  • 求助:6帖
  • 帖子:6帖 | 217回
  • 年度积分:0
  • 历史总积分:1992
  • 注册:2013年4月01日
发表于:2013-07-06 10:02:31
6楼

回复内容:

对: my39366 回复内容:对: 470759514  回复内容:对: ... 内容的回复!


我是想让计时更加精确所以使用了TML,不过也没必要使用那么高精度,最后还是得选择使用TMR。


热门招聘
相关主题

官方公众号

智造工程师