問題タブ [c18]

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 投票する
1 に答える
484 参照

c - C18疑似変数

C18 コンパイラを使用して、C で Jalv2 のような疑似変数を作成する方法を探しています。疑似変数は、変数のように振る舞うものですが、実際には関数です。

Jalv2 では、次のような疑似変数を作成できます。

the_var実際にこれらの関数が実行されている間に、 に読み書きできるようになりました:

Cに似たものはありますか?

0 投票する
1 に答える
1840 参照

c - 疑わしいポインタ変換の警告

Microchip の C18 コンパイラを使用して C コードをコンパイルしています。[2054] suspicious pointer conversionこのコードで警告が表示されます:

この警告の意味と解決方法を教えてください。

0 投票する
1 に答える
3525 参照

c - リンク ステップでシンボルが見つからない (XC8 コンパイラ)

XC8 コンパイラを使用して C プログラムをコンパイルおよびリンクしようとしています。C18 コンパイラから変更し、コードにいくつかのマイナーな互換性変更を加えました。C18 では、コードは問題なくコンパイルおよびリンクされました。XC8 では、コンパイルは正常に行われますが、リンク ステップは次のエラーで失敗します。

.hコンパイルが成功すると、プロトタイプが見つかったので、ファイルが正常に含まれていると思います。コンパイラがファイルを見つけることができないと思い.cます。

関数putchは自分のプログラムでは呼び出されませんputcharが、呼び出されてその関数を使用します。で始まる関数ENC_は私自身の関数です。

XC8 ツールスイートの「インクルード検索パス」に 2 つのパスを追加しました。

  • C:\Program Files (x86)\Microchip\xc8\v1.12\sources、コンパイラの.cファイルが配置されている場所、私は信じています
  • C:\...\lib、自分の.cファイルがある場所。

ただし、まだエラーが発生します。

この問題を解決するにはどうすればよいですか?

これは完全なログです:

0 投票する
2 に答える
3512 参照

c - PIC18 用の C18 ライブラリの遅延関数を使用した長い遅延

Fosc = 10MHz の PIC18 を使用しています。したがって、Delay10KTCYx(250) を使用すると、10,000 x 250 x 4 x (1/10e6) = 1 秒になります。

C18 の遅延機能を非常に長い遅延 (たとえば 20 秒) に使用するにはどうすればよいですか? 私は Delay10KTCYx(250) の 20 行だけを使用することを考えていました。もっと効率的でエレガントな方法はありますか?

前もって感謝します!

0 投票する
1 に答える
76 参照

arrays - 複数ファイルの埋め込みプロジェクトの場合に配列をグローバルとして定義する

配列を mplab c18 でグローバルとして宣言しようとしましたが、あまり成功しませんでした。配列要素にアクセスする方法はありますか、または配列をグローバル /extern として宣言し、他のソース ファイルからアクセスできますか。

0 投票する
1 に答える
8033 参照

c - C での Char 配列の比較

Cで2つのchar配列を比較する次の関数があります:

そしてメインのどこか:

i = 0 ですぐに0 を返します。関数を次のように変更すると、次のようになります。

...それは魅力のように機能します。関数テスト デバッガーの最初のバージョンでは、バッファーとワード配列は char* 型であると表示されます。関数 test の 2 番目のバージョンでは、バッファーは char* 型で、テスト配列は char[] 型であると述べています。関数 strcmp() も機能しません。

ここで実際に何が間違っているのですか?プログラムはPICマイコン用、コンパイラはC18、IDEはMPLABです。