智能车制作

标题: 请教正交解码的问题。 [打印本页]

作者: Sailing7    时间: 2014-3-9 13:26
标题: 请教正交解码的问题。

复制代码

今天在调试正交解码,这是我串口看到的数值。[attach]56652[/attach]  这里的655XX  在正交解码中是否这却呢,使用的代码   

  1. void FTM_QDGetData(FTM_Type *ftm, uint32* value, uint8* dir)
  2. {
  3. *dir = (((ftm->QDCTRL)>>FTM_QDCTRL_QUADIR_SHIFT)&1);
  4. *value = (ftm->CNT);
  5. } 如果对的话。那么我给对这个655xx  怎么处理呢,我尝试了一下,使用65535 减掉这个值,但是通过串口,发现自己加的那个向减的语句,并没有起多大的作用,因为采集的数值,有点是比较小的想10 ,但是其他的就655XX  这样的数值了,怎么办呢,。。
复制代码


作者: 箫剑酒仙    时间: 2014-3-9 13:53
有正负,65535就是-1
作者: 头上两只角    时间: 2014-3-9 13:55
应该是 对的  用S32  来定义。,
作者: Sailing7    时间: 2014-3-9 14:05
箫剑酒仙 发表于 2014-3-9 13:53
有正负,65535就是-1

这就是补码吗?我该怎么去用这个数值呢。
作者: 532902675    时间: 2014-3-9 14:08

作者: 箫剑酒仙    时间: 2014-3-9 15:42
用int16或者直接写singned short也行,然后调用时应该就有符号了
作者: Sailing7    时间: 2014-3-9 15:52
箫剑酒仙 发表于 2014-3-9 15:42
用int16或者直接写singned short也行,然后调用时应该就有符号了

我的单片机就直接不能运行了。
作者: 箫剑酒仙    时间: 2014-3-9 15:58
不能运行是啥意思??
作者: 箫剑酒仙    时间: 2014-3-9 16:21
强制转换(int16)ftm->CNT,还有所有有关变量都要改成int16
作者: Sailing7    时间: 2014-3-9 16:27
箫剑酒仙 发表于 2014-3-9 16:21
强制转换(int16)ftm->CNT,还有所有有关变量都要改成int16

鉴于1ms 中不会有很大的脉冲数,因此通过判断。然后相减。能够得打这样的值[attach]56658[/attach]。能够指点一二不

作者: 箫剑酒仙    时间: 2014-3-9 16:59
好吧,也行的
作者: 动感小麦兜    时间: 2014-3-9 17:59
用s16呢,我前段时间也这样,后来改成s16就好了
作者: Sailing7    时间: 2014-3-9 18:16
动感小麦兜 发表于 2014-3-9 17:59
用s16呢,我前段时间也这样,后来改成s16就好了

你为什么改s16呢。?出现了什么问题呢?现在我用s16  单片机无法运行。。。
作者: 动感小麦兜    时间: 2014-3-9 23:03
Sailing7 发表于 2014-3-9 18:16
你为什么改s16呢。?出现了什么问题呢?现在我用s16  单片机无法运行。。。

我用的是k60 里面的变量类型有s16,并不是s16单片机





欢迎光临 智能车制作 (http://dns.znczz.com/) Powered by Discuz! X3.2