注册 登录
查看: 561|回复: 31

欧姆龙的问题

[复制链接]
发表于 2014-4-5 14:04:57 | 显示全部楼层 |阅读模式
同样的程序,我就是把正交解码的程序放入了山外中级直立里怎么就没有返回值了呢?(管教已经声明了)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

 楼主| 发表于 2014-4-5 15:04:42 | 显示全部楼层
我用串口if(g_nLeftMotorPulseSigma>=0)
    {
        printf("\n正转:%d"g_nLeftMotorPulseSigma,);

    }
接受的都是乱码,没有在正交解码中那么好
回复 支持 反对

使用道具 举报

发表于 2014-4-5 15:36:24 来自手机 | 显示全部楼层
公孙慕容 发表于 2014-4-5 15:04:42
我用串口if(g_nLeftMotorPulseSigma>=0)
    {
        printf("\n正转:%d"g_nLeftMotorPulseSigma,);

    }

乱码,一般是串口通信异常,波特率设置对了没
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-4-7 10:35:11 | 显示全部楼层
山外メ雲ジ 发表于 2014-4-5 15:36
乱码,一般是串口通信异常,波特率设置对了没

我把所有的波特率都试了(uart_init (UART3, 9600);),这个程序我是有正交解码的程序考过来的,没有修改别的,这样也没有返回值。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-4-7 10:44:32 | 显示全部楼层
山外メ雲ジ 发表于 2014-4-5 15:36
乱码,一般是串口通信异常,波特率设置对了没

而且就是乱码也就是前几秒有,而后面就不再运行了,因为乱码在后期也不会出现了


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

发表于 2014-4-7 11:04:43 | 显示全部楼层
FTM2有bug,修复了没有?
回复 支持 反对

使用道具 举报

发表于 2014-4-7 11:05:22 | 显示全部楼层
公孙慕容 发表于 2014-4-7 10:44
而且就是乱码也就是前几秒有,而后面就不再运行了,因为乱码在后期也不会出现了

先屏蔽不相关的代码,测测串口通信正不正常?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-4-7 11:11:42 | 显示全部楼层
丌官娅硕 发表于 2014-4-7 11:04
FTM2有bug,修复了没有?

已经修改了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-4-7 11:14:05 | 显示全部楼层
丌官娅硕 发表于 2014-4-7 11:05
先屏蔽不相关的代码,测测串口通信正不正常?

void PIT0_IRQHandler(void)
{     int i=100;
    led_turn(LED0);                             //闪烁 LED0
       printf("\n正转:%d",i);
    AD_Calculate();                             //AD
    Speed_Calculate(g_fCarAngle,Gyro_Now);      //速度计算
    PIT_Flag_Clear(PIT0);                       //清中断标志位
}这个都是乱码,不是波特率的事感觉应该有什么没有声明,但是我不清楚那里没有声明
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-4-7 11:20:15 | 显示全部楼层
是不是哪里和中级的程序冲突了?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-4-7 11:28:27 | 显示全部楼层
现在的问题是加速度环而欧姆龙没有返回值
回复 支持 反对

使用道具 举报

发表于 2014-4-7 15:21:57 | 显示全部楼层
公孙慕容 发表于 2014-4-7 11:28
现在的问题是加速度环而欧姆龙没有返回值

你用上位机看了,没有返回值吗?修改了bug后,应该有返回值的。
有个可能是你的欧姆龙 没有外部上拉电阻。如果是用我们的电机驱动模块,那应该是有上拉电阻的
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-4-7 16:30:54 | 显示全部楼层
山外メ雲ジ 发表于 2014-4-7 15:21
你用上位机看了,没有返回值吗?修改了bug后,应该有返回值的。
有个可能是你的欧姆龙 没有外部上拉电阻 ...

