softdev:pic18
差分
このページの2つのバージョン間の差分を表示します。
| 両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン | ||
| softdev:pic18 [2012/02/19 22:54] – [コンフィグbit] king | softdev:pic18 [2013/07/15 20:25] (現在) – 外部編集 127.0.0.1 | ||
|---|---|---|---|
| 行 5: | 行 5: | ||
| Configuration bitsの設定は、IDEの中で可能だが、プログラムの中に記述する事も出来る。PIC12F675などは __CONFIG( の一文ですんでいたのだが、PIC18Fでは、一つ一つ設定が必要らしい。 | Configuration bitsの設定は、IDEの中で可能だが、プログラムの中に記述する事も出来る。PIC12F675などは __CONFIG( の一文ですんでいたのだが、PIC18Fでは、一つ一つ設定が必要らしい。 | ||
| - | < | + | < |
| - | + | #pragma config OSC = INTIO2 //内蔵オシレータ | |
| - | #pragma config OSC = INTIO2 //à IV[^ | + | |
| #pragma config FSCM = OFF // | #pragma config FSCM = OFF // | ||
| - | #pragma config IESO = OFF //àAOÌØèÖ¦³µ | + | #pragma config IESO = OFF //内部、外部の切り替え無し |
| - | #pragma config PWRT = ON //p[Abv^C}[nm | + | #pragma config PWRT = ON //パワーアップタイマーON |
| - | #pragma config BOR = ON //uEAEgnm | + | #pragma config BOR = ON //ブラウンアウトON |
| - | #pragma config BORV = 42 //uEAEgd³4.5V | + | #pragma config BORV = 42 //ブラウンアウト電圧4.5V |
| - | #pragma config WDT = OFF //EHb`hbOOFF | + | #pragma config WDT = OFF //ウォッチドッグOFF |
| - | #pragma config WDTPS = 32768 //EHb`hbO|XgXP[(:32768) | + | #pragma config WDTPS = 32768 //ウォッチドッグポストスケーラ(:32768) |
| - | #pragma config MCLRE = ON //}X^[NAON | + | #pragma config MCLRE = ON //マスタークリアON |
| #pragma config STVR = OFF // | #pragma config STVR = OFF // | ||
| - | #pragma config LVP = OFF //ád³OFF | + | #pragma config LVP = OFF //低電圧書込OFF |
| - | #pragma config DEBUG = ON //BackgroundfobKON | + | #pragma config DEBUG = ON //BackgroundデバッガON |
| #pragma config CP0 = OFF //Code Protection bit Block 0 | #pragma config CP0 = OFF //Code Protection bit Block 0 | ||
| #pragma config CP1 = OFF //Code Protection bit Block 1 | #pragma config CP1 = OFF //Code Protection bit Block 1 | ||
| 行 32: | 行 31: | ||
| #pragma config EBTRB = OFF //Boot Block Table Read Protection | #pragma config EBTRB = OFF //Boot Block Table Read Protection | ||
| </ | </ | ||
| + | INTIO2のような定数は、どこにも定義が無いのだが、IDEの中のヘルプに書かれており認識するようである。それぞれの持つ意味は、PICのデータシートから紐解くしか無い。いまいちよくわかっとらん。 | ||
| + | |||
| ===== Delay ===== | ===== Delay ===== | ||
| サンプルで用意されていたDelay関数が無くなっちゃった。あるのか知れんけど。よくわからんから重宝してたのですが、で、includeフォルダをみたら、delays.hと言うのがあった。わたしも、あんまりよくわかってないので、行き当たりばったりでよくないんですが。 | サンプルで用意されていたDelay関数が無くなっちゃった。あるのか知れんけど。よくわからんから重宝してたのですが、で、includeフォルダをみたら、delays.hと言うのがあった。わたしも、あんまりよくわかってないので、行き当たりばったりでよくないんですが。 | ||
| 行 52: | 行 53: | ||
| で、なんがしか時間待ちするようであるので、オシロの波形で確認したところ、PIC18F1320で8MHz内蔵タイマで下表の結果だった。 | で、なんがしか時間待ちするようであるので、オシロの波形で確認したところ、PIC18F1320で8MHz内蔵タイマで下表の結果だった。 | ||
| - | ^ Function | + | ^ Function |
| - | |Delay1KTCYx(1) | + | |Delay1KTCYx(1) |
| - | |Delay10KTCYx(1) | + | |Delay10KTCYx(1) |
| - | |Delay100TCYx(1) | + | |Delay100TCYx(1) |
| - | |Delay100TCYx(10) | + | |Delay100TCYx(10) |
| - | |Delay100TCYx(100) | + | |Delay100TCYx(100) |
| - | |Delay10TCYx(1) | + | |Delay10TCYx(1) |
| - | |Delay10TCYx(10) | + | |Delay10TCYx(10) |
| - | |Delay10TCYx(20) | + | |Delay10TCYx(20) |
| - | |Delay10TCYx(100) | + | |Delay10TCYx(100) |
| 計測にPort出力のH/ | 計測にPort出力のH/ | ||
| 行 81: | 行 82: | ||
| + | ===== 定義済定数 ===== | ||
| + | 参考書とかでは、ポートの出力、例えばポートAのビット0は、RA0=1 などの記述で1出力できたのだが、PIC18Fでは大量のWarningが出る。そのままでも動作に問題は無いのだが、気持ち悪い。RA0の記述が非推奨のようである。 | ||
| + | |||
| + | ヘッダファイルを見ると、PORTAbits.RA0と記載するのかな。でも長いなぁ | ||
| + | |||
| + | <code c> | ||
| + | extern volatile union { | ||
| + | struct { | ||
| + | unsigned RB0 :1; | ||
| + | unsigned RB1 :1; | ||
| + | unsigned RB2 :1; | ||
| + | unsigned RB3 :1; | ||
| + | unsigned RB4 :1; | ||
| + | unsigned RB5 :1; | ||
| + | unsigned RB6 :1; | ||
| + | unsigned RB7 :1; | ||
| + | }; | ||
| + | struct { | ||
| + | unsigned RB :8; | ||
| + | } PORTBbits @ 0xF81; | ||
| + | </ | ||
| + | よくわからないんだけど、共用体の中に、構造体があるから、PORTBbits.RB0とPORTBbits.RBは同じメモリになるけど、PORTBbits.RB0とPORTBbits.RB1は異なるメモリにあり独立しているという意味だと思うんだけど、< | ||
| + | |||
| + | ADCONの設定をしていないせいでした。とほほ。一部のポートはADCONがデフォルトになっていると言う事もある。 | ||
softdev/pic18.1329659640.txt.gz · 最終更新: (外部編集)
