問題タブ [xc8]
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 - eeprom_write/read 関数によりコンパイル エラーが発生する (PIC マイクロコントローラ)
PIC 16f690 マイクロコントローラ用に MPLABX と C8 コンパイラを使用しています。
C8 データシートを読むと、eeprom_write/read 関数が xc.h ヘッダーに含まれているようです。ただし、MPLAB は関数を認識せず (識別子 eeprom_write/read を解決できない)、コンパイルしません。eeprom を使用するために必要な他の初期化はありますか?
保存しようとしている変数は、どちらも 1 バイト未満の符号なし文字です。文脈から外れて、これはそれらがどのようにフォーマットされているかです(「最終」は以前に宣言された文字です):
c - plib I2C 関数に関する XC8 で「未定義のシンボル」エラーを受け取る
こんにちは、StackOverflow!
私の質問は、下に(はるかに)貼り付けられたプログラム内で報告されているエラーに関するものです。ターゲット デバイスはPIC12LF1552で、シリアル ペリフェラルが 1 つ搭載されており、Microchip の XC8 コンパイラに付属のライブラリと組み合わせて使用できると想定しました。インターネット上の一部のソースは、PIC18 ラインのハイエンド デバイスのみがライブラリ機能をサポートすると述べていますが、他のソースは、ライブラリ機能は問題なく動作すると述べています。そのため、I2C 関数をゼロから書き直すことも、このプロジェクト用にアセンブリをまったく作成することもしないことにしました。そこで、XC8 に付属の周辺ライブラリを使用することにしました。それらをソースする方法については、コンパイラのドキュメントを読みました(i2c.h
下)。ドキュメントと私が見たいくつかの例に従って、これらのコマンドで実行するエラーチェックがいくつかあることは知っていますが、当面は、マスターとスレーブの両方が完全に動作すると仮定して、これを取り除くことができます地面。
関連するすべてのパスを含めました。そのため、コンパイル プロセスでここまで到達すると想定しています。C 言語とコンパイラの内部動作に関する私の知識レベルは非常に限られています。これらのツールを基本レベルで使用する方法しか知らないので、ここで欠けている基本的なものがあるかもしれません。
とにかく、このコードを MPLABX v1.95 でコンパイルすると、次のようになります。
:0: error: undefined symbols:
_AckI2C(dist/pickit3/production\strobe.X.production.obj) _ReadI2C(dist/pickit3/production\strobe.X.production.obj) _IdleI2C(dist/pickit3/production\strobe.X.production.obj) _OpenI2C(dist/pickit3/production\strobe.X.production.obj) _StopI2C(dist/pickit3/production\strobe.X.production.obj) _NotAckI2C(dist/pickit3/production\strobe.X.production.obj) _WriteI2C(dist/pickit3/production\strobe.X.production.obj) _StartI2C(dist/pickit3/production\strobe.X.production.obj)
Google、StackOverflow、または私の特定のコンテキストからこの問題に関連するものを見つけることができませんでした (別の人が、Microchip のレガシー C18 コンパイラから移植するときに非常によく似た問題を抱えていましたが、私はその人が彼の問題を解決するために行ったすべてのことを既に行いました) .
問題は、なぜこのコンパイラ エラーが発生するのかということです。また、C 言語または Microchip の実装でこれを引き起こしているメカニズムは何ですか?
c - PIC12F675 で ADC を適切にシャットオフする
簡単なデジタル IO コードを CCS コンパイラから XC8 に移植しようとしています。
MCUはPIC12F675です。
XC8 には、12 シリーズ用のペリフェラル ライブラリがありません。
私はそれを構成し、時計を設定することができました。
デフォルトでは、ピン 0 ~ 3 をデジタル IO として使用できないようです。
ADCの設定が原因だと思いますが、以下のパラメータのいずれかである可能性があります。
このCCSコードをXC8に書くのを手伝ってくれる人はいますか?
前もって感謝します。
c18 - Microchip XC8 コンパイラと C18 コンパイラの違いは何ですか?
XC8 コンパイラと C18 コンパイラの違いをさらに理解したい。
XC8 が、すべての 8 ビット マイクロチップ コントローラ用の最新のコンパイラであることは知っています。例: PIC16F、PIC18F。C18 は PIC18 製品のコンパイラです。C18の場合、PIC18シリーズにはPIC18FとPIC18Cの両方が含まれていますね。
XC8 は C18 に比べてさらに進化したバージョンだと思います。以前にC18でコンパイルされたコードのすべて/一部をXC8でもコンパイルできるということですか。そうでない場合、どうあるべきか。
ところで、現在 (数日) PIC18F2455/2550/4550 USB インターフェイスに関するサンプル/チュートリアル コードを探しています。ポインタがあれば、本当に感謝しています。
c - mplab xc8/16 builtin_constant_p
mplab コンパイラ ユーザー ガイドでこれを探していましたが、何も見つかりませんでした。私は盲目などではないことを確認するためにここに尋ねています:
GCC コンパイラは、__builtin_constant_p(x) などの非常に興味深い便利な組み込み関数を提供します。マイクロチップコンパイラでそのようなものを見つけたことはありませんし、存在しないと思います.
質問: Microchip XCxx コンパイラは、デバイス固有のもの (特定のレジスタ アドレスで変数を宣言する、または割り込み関数を宣言するなど) とは別に、非標準の組み込み関数を提供しますか?
編集:さらに明確にするために:私は主にコンパイラから情報を取得することに興味があります。良い例は builtin_constant のようなものです。これは、通常は使用できない情報をプログラムで利用できるようにするためです。しかし、私はこの質問を定数式のみを見つけることに限定しません。
c - ビット演算 !x および x==0
質問したいだけです。
!x
と同じですかx==0
?
これらを使用して条件 (割り込み) をテストしていますが、この場合x
は 1 ビットのみです。私が使用しているコードのサンプル:
c - PIC16F887 PORT は XC8 C コンパイラでは動作しません
私はPICプログラミングにかなり慣れていないので、C(MPLABXでMicrochipのXC8 Freeでコンパイル)を使用して、単純な「入力から出力へ」プログラムを作成しようとしています。
私が抱えている問題は、C でプログラミングするときに RA2、RA3、および RA5 入力ピンが機能しないことです。ラダー
でプログラミングすると、これらのピンは正常に機能するため、おそらくハードウェアの問題ではありません。
しばらくインターネットで検索しましたが、同じ問題を抱えている人はまだ見つかりませんでした。
PICに焼き付けようとしているプログラムは次のとおりです。
RA4 を HIGH に設定すると PORTB で出力が得られますが、RA2、RA3、RA5 では得られません。これは構成ビットか何かの問題である可能性があると思いますが、よくわかりません。
使用されているハードウェア:
マイクロチップ PIC16F887
FLEXiS Plus ボード(英語のマニュアルはありませんが、8 ページと 9 ページにボードの回路図があります)
使用しているソフトウェア: