2015-05-19 17:15 | カテゴリ:PIC応用回路
単純な、LEDを順番に点滅するだけのCのプログラムです。

これがどうして、まともに動きません。
予定では、順番に点灯->消灯、次が点灯->消灯、と繰り返すつもりでしたが、なぜか、消灯する前に次が点灯したり、変な動きです。
原因は不明です。
Delayルーチンが終了する前に、次のプログラムを実行しているように見えます。

プリグラムはこちら

//テストプログラム

#include
#define _XTAL_FREQ 20000000 //外部発振子が20MHzの場合
#pragma config CP = 0x03ff , WDTE = 0, PWRTE = 0 , FOSC = 0x2

static void InitPortIOReg(void);

int main(int argc, char** argv) {

int i = 0;
InitPortIOReg();
while(1){

__delay_ms(100);
PORTBbits.RB0 ^=1;
__delay_ms(100);
PORTBbits.RB1 ^=1;
__delay_ms(100);
PORTBbits.RB2 ^=1;
}
}

static void InitPortIOReg(){

TRISBbits.TRISB0 = 0;
TRISBbits.TRISB1 = 0;
TRISBbits.TRISB2 = 0;
}


//-------------------------


実際の動作びでおがこちら




素人には良く分かりません。




管理者のみに表示する