问题标签 [nxc]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
977 浏览

nxt - 在 NXC 中将带符号的 int 分隔为字节

有什么方法可以将有符号整数转换为 NXC 中的字节数组?由于语言限制,我也不能使用显式类型转换或指针。

我试过了:

但它失败了。

编辑:这工作......它只是没有下载。我浪费了大约一个小时试图弄清楚。>_>


编辑:在 NXC 中,>>是算术移位。int是有符号的 16 位整数类型。Abyte和 是一样的unsigned char


NXC 是“Not eXactly C”,是 C 的亲戚,但与 C 明显不同。

0 投票
2 回答
914 浏览

string - 将字节数组转换为字符串 (NXC)

有没有办法在 NXTscreen 上显示字节数组(使用 NXC)?

我试过这样:

但它给了我一个File Error! -1.

如果这是不可能的,我怎么能Data[0]在程序期间观看 的价值?

0 投票
1 回答
1038 浏览

nxt - 如何从 NXC 中的函数返回数组?

如何从 NXC 中的函数返回数组?我尝试了以下

但我明白了Variable name expected。为什么?

PS如果有内置的拆分功能,我会很高兴在这里介绍一下。

0 投票
1 回答
1554 浏览

c - 乐高积木NXT-G可视化编程与NXC类C编程的区别

我正在接近乐高 NXT 编程,我从非常好的网站http://nxtprograms.com开始. 特别是我遵循了简单的 Segway 的说明,将光传感器作为平衡传感器 (http://nxtprograms.com/NXT2/segway/index.html)。我研究了他的 (Dave Parker) NXT-G 程序,并成功地在他的机器人和更简单的自定义版本(没有“驱动程序”)上复制。一切正常,无论是他的程序还是我的程序。我很快就转向了 NXC 编程,因为我已经了解 C 语言并且想利用更大的潜力。我用相同的 PID 常数和计算很好地复制了平衡算法。结果是 C 程序不起作用:机器人自我平衡 1 或 2 秒,振动比 NXT-G 的振动大,然后摔倒。

我比较了 NXT-G 和 C 基本逻辑,没有发现任何区别。所以我想知道在我的程序中,电机控制是否有问题。我想控制电机的 NXT-G 图形框做的更多是简单地调用 OnFwdSync(...)/OnRevSync(...)。这可以解释为什么我的程序会产生大的初始振荡。

有没有人有 NXC 程序驱动那个简单的 segway-lego 的例子,或者可以解释为什么我的程序中的电机控制失败?在底部我附上了我的程序的源代码。

谢谢。

0 投票
1 回答
607 浏览

thread-synchronization - NXC中如何控制线程的执行顺序?

我想在抢占式线程调度环境中编写一个并行程序,我可以使用互斥锁(二进制互斥锁,始终初始化为未使用)、等待指令以及线程协作指令(屈服于线程中的另一个任务)来同步我的线程,但没有任何可用的信号量机制(事实上,我正在为 Lego Mindstorm 用NXC编程语言编写程序)。

有没有办法用两个线程AB编写程序并生成像 (ABABAB ...) 这样的执行顺序?[这就像一个线程包含一个调用两个函数 A() 和 B() 的循环 - 但在这里,它是多线程方式]

如果我有信号量,我想我会这样做:

0 投票
1 回答
494 浏览

linux - 通过 USB 进行 NXC 通信

您将如何通过 USB 端口发送数据并在我的 Linux 机器中接收数据?

编译它:

dmesg:

现在如何获取 NXT 发送的“数据”?如何用 C 语言编写一个读取 USB 缓冲区的 Linux 程序?

0 投票
1 回答
585 浏览

pointers - 在NXT上的NXC中没有指针的内存测试操作?

我正在尝试为 NXT 编写内存测试程序,因为我有几个内存单元已烧毁,并且想确定哪些 NXT 无法使用。该程序旨在通过以下方式测试内存中每个字节的完整性:

  1. 将 64 位分配给线性反馈移位寄存器随机化器
  2. 向内存指针添加另一个字节
  3. 将随机数据写入选定的存储单元
  4. 验证数据是否正确回读

然而,通过这些尝试,我发现NXT实际上并不支持指针操作。因此,我不能简单地迭代指针字节并读取其位置进行测试。

如何在没有指针的情况下迭代内存中的索引?

0 投票
2 回答
326 浏览

lego - 在 NXC 的循环中使用后如何将变量重置回 0

出于某种奇怪的原因,当循环结束时,变量“角度”不会重置为 0。所有的数学只是计算 c = sqrt(a^2 + b^2 - 2abCos(theta)) 机器人不会在一行中完成所有的数学。在完整代码中,a 和 b 都是变化变量,并且基于超声波传感器输入。

sub 最多可以调用 3 次不同的时间,并且每次调用 sub 时角度变量都需要从 0 开始。

我试过把 float angle = 0; 或者只是角度= 0;在每个可以想象的地方,但没有任何效果。我什至尝试过使用 int angle = 0; 在多个地方。

0 投票
1 回答
663 浏览

c - Bricx 命令中心出现奇怪的编译器错误

我一直在研究一个让机器人跟随声音的程序,但我不断收到奇怪的编译器错误。我猜我犯了一些错误,使编译器脱离了轨道。

吐出来

在第 32、33、35-39、40、45-48、51、58、60-64、66-68 行

0 投票
1 回答
1993 浏览

compilation - Lego Mindstorms - 不伦不类的编译失败

我正在尝试对 Lego Mindstorms 机器人进行编程,但遇到了 NXC 问题。编译任何程序时都会出现编译错误。

例如:

没有给出错误信息,只是编译失败。

如何解决这个问题?