トップページ > 電気・電子 > 2017年06月25日 > CSVOgr02

書き込み順位&時間帯一覧

30 位/138 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000000000000002002



使用した名前一覧書き込んだスレッド一覧
595
PIC専用のスレ Part55©2ch.net

書き込みレス一覧

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を実行しています。これも原因のひとつでしょうか。
お手数おかけしますがよろしくお願いします。
PIC専用のスレ Part55©2ch.net
719 :595[sage]:2017/06/25(日) 21:49:28.58 ID:CSVOgr02
すいません、検証用コード自己解決しました。
×if (led1 == 0){ led1 = 1;}else{ led2 = 0;};
○if (led1 == 0){ led1 = 1;}else{ led1 = 0;};

大変申し訳ありませんでした。


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。