470759514
当T8的定时时间超过一定数值的时候就会变成负数,不能正常进行定时?我想是跟
定时器定时设定值是16位有关。请问如何编程才能实现32位的设定值定时呢?
my39366
一个计时器触发计数器 但是你定时器为什么能用到32768以上的数据? 和16位无关 计数是二进制的在+1 加到最后 高位变1 就是负数
fsjnzhouyan
与定时器定时设定值是16位无关,TD330值取绝对值即可。
回复内容:
对: fsjnzhouyan 与定时器定时设定值是16位无关,TD330值取绝对值即可。 内容的回复!
貌似定时一超过32767就会出现负数!你这样加绝对值的话,就直接改变了那个数值了。请问有没有别的算法可以定时到更大的数据呢?
对: my39366 一个计时器触发计数器 但是你定时器为什么能用到327... 内容的回复!
你是说定时器只能定时到32768以下的数据吗?是不是超过这个值就会变成负数啦?可以编个程序超出这个界限吗?
对: 470759514 回复内容:对: my39366 一个计时器触发计数器... 内容的回复!
有办法 -1就是32768 -2就是32769 出现负数就是 32768+ABS(EV N) 把这个值赋值给一个32位的 不过没有必要非得用32字的啊 ,你可以多长时间一个计数,比如 1s一个计数,再扩展可以在此基础上1000s一个计数,1s的个数*1000+EV不就得了 TML单位是0.001吧
对: my39366 回复内容:对: 470759514 回复内容:对: ... 内容的回复!
我是想让计时更加精确所以使用了TML,不过也没必要使用那么高精度,最后还是得选择使用TMR。