1. ターゲット基板設計の場合の注意事項
2. ICD-Uxx, Mach Xでの書き込み/デバッグのトラブル
3. コンバイラのダウンロード手順
4. コンパイラのインストール時のトラブル
5. Cコンパイラ・ウィンドウズ版の複数バージョンのインストール
6. Cコンパイラ・ウィンドウズ版 v5クイック・チュートリアル
7. Cコンパイラ・ウィンドウズ版(PCW, PCWH, PCDIDE, PCWHD)のProject Wizardの使用方法の例
8. バージョンを見る方法
9. CCS Cコンパイラーに付いての基本的な質問
10. 新規購入とアップグレード, その他
11. MPLAB® IDEとMPLAB®X IDEとの統合
12. CCS® IDEからMPLAB® ICD3, PICkit3等の使用
13. コンパイラの動作
14. 入力/出力
15. 割り込み[インターラプト]
16. メモリー
17. #use I2Cについて
18. その他, Errorメッセージ
19. その他の便利な使い方
- 自作ターゲットで悩まれる前に下記をご覧下さい。
各種ミニプロト・ボード[PIC12F675, PIC12F683, PIC16F818, PIC16F877A, PIC16F887, PIC16F1937, PIC18F67J10, PIC16F1825, PIC18F4525, PIC18F6722[6720], PIC18F8722[8720], dsPIC30F4012, PIC24/33FJ128GA006, PIC24/33HJ128GP306等が選択可能]と ICD-U64又は、ロムライタ兼インサーキット・デバッガMACH-Xをベースとした
C言語組み込み開発キットPIC16F877Aの日本語チュートリアルとそれに同梱のPIC16F887Aミニプロト・ボードの回路図を参照下さい。 更に理解が深まると思います。
説明画面に関しまして、ご使用のコンパイラのバージョンとでは差異が有る可能性もありますが、それをご理解の上でご覧下さい。
また、これらは他種PICの操作方法のチュートリアルとしても参考にして頂けると思います。 - ターゲット基板設計の場合の注意事項であるよくある質問 - デバッガも参考にして下さい。
- ICD-Uxx本体は必ずPCのUSBポートに接続してご使用下さい。USB Hubは使用しないで下さい。※電源供給されたHubは利用可能
- ICD-Uの場合はターゲットに外部電源が供給されていることを確認して下さい。
*外部電源を使用されない場合は内部でジャンパーすることで電源供給が可能です。 - Mach-Xの場合はMach-Xで"Mach-X supplies power"にチェックを入れることでターゲットに電源供給できます。
- 自作ケーブルは少しでも長すぎたりノイズが酷い環境ではターゲットを認識しない場合がありますので15-20cm程度として下さい。
- Mach-X - ZIFソケットで書き込みされる場合は、CCSLOADソフトウエアのDeviceで ZIF soketにチェックが入っていることを確認して下さい。
- ICD関連のよくある質問
- ユーザー・ターゲット作成の注意点!をご覧下さい。
- デバイス・プログラマー/デバッガのトラブル・シューティングをご覧下さい。
- Windows 7,8,8.1,10 64bit版でのインストール時の注意
- Windows 7,8,8.1,10でインストールが始まらない場合
- 会社様独自の社内ネットワーク環境でご使用される場合はサポートの対象外とさせて頂きます。
ネットワーク管理責任者にお尋ね下さい。
- 何故、'File Version Mismatch'がでるのですか?
- OS File Neededのウィンドウが出るのですか?
- Application Error[EOleSySError]
Exception EOleSySError in module Pcw.exe At xxxxxxが表示されますが?- バージョンを最新のものにしたら古いバージョンでコンパイル出来ていたファイルがコンパイル出来なくなりました。
どうすれが良いですか?- OSを変更しましたが古いバージョンでコンパイル出来ていたファイルがコンパイル出来なくなりました。
どうすれが良いですか?- Access violation at address xxxxxXxxx. Write of address xxxxxxxxと表示されます。
どうすれが良いですか?- コマンド・ライン・コンパイラー(PCM,PCH,PCD)のインストール方法
- インストールし、実行すると下記の画面が表示される場合:
また、今迄バージョン3をご使用していてV4又は、V5をインストールされる場合はバージョン3を下記の"コンパイラの完全削除の方法"で完全削除してからインストールして下さい。
"コンパイラの完全削除の方法"を参照の上、完全に削除してから再インストールを行って下さい。- レジスレーション・ファイル(xxx.crg)のインスールされる場所は以下となります。
"C\ユーザー(Users)\(PCアカウント名のフォルダ)\AppData\Roaming\PICC"
*それが見つからない場合は、ここをクリックしてご覧下さい。
6. Cコンパイラ・ウィンドウズ[IDE]版 v5クイック・チュートリアル
7. Cコンパイラ・ウィンドウズ[IDE]版(PCW, PCWH, PCDIDE, PCWHD)のProject Wizardの使用方法の例
8. バージョンを見る方法
- Windows 7, 8, 8.1, 10 ⇒ ⇒ ⇒ "Compiler Version"をクリックすることで見ることが出来ます。
- ウィンドウズIDE版の場合は右上端の?マークよりAboutをクリックしますとダイアログに表示されます。
- 又は、 ⇒ ⇒ ⇒ "Compiler Version"で見ることが出来ます。
- コンパイラの完全削除の方法 ※v3.xxxにv4を上書きインストールしないで下さい。
- 起動時に現れるRegisterダイアログ[Product not registered]について
- Windowsのどのバージョンでコンパイラーは動作しますか?
- コマンド・ライン版とウィンドウズIDE版の違いについて
- MPLAB® IDEでPCMとPCWを使う違いはありますか?
- コマンド・ラインでの使用方法について
- ウィンドウズ版のPCW操作手順 - 既にあるソース・ファイルのコンパイルの方法は?
- ウィンドウズ版での日本語表示の設定方法は?
- 今迄使用していて突然コンパイルが出来なくなりましたが何故でしょうか?
- バージョンアップしたらCHECKSUMが異なりますが何故でしょうか?
- 異なったバージョンでHEXフィルの内容が異なりますが何故でしょうか?
- 分割コンパイルは出来ますか?
- 1つのプロジェクトに複数のCソースファイルを指定することは可能なのでしょうか?
- コンパイルとビルドの違いは何ですか?
- Printf文で英語は正しく表示されますが日本語では文字バケが起こります。どうすれが良いですか?
- CCS Cコンパイラのヘッダー部分の記述順序について
- 例、PIC16F84Aで作成したコードをPIC16F819で動作させたいが動作しない。どのように記述すれば良いのでしょうか?
- 例、PIC16F84Aで作成したコードをPIC16F628Aに変更したところ動作しなくなりました。 どのように記述すれば良いのでしょうか?
- IDEで各デバイスのコンフィギュレーション・ビット[Config Bits]を簡単に見るには?
詳細はマイクロチップ社の其々のデータシートのコンフィギュレーション・ワードのページで確認して下さい。
- dsPIC/PIC24/33チップの各種ヒューズ・オプションは何ですか?
- dsPIC30からdsPIC33への移行ガイドライン *マイクロチップ社ドキュメント
- コンパイル(BUILD FAILD)エラー・メッセージ
- IDEからのデバッグの方法
- デモソフトはありますか?
- デモソフトをご試用だった場合は、必ずcrgファイルを含む完全削除[アンインストール]を行って下さい。
Version 4.xxx, 5.xxxの全てバージョンはWindows 10に対応しています。 - 購入後、使用しようとインストールしましたが、Registration File Errorが現れて使用出来ません。どうすれが良いですか?
- バージョンを最新のものしたら古いバージョンでコンパイル出来ていたファイルがコンパイル出来なくなりました。どうすれが良いですか?
- PCWを持っていますが, 16ビット(18シリーズ)チップを使用するにはアップグレードや年間メンテナンスをする必要はありますか?
- CCS社からニュース又は、最新バージョンがアップされたときにEメールで案内を受け取るにはどうすれが良いですか?
- USB開発キットに関するサポートはどの程度の範囲で可能ですか?
- 何故、'File Version Mismatch'が表示されるのですか?
- エディターやデバッグのモニターで日本語全角を使用出来ないのですが?
- "Registration File Error PCM: can not find DLL"?
- MPLAB® IDEとMPLAB®X IDEとCCS Cコンパイラの互換性
- MPLAB® Xから"Invalid option: out=build/default/production\_ext\XXXX"と表示されますが、何故ですか?
- MPLAB内部のフロート変数はどのように見ますか?
- MPLAB IDEとの統合の方法は?
- Error 164 "C:\Program Files (x86)\PICC\devices\16fxxx.h" Line 11(9,18): Selected part does not have ICD debug capability
- MPLAB® IDEとの統合はこちら->をクリックしてご覧下さい。
MPLAB®X IDEとの統合はをクリックしてご覧下さい。
MPLAB X IDEと互換性のあるCCS Cコンパイラー・バージョンは4.105以降です。
MPLAB®X IDEとの統合はをクリックしてご覧下さい。
MPLAB X IDEと互換性のあるCCS Cコンパイラー・バージョンは4.105以降です。
※MPLAB®、及び、MPLAB®X[3.51現在]に関してはMicrochip社のマニュアルをご覧頂くかMicrochip社へお尋ね下さい。サポートは致しておりません。
※MPLABと異なりMPLAB®X にはTools -> Plugins -> Available PluginsにCCS C Compilerとして含まれていますので プラグインのダウンロードの必要はありません。MPLAB® XのAvailable Plugsinsでチェックを入れてInstallボタンをクリックの上 ご使用下さい。 *MPLABX 4.01現在
- MPLAB-X®の"Available Plugins"で CCS C CompilerがインストールされていてもToolchainに表示されない場合は? ※上記のpdfの通りにしても表示されない場合はMPLAB, MPLB X、又は、CCS C Compilerを再インストールして表示れるようになったとの報告があります。 ※注意: ターゲット・ソース・ファイルは任意のワーキング・ディレクトリー(デスクトップ等)で作業して下さい。
- MPLAB®ツールでターゲットをプログラムするためにHEXファイルを使用出来ますか?
- どのようにMPASMのオブジェクトを私のオブジェクトにリンクさせることが出来ますか?
- CCS CコンパイラからのMPLABシミュレータの使用方法は?
※注意: コンパイラーがインストールされているディレクトリー[C:\Program Files (x86)\PICC]には置かないで下さい。
Program Files (x86)\PICC\Examplesにある例えば、EX_SQW.Cをコンパイラする場合はそのサンプル・ファイルを 直接選択しますとBUILD FAILになります。一旦、デスクトップ上の任意のフォルダーにコピーし、その場所でソースを選択しコンパイルして下さい。
直接Examples上のファイルをコンパイルしますとエラーI/O Error 103が発生します。Program Files(x86)\PICC以外のユーザー専用 のフォルダーにコピーしてからご使用下さい。
また、IDE版でも同様にPICC内のファイル(Examples)を不用意に書き換え無い様に以下のメッセージが表示されます。
"Open in Place"はExamples内を直接さわることを避けるためにエラーI/O Error 103が発生します。
"Copy and Open"はRoaming/PICCにファイルがコピーされます。※任意の作業用フォルダーにファイルを置いて自己管理 して使用されることを強くお薦めします。
- CCS C IDEコンパイラでMPLAB® ICD2, MPLAB® ICD3, MPLAB® PICkit3とMPLAB® REAL ICE™の使用方法は?
- CCS C IDEコンパイラからのPICkit3の使用例
- MPLAB-XからのPICkit3の設定と使用例
- CCS C IDEコンパイラでICD3を使用しようとしていますが、下記のエラーが出ます。
Unable to Locate a 32-bit version of jvm.dll.
Select directory where JRE 32-bit(Java Runtime Environment) is installed.
- CCS C IDEコンパイラからのPICkit3の使用例
- バイトとワードの変換はコンパイラではどのように行なわれますか?
- TRUEとFALSE、コンパイラはどのように決定するのでしょうか?
- 何故、コンパイラは現在使われないTRISを使用するのでしょうか?
- 何故、コンパイラが800番地の代わりに0番地をコールするのですか?
- 何故、コンパイラがA0の代わりに20番地をアクセスするのです?
- 浮動小数点のフォーマットは何ですか?
- 浮動小数点データをデータ用EEPROMへ読み書きするサンプル・プログラムは?
- ICD(又は、ICD2)と互換性のあるコードを生成するにはどうすればよいですか?
- どのように関数へのポインタをつくりますか?
- Bit型変数を使って作成したコードはなぜ可読性が悪いのでしょうか?
- 演算操作にどれだけ要しますか?
- 型変換はいかに操作されるか?
- ブートローダーを開発するためにリセット・ベクタと割り込みセクタの場所を変えたいのですが?
CCS Bootloaderをダウンロード・サイトのUtilities からダウンロード出来ます。
CCSのブートローダを使ってPCからPICへダウンロードするためのコマンド・ライン・ユティリティー
ロイヤリティー不要で無償でユーザーの製品の一部としてディストリビュート出来ます。
コンパイラをインストール後のフォルダーExamplesにあるex_bootloader.c等と共にご使用下さい。
- 何故、LSTファイルはこんなに乱雑なのですか?
- デバッガを実行しないでどのようにスタンド-アローンHEXファイルをつくりますか?
- マルチプル・コンパイレーション・ユニットの使用について?
- 既にあるソース/プロジェクトのコンパイルの方法は? [ウィンドウズ版PCWの操作手順]
- IDE Project Wizardでプロジェクトを作成
- TRUEとFALSE、コンパイラはどのように決定するのでしょうか?
- どうすれば"Latch Register[ラッチ・レジスタ]"の値が読めますか?
内蔵関数は必要ありません。以下の様に記述して下さい。
#byte LatB = getenv("SFR:LATB")
その後、値を読むために他のC変数の様に"LatB"を使用することが出来ます。
LATCH Registerを有するPIC®のあるデバイスのLATCHの情報は下記の様に見ることが出来ます。
IDEのView -> "Register"で見ることが出来ます。
左側の各PIC®MCUをクリックすることでLatchを含む(チップがその機能を持っている場合)各種デバイスの情報を見ることが出来ます。
- I/Oピンのバイト幅での入出力の方法は?(I/Oポートへのバイト幅(ワンマップ・変数)での入出力の方法は?)
- どのようにPICをI2Cデバイスに接続しますか?
- 何故、プログラムはstandard I/Oで動作し、fastI/Oでは動作しないのですか?
- 2個もしくは複数個のPIC同士のコミュニケーションを取りたいのですが?
- 指定された時間後にタイムアウトするようなgetc()は作れますか?
- どうしたら変数をOUTPUT_HIGH()のような関数に渡すことができますか?
- 何故、ポートB、ピン3が動かないのですか?
- 何故、Port Aから信号が得れないのですか?
- RS232Cポートが思ったように動いてくれません?
- UARTが2チャンネルあるのですが切り替えができますか? 例) PIC18F46K22 内蔵ペリフェラルの入出力ピンをある程度自由に割り当てられるPICデバイスの場合、#pin_selectによって、事前に入出力ピンを正しく割り当てる必要があります。PPSで指定できる入力/出力以外を指定するとソフトウェアUARTになります。*以下の何れかを見て下さい。
- UARTを使ってRS232で割り込み受信するにはどの関数を使用しますか? 例) PIC24FJ256GA110
- #USE RS232, set_uart_speedの設定で"Expect comma", "Function used but not definedのエラーが起こります。 例) PIC18F67K40
- EUSART1,EUSART2を用いて2系統の232C通信を行いたいのですが? 例) PIC18F66K22
- PIC® MCU、又は、PIC® DSCで複数のRS232ポートは使用できますか?
- PIC®とPC(ターミナル)との接続方法は?
- シリアルポートを2チャンネル持つPIC®デバイスの設定について?
- CCPのPWMでの使い方について? *PICFUNのページ
- set_pwm1_duty(value)のvalueの具体的な記述について?
- #USE RS232, set_uart_speedの設定で"Expect comma", "Function used but not definedのエラーが起こります。 例) PIC18F67K40
- TIMER0割込の使い方とその周期の設定方法は?
- 割り込みから呼び出す関数には何か制限があるのでしょうか?
- RBポートの割り込みでボタンのプッシュを検出したいのですが?
- 割込みを無効にしないで割込み処理ルーチン内でdelay_XX()を使用出来ますか?
- 何故'Interrupts disabled to prevent re-entrancy'の警告が出るのですか?
- 何故、HIGH又は、FAST割り込みが動作しないのですか?(FASTはレジスタをセーブ/リストア、又は、はHIGH/FAST以外の割り込みの処理が優先される
- 直接内部レジスターにアクセスする方法はありますか?
- ROMエリアに定数データテーブルを置きたいのですが?
- ROMのメモリマップを見る方法はありますか?
- ROMへのメモリの配置方法を教えてください。
- HEXファイルに未使用エリアの指定があるようでビルド時に未使用エリアを回避する機能・手段ありますか?
*ROMの書込みにて各Page下アドレスのエリアに未使用エリアが出来てしまいます回避する機能・手段ありますか? - コンパイラがRAM不足をいってきていますが本当でしょうか?
- バイトではないEEPROMにどうのように変数を書くのですか?
- どのようにして外部メモリ・デバイスを指すカスタム変数の定義を作成することができますか?(又は、typemodとは?)
- どうすれば変数のブロックをRAMの指定するブロックに配置するようにコンパイラに強制することできますか?
- ROMが残っているようですがどうしてROM不足のエラー[OUT OF ROM]が発生するのですか?
- OUT OF RAMエラー[RAM不足]となりますが、どうすれば良いでしょうか?
- CCSではサポートされていない2バイトコード, S-JIS等に関するあるコメント
- バージョン5.100以降の統合環境(=コンパイラ)では0x8Aが含まれる文字(例:開=0x8A4A)を書いても #device KEEP8Aを書き加えることで変化しなくなりました。
- カット&ペーストで全角文字をIDEのエディタにペーストすると文字化けする
- PIC18F245x/255x/445x/455x等でCPUDIVxを持っているデバイスで正しくオシレータ・コンフィギュレーションを設定するには?
- #use delay(clock=20000000)と#use delay(crystal=20000000)はデバイスにより何故ちがいますか?
- どのようにして乱数を生成できますか?
- printfの出力を文字配列に格納するには?
- 何故このチップはINTRCヒューズで動かないのですか?
- どうすれば新しいカリブレーション定数をロード出来ますか?
- FAT File SystemとSD cardの使用は出来ますか?
- USB開発のためのドライバーやサンプル・ファイル等はどうすれば入手できますか?
- "Error Floating point division by zero"が出る場合は?
- "Target program not runnning:
The lilely cause is a wrong oscillator fuse"が出る場合は?
- [例]内蔵EEPROMを持っていないデバイスでちょっとした変数を内蔵フラッシュ・メモリに書き込んで起動時などに使いたい
virtual_eeprom.c[*Drivers]の便利な使い方
- 参考になるwebsite
PICの学習をCCS-Cではじめよう!
1. RS232Cでパソコンと接続
2. インターバルタイマーを組み込む
3. LCD(I2C動作、AQM0802A、8桁 x 2行)に表示する
4. 内蔵EEPROMへのアクセスと変数の保管
5. A/Dを読み出し、それをLCDに疑似レベルバーで表示する
6. 外部EEPROM(I2C)へのアクセスと変数の保管
7. ステッピングモーター(28BYJ-48)を動かす