問題タブ [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.
c - C18疑似変数
C18 コンパイラを使用して、C で Jalv2 のような疑似変数を作成する方法を探しています。疑似変数は、変数のように振る舞うものですが、実際には関数です。
Jalv2 では、次のような疑似変数を作成できます。
the_var
実際にこれらの関数が実行されている間に、 に読み書きできるようになりました:
Cに似たものはありますか?
c - 疑わしいポインタ変換の警告
Microchip の C18 コンパイラを使用して C コードをコンパイルしています。[2054] suspicious pointer conversion
このコードで警告が表示されます:
この警告の意味と解決方法を教えてください。
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
ファイルがある場所。
ただし、まだエラーが発生します。
この問題を解決するにはどうすればよいですか?
これは完全なログです:
c - PIC18 用の C18 ライブラリの遅延関数を使用した長い遅延
Fosc = 10MHz の PIC18 を使用しています。したがって、Delay10KTCYx(250) を使用すると、10,000 x 250 x 4 x (1/10e6) = 1 秒になります。
C18 の遅延機能を非常に長い遅延 (たとえば 20 秒) に使用するにはどうすればよいですか? 私は Delay10KTCYx(250) の 20 行だけを使用することを考えていました。もっと効率的でエレガントな方法はありますか?
前もって感謝します!
arrays - 複数ファイルの埋め込みプロジェクトの場合に配列をグローバルとして定義する
配列を mplab c18 でグローバルとして宣言しようとしましたが、あまり成功しませんでした。配列要素にアクセスする方法はありますか、または配列をグローバル /extern として宣言し、他のソース ファイルからアクセスできますか。
c - C での Char 配列の比較
Cで2つのchar配列を比較する次の関数があります:
そしてメインのどこか:
i = 0 ですぐに0 を返します。関数を次のように変更すると、次のようになります。
...それは魅力のように機能します。関数テスト デバッガーの最初のバージョンでは、バッファーとワード配列は char* 型であると表示されます。関数 test の 2 番目のバージョンでは、バッファーは char* 型で、テスト配列は char[] 型であると述べています。関数 strcmp() も機能しません。
ここで実際に何が間違っているのですか?プログラムはPICマイコン用、コンパイラはC18、IDEはMPLABです。