注册 登录
查看: 1204|回复: 21

[摄像头组] 山外无线调试器如何接收并显示像速度这样的动态数据???求指导!!!

[复制链接]
发表于 2014-5-4 19:22:45 | 显示全部楼层 |阅读模式
   我们用的是山外的无线调试器,想通过调试器来观察赛道信息和各种参数。无线调试部分怎么修改和增加变量,山外大哥已经在视频教程里面说明了,我也基本上会。但是要在调试器上显示车子发来的当前速度【Car_Speed】,却发现个问题:
   在【FIRE_LCD.c】文件中,定义了LCD_char、LCD_str、LCD_num等用来显示字符、字符串和数字的函数,却没有用来显示动态数据的函数。我该怎么做才能在调试器上显示像当前速度这样的动态数据???求各位高手指点!!!
   

本帖被以下淘专辑推荐:

回复

使用道具 举报

发表于 2014-5-4 19:46:20 | 显示全部楼层
草原上的星星 发表于 2014-5-4 19:39
嗯,确实是有的,我也看见了,不过不知道是干嘛用的

参考var_display函数里动态显示的用法:
  1. //显示文字
  2. LCD_num_C(VAR_SITE(tab), VAR_VALUE(tab), Color, bkColor);
显示的位数 是在 FIRE_LCD.h文件里定义的:(下面是定义5位变量,就是16bit的十进制最大位数)
  1. #define MAX_NUM_BIT 5  
回复 支持 1 反对 0

使用道具 举报

发表于 2014-5-4 19:43:07 | 显示全部楼层
草原上的星星 发表于 2014-5-4 19:39
嗯,确实是有的,我也看见了,不过不知道是干嘛用的
  1.             //修改变量的两种方法:(通过宏条件编译)
  2.             //注意,对变量进行赋值,是不考虑 最大值和最小值的!
  3. #if 1
  4.             //方法1
  5.             var1++;
  6.             updata_var(VAR1);
  7. #else
  8.             //方法2
  9.             save_var(VAR1,var1 +1);
  10. #endif
  11.             if(var_syn(VAR1) == 0)
  12.             {
  13.                 //printf("\n同步失败");
  14.             }
  15.             else
  16.             {
  17.                 //printf("\n同步成功");
  18.             }
  19.             var_display(VAR1);
回复 支持 1 反对 0

使用道具 举报

发表于 2014-5-4 19:35:45 | 显示全部楼层
可以的啊,你参考调试器上的代码,就是动态显示数字的。
回复 支持 反对

使用道具 举报

发表于 2014-5-4 19:36:48 | 显示全部楼层
LCD_num,我记得是有一个函数的,有个设定位数的,设定位数的用途就是清空后面多余的文字。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-5-4 19:37:29 | 显示全部楼层
隗英秀 发表于 2014-5-4 19:35
可以的啊,你参考调试器上的代码,就是动态显示数字的。

额......调试器上的是自加的,我试了,var不能接收变量,只能赋予常量
回复 支持 反对

使用道具 举报

发表于 2014-5-4 19:39:21 | 显示全部楼层
草原上的星星 发表于 2014-5-4 19:37
额......调试器上的是自加的,我试了,var不能接收变量,只能赋予常量

调试器可以接收变量的,有个代码手动同步的功能,而不需要按键调试来自加的方式进行同步。
我找找先,之前用过。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-5-4 19:39:36 | 显示全部楼层
隗英秀 发表于 2014-5-4 19:36
LCD_num,我记得是有一个函数的,有个设定位数的,设定位数的用途就是清空后面多余的文字。

嗯,确实是有的,我也看见了,不过不知道是干嘛用的
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-5-4 19:46:30 | 显示全部楼层
隗英秀 发表于 2014-5-4 19:39
调试器可以接收变量的,有个代码手动同步的功能,而不需要按键调试来自加的方式进行同步。
我找找先,之 ...

手动调试是什么意思?我记得视频中山外大哥也有这么说过,不过我觉得很难理解,我觉得需要按键调试的才应该叫手动调试吧,而且他那个是用++来实现的,这个不应该是自动的嘛(不知道为什么叫手动)?
不过我觉得你说的应该是对的,很有可能我想的方向不对,调试器上的好像不是赋予变量的吧,我记得是用++的
回复 支持 反对

使用道具 举报

发表于 2014-5-4 19:49:47 | 显示全部楼层
草原上的星星 发表于 2014-5-4 19:46
手动调试是什么意思?我记得视频中山外大哥也有这么说过,不过我觉得很难理解,我觉得需要按键调试的才应 ...

其实是相比与按键调试来说,需要手动加入代码来同步变量,这也是手动调试的说法。

我一开始也很难理解的,其实应该叫 代码同步。

