找回密码
 马上注册

QQ登录

只需一步,快速开始

查看: 4641|回复: 5

NXC学习中的疑问

[复制链接]
发表于 2013-1-29 07:10:00 | 显示全部楼层 |阅读模式
终于有大块大块的时间学习NXC了,但由于自己能力有限,学习过程中遇到了不少的问题,自己解决又有些难度,于是就想出了这个招,希望高手们都来帮个忙,让俺的NXC学习之路变得轻松一些。首先谢谢大家的支持~!

第一个问题:使用NXC中的GraphicOut()函数时,俺现在的做法是先使用NXT—G把要使用的图像下载到主机上,然后再在NXC中调用。有没有更简便的方法?

第二个问题:坛子里好像有问过的,但没找到答案。想使用NXC中的正余弦函数时,于是找到了nxc-Guild中9.762的ex_sin_cos.nxc,可是在将这个程序复制到编译环境中,保存执行时,却遇到了编译错误。原因是程序中的三个数学函数未定义,这是怎么回事?

源代码复制在这里了,以方便大家找到原因,再次表示感谢。
//  ex_sin_cos.nxc
//  Run  this  program  and  you  will  see  a circle   appear  on  the NXT  screen   in a
//  strange  random   way.  No two  runs  will  produce   the  circle  in  exactly  the  same
//  way.
//  This  program  runs  indefinitely    --  press  gray  button  to  exit.
//  Reguires   enhanced  firmware   1.28  or  later.


#define   SCREEN_WIDH   100
#define   SCREEN_HEIGHT    64
#define   X_ZERO  (SCREEN_WIDH    / 2)
#define   Y_ZERO  (SCREEN_HEIGHT    /  2)
#define   R (Y_ZERO   - 2)
#define   MAX_DEG  360

//  Convert  a  float  to  its nearest   integer   value.
inline int integer(float x)
{
    return  trunc(x+ 0.5);
}

task  main()
{
    while(true)
    {
       float   angle  = RADIANS_PER_DEGREE     * Random(MAX_DEG);
       float   x = X_ZERO   + R  * cos(angle);
       float   y = Y_ZERO   + R  * sin(angle);
       PointOut(integer(x),      integer(y));
       //  Without   the Wait,   the program   runs  too  fast!
       Wait(MS_20);
    }
}


如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
发表于 2013-1-29 10:33:37 | 显示全部楼层
第一个问题没有其他的解决办法
第二个问题,请粘贴错误代码提示,另外,用这几个函数,记得是需要下载bricxcc的固件的。
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

 楼主| 发表于 2013-1-29 12:34:48 | 显示全部楼层
谢谢糖老大,我NXT主机估计是没有下载bricxcc固件造成的,我再试试看。
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

 楼主| 发表于 2013-1-29 12:41:02 | 显示全部楼层
问题已解决,就是固件的问题,再次表示感谢~!
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

 楼主| 发表于 2013-1-30 06:59:16 | 显示全部楼层
糖伯虎 发表于 2013-1-29 10:33
第一个问题没有其他的解决办法
第二个问题,请粘贴错误代码提示,另外,用这几个函数,记得是需要下载bric ...

为了能够打扰你,只好发引用方式提问了,勿怪~

学习马达控制函数的过程中,遇到了一些问题,关键是几个术语不太明白,搞得非常吃力。

(1)在查阅关于角度传感器的函数时,常量定义中有马达的几种状态:Idle Ramup,Running,Rampdown,Hold,一三五三种比较容易理解,但二四两种状态是个什么情况?本想写个程序测试一下,但苦于自己刚刚入门,知识储备太少,难度太大,只好再度请教了。
(2)在重置角度传感器是,有六种方式 :NONE,COUNT,  Block Count,  Rotation Count, BlockAndTacho, All。由于对于角度传感器理解不到位,目前三、四、五三种方式是什么情况,无法做到理解,不知道将来的学习是不是受到影响。  
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2013-1-30 11:32:11 | 显示全部楼层
sinten 发表于 2013-1-30 06:59
为了能够打扰你,只好发引用方式提问了,勿怪~

学习马达控制函数的过程中,遇到了一些问题,关键是几个 ...

问题一,应该是梯度上升,和梯度下降的意思
问题二,我也不清楚,nxc中应该有参数解释的,可以自行翻阅
其实学习nxc,你研究这些个东西已经太深了,在我看来,高级参数模式函数,基本上用不到。
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

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

本版积分规则

QQ|手机版|中文乐高 ( 桂ICP备13001575号-7 )

GMT+8, 2024-4-28 05:25 , Processed in 0.174864 second(s), 22 queries .

Powered by Discuz! X3.5

Copyright © 2001-2020, Tencent Cloud.

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