レッスンTOPへ

//*****************************************************************************
// タイトル: LesssonC_05
// 作者 : ioio
// 移植 : sec
// 目的 : ソフト遅延を関数にします。
// マイコン: AT90S2313
// クロック: 10MHz
// Compiler: gcc winAVR
// :
//*****************************************************************************
// 変更履歴
// 2007.05.27(日) 作成
//
//*****************************************************************************
#include "io.h" // デバイス関連の定義を展開


#define T1MS 500 // 1msecの遅延カウント
#define T500MS 524 // 500msecの遅延カウント

void delay500msec(void); // 関数を宣言

void main(void)
{
DDRB = 0xFE; // PortB b0=Out. b1,b2,b3,b4,b5,b6,b7=In

// 繰り返し実行
while(1){ // 繰り返し
// LED ON
PORTB = PORTB | _BV(PB0); /* PB0ピンをHighにし、残りは変化させない */


// ソフト遅延
delay500msec();

// LED OFF
PORTB = PORTB & ~_BV(PB0); /* _BV(PB0)のビット反転とandする。PB1ピンをLowにし、残りは変化させない */


// ソフト遅延
delay500msec();
}
}


//-----------------------------------------------------------------------------
// 機能 : 500msec遅延関数
// 引数 : なし
// 戻値 : なし
// 作成 : 2007.05.01(火)
//-----------------------------------------------------------------------------
void delay500msec(void)
{
unsigned int cnt1;
unsigned int cnt2;

cnt1 = T500MS; // 500msecの遅延
while(cnt1--){
cnt2 = T1MS; // 1msecの遅延
while(cnt2--);
}
}

//*****************************************************************************
//*****************************************************************************

データダウンロード・・・圧縮ファイル













inserted by FC2 system