問題タブ [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.

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

pic - XC8 割り込み設定

pic16f887 のタイマー割り込みを書き込もうとしています。私はいくつかのウェブサイトをチェックしましたが、それらのほとんどは割り込みサブルーチンを次のように書くことを推奨しています。

void 割り込み名 (void)

ただし、私のプログラムは、そうすることで割り込み名とIsrが競合していると言っています。main.c:42: エラー: (1375) 複数の割り込み関数 (_led および _isr) が、割り込みベクトルが 1 つしかないデバイスに対して定義されています

これは私のコードのサンプルです。

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

c - uint8_t を int8_t にキャストする

Microchip XC8を使用して、私は構造を持っています

符号付きの数値を使用したため、test は -13 (oxFFF3) になると予想されますが、0xF3 として計算されます。

なんで?

編集: gcc で試したところ、結果は期待どおりです。

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

c - xc8 警告: var の初期値が異なります

コンパイラの警告が表示されました:

対応する version.h ファイルは次のようになります。

使用法:

main.c:

otherfile.c:

これまでのところ、これは説明的で明確です。問題は、const char 文字列がヘッダー ファイルで定義されており、複数のソース コード ファイルに含まれていることだと思います。したがって、コンパイラは複数の「svn_string_revision」変数を認識し、それを再宣言として扱います。ただし、通常、値は常に同じである必要があります。私の version.h ファイルは、すべてのビルドの前に再生成される自動生成ファイルです。

誰かが以前にこれに遭遇したことがありますか? どうすれば対処できますか? クリーンなアプローチは、version.c で補完された version.h ファイルを使用することです。ここで、ヘッダーは次のように宣言します。

とソース

しかし、これには自動コード生成を書き直す必要があり、これは避けたいと思います。

簡単に言えば、私の質問は次のとおりです。

  • 警告に対する私の理解は正しいですか?
  • version.h を .c と .h ファイルに分割したくない場合、これらの警告を適切に回避するにはどうすればよいですか
0 投票する
1 に答える
837 参照

pic - このプログラムが PORTB では動作するのに、PORTA (MPLAB XC8) では動作しないのはなぜですか?

これは、XC8 (Microchip) で LED をオン/オフする簡単なプログラムです。

1)このコードは機能します:

ポート b RB0 に接続されたスイッチ

2) このコードは機能しません:

スイッチ RA0 ポートに接続

ポート B を取得してもポート A を取得できない場合、LED をオンにできるのはなぜですか?

よろしくお願いします。

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

microchip - 「XC8」コンパイラのみを使用して PIC18F14K50 用にビルド済みのサンプル コード ライブラリはありますか?

PIC18F14K50を使ってUSBインターフェースを作りたいです。c18 コンパイラを使用したソース コードがありますが、XC8 (v1.37) コンパイラを使用してファームウェアを更新したいと考えています。MPLAB X 3.25 を使用しています。C コンパイラは良い結果をもたらしていますが、ファームウェアを上位互換にしたいと考えています。

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

c - Microchip XC8 警告「より短いデータ型への変換」および「符号付きから符号なしへの暗黙の変換」

PIC18F2420 用の xc8 1.35 コンパイラで MPLABX 3.20 を使用していますが、理解できない 2 つの奇妙な警告が表示されます。

警告を生成するソース コードの 1 つを次に示します。

これが私が使用するStruct Pinです:

このコードは、ピンを使用する簡単な方法を提供するために使用されます

次の警告があります。

Pin.c:13: 警告: (373) 符号付きから符号なしへの暗黙的な変換

Pin.c:17: 警告: (373) 符号付きから符号なしへの暗黙的な変換

...

Pin.c:17: 警告: (752) 短いデータ型への変換

両方の値が unsigned char であるのに、なぜこれらの警告が表示されるのですか?