問題タブ [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.
pic - XC8 割り込み設定
pic16f887 のタイマー割り込みを書き込もうとしています。私はいくつかのウェブサイトをチェックしましたが、それらのほとんどは割り込みサブルーチンを次のように書くことを推奨しています。
void 割り込み名 (void)
ただし、私のプログラムは、そうすることで割り込み名とIsrが競合していると言っています。main.c:42: エラー: (1375) 複数の割り込み関数 (_led および _isr) が、割り込みベクトルが 1 つしかないデバイスに対して定義されています
これは私のコードのサンプルです。
c - uint8_t を int8_t にキャストする
Microchip XC8を使用して、私は構造を持っています
符号付きの数値を使用したため、test は -13 (oxFFF3) になると予想されますが、0xF3 として計算されます。
なんで?
編集: gcc で試したところ、結果は期待どおりです。
c - xc8 警告: var の初期値が異なります
コンパイラの警告が表示されました:
対応する version.h ファイルは次のようになります。
使用法:
main.c:
otherfile.c:
これまでのところ、これは説明的で明確です。問題は、const char 文字列がヘッダー ファイルで定義されており、複数のソース コード ファイルに含まれていることだと思います。したがって、コンパイラは複数の「svn_string_revision」変数を認識し、それを再宣言として扱います。ただし、通常、値は常に同じである必要があります。私の version.h ファイルは、すべてのビルドの前に再生成される自動生成ファイルです。
誰かが以前にこれに遭遇したことがありますか? どうすれば対処できますか? クリーンなアプローチは、version.c で補完された version.h ファイルを使用することです。ここで、ヘッダーは次のように宣言します。
とソース
しかし、これには自動コード生成を書き直す必要があり、これは避けたいと思います。
簡単に言えば、私の質問は次のとおりです。
- 警告に対する私の理解は正しいですか?
- version.h を .c と .h ファイルに分割したくない場合、これらの警告を適切に回避するにはどうすればよいですか
pic - このプログラムが PORTB では動作するのに、PORTA (MPLAB XC8) では動作しないのはなぜですか?
これは、XC8 (Microchip) で LED をオン/オフする簡単なプログラムです。
1)このコードは機能します:
2) このコードは機能しません:
ポート B を取得してもポート A を取得できない場合、LED をオンにできるのはなぜですか?
よろしくお願いします。
microchip - 「XC8」コンパイラのみを使用して PIC18F14K50 用にビルド済みのサンプル コード ライブラリはありますか?
PIC18F14K50を使ってUSBインターフェースを作りたいです。c18 コンパイラを使用したソース コードがありますが、XC8 (v1.37) コンパイラを使用してファームウェアを更新したいと考えています。MPLAB X 3.25 を使用しています。C コンパイラは良い結果をもたらしていますが、ファームウェアを上位互換にしたいと考えています。
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 であるのに、なぜこれらの警告が表示されるのですか?