要同步变量,除了山外哥提供的按键调试外,还可以是 我们手动加入代码同步功能来进行更新数据。

不一定是++操作的,你直接赋值也行的,那里是示范作用。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-5-4 19:52:42 | 显示全部楼层
隗英秀 发表于 2014-5-4 19:49
其实是相比与按键调试来说,需要手动加入代码来同步变量,这也是手动调试的说法。

我一开始也很难理解 ...

嗯,我试试看。听君一席话,胜读十年书!让我少走了好多弯路,非常感谢!
回复 支持 反对

使用道具 举报

发表于 2014-5-4 19:53:54 | 显示全部楼层
呵呵,楼上都回答得差不多。
给看一下一个师弟的调试界面:




本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-5-4 20:06:55 | 显示全部楼层
山外メ雲ジ 发表于 2014-5-4 19:53
呵呵,楼上都回答得差不多。
给看一下一个师弟的调试界面:

嗯,谢谢!我也设计了一个界面,不过比较简约,我把背景色都调成灰色的了,这样不太晃眼。刚刚想拍一下我的界面,拍照的那手机没电了......
我对上面的数据有些疑问:
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-5-4 20:10:50 | 显示全部楼层
山外メ雲ジ 发表于 2014-5-4 19:53
呵呵,楼上都回答得差不多。
给看一下一个师弟的调试界面:

唉,一按错键发表了,不好意思哈。我对这界面上显示的数据有些疑问:
1.PID参数的值都挺大,不知这个和什么有关?
2.速度设定值好像是用占空比的吧?我觉得这不够精确,还是用r/s比较好,因为同样的速度在不同的情况下会有不同的占空比
回复 支持 反对

使用道具 举报

发表于 2014-5-4 20:17:02 | 显示全部楼层
草原上的星星 发表于 2014-5-4 20:10
唉,一按错键发表了,不好意思哈。我对这界面上显示的数据有些疑问:
1.PID参数的值都挺大,不知这个和什 ...

PID 这个不是我的专业,所以我不懂。
速度的话,用 脉冲计数值 来作为参考就好。
回复 支持 反对

使用道具 举报

发表于 2014-6-3 17:22:02 | 显示全部楼层
草原上的星星 发表于 2014-5-4 20:10
唉,一按错键发表了,不好意思哈。我对这界面上显示的数据有些疑问:
1.PID参数的值都挺大,不知这个和什 ...

这很正常吧,貌似是最后寻找最优方案吧,,
回复 支持 反对

使用道具 举报

发表于 2014-7-23 01:06:52 | 显示全部楼层
隗英秀 发表于 2014-5-4 19:43

这个例程,在山外哪个工程中,
急求!!!
回复 支持 反对

使用道具 举报

发表于 2014-7-23 08:14:01 | 显示全部楼层
111xian 发表于 2014-7-23 01:06
这个例程,在山外哪个工程中,
急求!!!

就是无线调试的例程啊
回复 支持 反对

使用道具 举报

发表于 2014-7-23 08:45:07 | 显示全部楼层
山外メ雲ジ 发表于 2014-7-23 08:14
就是无线调试的例程啊

      i++;
        if(i > 0xffff)
        {
            i = 0;

            //修改变量的两种方法:(通过宏条件编译)
            //注意,对变量进行赋值,是不考虑 最大值和最小值的!
#if 1
            //方法1
            var4++;
            updata_var(VAR4);
#else
            //方法2
            save_var(VAR1,var1 +1);
#endif
            if(var_syn(VAR4) == 0)
            {
                //printf("\n同步失败");
            }
            else
            {
                //printf("\n同步成功");
            }
                //        var_syn(VAR4) ;
            var_display(VAR4);
        }
底层要不要改???
我在小车调用的这个函数,发送到调试器,发现不行呀,,,,
回复 支持 反对

使用道具 举报

发表于 2014-7-23 08:50:13 | 显示全部楼层
111xian 发表于 2014-7-23 08:45
i++;
        if(i > 0xffff)
        {

不需要改底层的啊。

你先用我们的例程,试试看。然后再移植到你现在的例程上
回复 支持 反对

使用道具 举报

发表于 2014-7-23 08:54:44 | 显示全部楼层
山外メ雲ジ 发表于 2014-7-23 08:50
不需要改底层的啊。

你先用我们的例程,试试看。然后再移植到你现在的例程上

我用你们的例程,显示变量很好,
但是移植到自己的工程就不行了,,
我再试试,,,
回复 支持 反对

使用道具 举报

发表于 2014-12-15 17:30:32 | 显示全部楼层
很有用啊!最近正在调车!顶一个!
回复 支持 反对

使用道具 举报

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

本版积分规则

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