//*****************************************************************************
// タイトル: 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--);
}
}
//*****************************************************************************
//*****************************************************************************
データダウンロード・・・圧縮ファイル