問題タブ [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.
nxt - NXC で符号付き int をバイトに分割する
NXC で符号付き整数をバイト配列に変換する方法はありますか? 言語の制限により、明示的な型キャストやポインターも使用できません。
私はもう試した:
しかし、それは失敗します。
編集:これは機能します...ダウンロードしていませんでした。私はそれを理解しようとして約1時間を無駄にしました。>_>
編集: NXC では>>
、算術シフトです。int
符号付き 16 ビット整数型です。Abyte
と同じものですunsigned char
。
NXC は'Not eXactly C'で、C の親戚ですが、C とは明らかに異なります。
string - バイト配列を文字列に変換する (NXC)
(NXC を使用して) NXTscreen にバイト配列を表示する方法はありますか?
私はこのように試しました:
しかし、それは私にFile Error! -1
.
Data[0]
これが不可能な場合、プログラム中にの値を確認するにはどうすればよいですか?
nxt - NXCの関数から配列を返す方法は?
NXCの関数から配列を返す方法は?私は以下を試しました
しかし、私は得Variable name expected
ます。なんで?
PS組み込みの分割機能がある場合は、ここで喜んで説明します。
c - レゴブリックのNXT-GビジュアルプログラミングとNXCCのようなプログラミングの違い
私はレゴNXTプログラミングに近づいており、非常に優れたサイトhttp://nxtprograms.comから始めました。。特に、バランスセンサーとして光センサーを備えたシンプルなセグウェイの指示に従いました(http://nxtprograms.com/NXT2/segway/index.html)。私は彼の(Dave Parker)NXT-Gプログラムを研究し、彼のロボットとより単純なカスタムバージョン(「ドライバー」なし)で正常に複製しました。彼のプログラムと私のプログラムのどちらでも、すべてが機能します。私はすでにClangを知っていて、より大きな可能性を活用したかったので、すぐにNXCプログラミングに切り替えました。まったく同じPID定数と計算を使用して、バランシングアルゴリズムを非常にうまく複製しました。その結果、Cプログラムが機能しなくなります。ロボットは1〜2秒間バランスを取り、振動はNXT-Gの場合よりも大きくなり、落下します。
NXT-GとCの基本ロジックを比較しましたが、違いはありませんでした。ですから、私のプログラムでは、モーター制御に何か問題があるのではないかと思います。モーターを制御するNXT-Gグラフィカルボックスは、OnFwdSync(...)/ OnRevSync(...)を呼び出すだけの何かをしていると思います。これは、私のプログラムが大きな初期振動を生成する理由を説明します。
誰かがその単純なセグウェイレゴを運転するNXCプログラムの例を持っていますか、または私のプログラムのモーター制御が失敗する理由を説明できますか?一番下に私のプログラムのソースコードを添付しました。
ありがとう。
thread-synchronization - NXC でスレッドの実行順序を制御するには?
プリエンプティブ スレッド スケジューリング環境で並列プログラムを作成したいのですが、ミューテックス (常に取られないように初期化されるバイナリ ミューテックス)、待機命令、およびスレッド協調命令 (スレッド内の別のタスクへの譲歩) を使用して同期することができます。しかし、利用可能なセマフォ メカニズムはありません (実際、私はLego Mindstorm 用のNXCプログラミング言語でプログラムを書いています)。
2 つのスレッドAとBでプログラムを作成し、(ABABAB ...) のような実行順序を生成する方法はありますか? [2 つの関数 A() と B() を呼び出すループを含む 1 つのスレッドを持つようなものですが、ここではマルチスレッド方式です]
セマフォがあれば、次のようにすると思います。
linux - USB経由のNXC通信
USB ポート経由でデータを送信し、Linux マシンでデータを受信するにはどうすればよいですか?
それをコンパイルしました:
dmesg:
では、NXT から送信された「データ」を取得するにはどうすればよいでしょうか? USB バッファを読み取る Linux プログラムを C 言語で作成するにはどうすればよいでしょうか?
pointers - NXT 上の NXC でポインターを使用しないメモリ テスト操作はありますか?
NXT のメモリ テスト プログラムを作成しようとしています。メモリ セルが焼けたものがいくつかあり、使用できない NXT を特定したいからです。このプログラムは、次の方法でメモリ内の各バイトの整合性をテストすることを目的としています。
- 線形フィードバック シフト レジスタのランダマイザーに 64 ビットを割り当てる
- メモリ ポインタへの別のバイトの追加
- 選択したメモリセルにランダムデータを書き込む
- データが正しく読み取られていることを確認する
しかし、これらの試行を通して、NXT が実際にはポインター操作をサポートしていないことがわかりました。したがって、単純にポインター バイトを反復処理して、その位置を読み取ってテストすることはできません。
ポインターなしでメモリ内のインデックスを反復処理するにはどうすればよいですか?
lego - NXC のループで使用した後に変数を 0 にリセットする方法
奇妙な理由で、変数「角度」は、ループが終了しても 0 にリセットされません。すべての数学は c = sqrt(a^2 + b^2 - 2abCos(theta)) を計算するだけです。ロボットはすべての数学を 1 行で実行するわけではありません。完全なコードでは、a と b は両方とも変化する変数であり、超音波センサー入力に基づいています。
サブは 3 回まで呼び出すことができ、角度変数はサブが呼び出されるたびに 0 から開始する必要があります。
float angle = 0; を入れてみました。または単に角度= 0; 想像できるすべての場所で、しかし何も機能しません。int angle = 0; を使用してみました。複数の場所で。
compilation - Lego Mindstorms - 説明のないコンパイルの失敗
Lego Mindstorms ロボットをプログラミングしようとしていますが、NXC に問題があります。プログラムをコンパイルすると、コンパイル エラーが発生します。
例えば:
エラーメッセージは表示されず、コンパイルに失敗しただけです。
この問題はどのように解決できますか?