bug已经修改了,我用的是你们的电机驱动,有可能是我没有移植完全,就是正交解码没有移植完全,我现在不知道改怎么做了,从成交解码的程序到中级直立里来还需要修改底层库吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-4-7 16:32:19 | 显示全部楼层
山外メ雲ジ 发表于 2014-4-7 15:21
你用上位机看了,没有返回值吗?修改了bug后,应该有返回值的。
有个可能是你的欧姆龙 没有外部上拉电阻 ...

  void GetMotorPulse(void)
   {
     g_nLeftMotorPulseSigma=100;//FTM_QUAD_get(FTM1);          //获取FTM 正交解码 的脉冲数(负数表示反方向)
    g_nRightMotorPulseSigma=100;//FTM_QUAD_get(FTM2);
     FTM_QUAD_clean(FTM1);
        FTM_QUAD_clean(FTM2);
   }
我这样写就有返回值,应该是FTM_QUAD_get(FTM1)这个函数没有移植对
回复 支持 反对

使用道具 举报

发表于 2014-4-7 16:59:03 | 显示全部楼层
公孙慕容 发表于 2014-4-7 16:32
void GetMotorPulse(void)
   {
     g_nLeftMotorPulseSigma=100;//FTM_QUAD_get(FTM1);          / ...

你先用我们提供的例程,来看看有没有问题。
这例程,修复bug后,应该是没问题的了,有问题,很容易被大家发现
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-4-7 17:33:42 | 显示全部楼层
山外メ雲ジ 发表于 2014-4-7 16:59
你先用我们提供的例程,来看看有没有问题。
这例程,修复bug后,应该是没问题的了,有问题,很容易被大家 ...

用你们的历程第五章的正交解码没有问题,而且能返回正反转,换到直立里就不行了,我也很费解
回复 支持 反对

使用道具 举报

发表于 2014-4-7 17:36:26 | 显示全部楼层
公孙慕容 发表于 2014-4-7 17:33
用你们的历程第五章的正交解码没有问题,而且能返回正反转,换到直立里就不行了,我也很费解

那就排除法,先屏蔽不相关的代码。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-4-7 17:43:07 | 显示全部楼层
山外メ雲ジ 发表于 2014-4-7 17:36
那就排除法,先屏蔽不相关的代码。

我已经试过了,就是FTM_QUAD_get(FTM1),没有返回值
回复 支持 反对

使用道具 举报

发表于 2014-4-7 17:45:11 | 显示全部楼层
公孙慕容 发表于 2014-4-7 17:43
我已经试过了,就是FTM_QUAD_get(FTM1),没有返回值

既然用我们第五章的例程是没问题,那么你可以排除法,一步步排除原因啊。

FTM_QUAD_get(FTM1),没有返回值。这个仅仅是实验现象,但什么原因导致这问题的,还需要继续排除啊
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-4-7 17:49:44 | 显示全部楼层
山外メ雲ジ 发表于 2014-4-7 17:45
既然用我们第五章的例程是没问题,那么你可以排除法,一步步排除原因啊。

FTM_QUAD_get(FTM1),没有返 ...

我这几天光在想声明应该在使能端的什么位置,和什么乱七八糟的我都想了,我就不知道什么原因引起得了
,不过我还是应该还是有什么没有声明才引起的
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-4-7 18:20:26 | 显示全部楼层
我就用正交解码和直立的程序混合在一起就是不行,用串口接到乱码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-4-7 18:24:39 | 显示全部楼层
公孙慕容 发表于 2014-4-7 18:20
我就用正交解码和直立的程序混合在一起就是不行,用串口接到乱码

应该是这两个程序有一个地方有冲突,就是不知道冲突在哪里
回复 支持 反对

使用道具 举报

发表于 2014-4-7 18:53:08 | 显示全部楼层
公孙慕容 发表于 2014-4-7 18:20
我就用正交解码和直立的程序混合在一起就是不行,用串口接到乱码

所以你需要慢慢屏蔽一些代码,看看什么代码导致的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-4-7 19:18:06 | 显示全部楼层
山外メ雲ジ 发表于 2014-4-7 18:53
所以你需要慢慢屏蔽一些代码,看看什么代码导致的。

我也不知道,我一行一行在屏蔽也没找到,程序给你发过去了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-4-7 19:24:47 | 显示全部楼层
山外メ雲ジ 发表于 2014-4-7 18:53
所以你需要慢慢屏蔽一些代码,看看什么代码导致的。

这个程序已经困扰我三天了,什么方法我都想过了
回复 支持 反对

使用道具 举报

发表于 2014-4-7 19:50:42 | 显示全部楼层
公孙慕容 发表于 2014-4-7 19:18
我也不知道,我一行一行在屏蔽也没找到,程序给你发过去了

只要屏蔽到剩下的代码跟我们的第五章例程一样,那应该容易找出原因的啊。

现在我手上有几件比较重要的事情处理,你先发到我的邮箱:minimcu@foxmail.com。我明天看看怎么回事
回复 支持 反对

使用道具 举报

发表于 2014-4-8 14:46:32 | 显示全部楼层
我测试了一下,可以正常脉冲计数啊!!!

我用FTM0_CH3 输出pwm,短接到T3管脚,所以我把你的代码修改了一下:
  1. FTM_PWM_init(FTM0, FTM_CH3,2200,500);
另外PIT0中断里屏蔽了速度控制:
  1. /**********************中断服务程序*******************/
  2. void PIT0_IRQHandler(void)
  3. {
  4.   int o;
  5.    PIT_Flag_Clear(PIT0);
  6.      g_n1MSEventCount++ ;
  7. //    g_nSpeedControlPeriod ++;
  8. //    SpeedControlOutput();

  9.      if (g_n1MSEventCount==2)
  10.     {
  11. //      Speed_Calculate(g_fCarAngle,Gyro_Now);      //速度计算
  12. //    AD_Calculate();                             //AD

  13.     o++;
  14.     if(o>=20)
  15.       {
  16. //        o=o;
  17. //        SpeedControl();
  18. //        g_nSpeedControlPeriod =0 ;
  19.        }
  20.     }
  21.     else if(g_n1MSEventCount>=5)
  22.     {
  23.       g_n1MSEventCount=0 ;
  24.       GetMotorPulse();
  25.     }
  26.     PIT_Flag_Clear(PIT0);                       //清中断标志位
  27. }
测到 g_nRightMotorPulseSigma 的值为 11,与计算的结果一致
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-4-8 15:54:20 | 显示全部楼层
山外メ雲ジ 发表于 2014-4-8 14:46
我测试了一下,可以正常脉冲计数啊!!!

我用FTM0_CH3 输出pwm,短接到T3管脚,所以我把你的代码修改了 ...

你的意思是我的速度环除了问题而不是欧姆龙的问题?
回复 支持 反对

使用道具 举报

发表于 2014-4-8 15:55:38 | 显示全部楼层
公孙慕容 发表于 2014-4-8 15:54
你的意思是我的速度环除了问题而不是欧姆龙的问题?

手上没有 欧姆龙,用PWM模拟的,可以检测到脉冲计数啊
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-4-8 16:03:43 | 显示全部楼层
山外メ雲ジ 发表于 2014-4-8 15:55
手上没有 欧姆龙,用PWM模拟的,可以检测到脉冲计数啊

我的欧姆龙我测试过,用的是第五章的正交解码程序没错,欧姆龙没有问题,你的意思就是我现在据需要改速度环之后我的程序就可以用了是把
回复 支持 反对

使用道具 举报

发表于 2014-4-8 17:14:22 | 显示全部楼层
公孙慕容 发表于 2014-4-8 16:03
我的欧姆龙我测试过,用的是第五章的正交解码程序没错,欧姆龙没有问题,你的意思就是我现在据需要改速度 ...

你试下屏蔽那些代码,看看咯。
我用PWM测试过是没问题的,剩下的是不是速度控制的代码干扰,需要你来调试。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-4-8 17:26:51 | 显示全部楼层
山外メ雲ジ 发表于 2014-4-8 17:14
你试下屏蔽那些代码,看看咯。
我用PWM测试过是没问题的,剩下的是不是速度控制的代码干扰,需要你来调试 ...

好的我试试。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回列表 返回顶部