- PIC専用のスレ Part55©2ch.net
718 :595[sage]:2017/06/25(日) 21:43:40.15 ID:CSVOgr02 - 595です。先日はどうもありがとうございました。
秋月に注文していたPICが届いたので早速やってみたのですが、__Delay_ms()関数がどうもうまく動作していないようです。 全然遅延してないんです。 オシロ(DSO138ですが)で計測してみたところ、ピンから出力されているのはHi状態がずっと続いている、つまりLEDが常に点灯している状態です。 以下、検証用ソースコードコピペします。 #include <xc.h> #define _XTAL_FREQ 8000000 // クロック周波数を設定 __CONFIG(FOSC_INTOSCIO & WDTE_OFF & PWRTE_ON & MCLRE_OFF & CP_OFF & CPD_OFF & BOREN_ON & IESO_OFF & FCMEN_OFF); //void main(void){while(1){}} void main(void) { int led1 = 0;//点滅判定用フラグ int led2 = 0;//点滅判定用フラグ // ここまで設定 OSCCON = 0x70; //クロック周波数8MHzに設定 ANSEL = 0x00; //入力ピンをデジタルに設定 CMCON0 = 0x07; //コンパレータの無効化 WPU = 0x00; //プルアップビット nGPPU = 0; //プルアップ有効 TRISIO = 0x07; GPIO = 0; while(1) { __delay_ms(500); if (led1 == 0){ led1 = 1;}else{ led2 = 0;}; if (led2 == 0){ led2 = 1;}else{ led2 = 0;}; GP4 = led1; //LED1の出力を設定 GP5 = led2; //LED2の出力を設定 } return; } PICが届く前に、xc16-v1.31-full-install-windows-installerを実行しています。これも原因のひとつでしょうか。 お手数おかけしますがよろしくお願いします。
|