//(16x16Dot)LED Game for AVR  by Takuya Matsubara / NICO Corp. 2006
// http://www.nico.to/avr/
//
//   乱数
//
// 再配布は自由にできます。
// 改造して配布する場合にはわかりやすい形で明記してください。
// この文は修正禁止(Please do not delete a document from here.)
//---------------------------------------------------------------------
#include <avr/io.h>
#include "rand.h"

//---------------------------------------------------------------------
// 乱数初期化
// プログラム内で最初に一回だけ呼び出してください。
// この関数はタイマ0を使います。
// すでに別の処理でタイマ0を使われていると呼び出せません。
void rand_init(void)
{
    TCNT0 = 0;    // タイマ0の初期値設定   
    TCCR0A= 0;    // タイマ0 モード 
    TCCR0B= 1;    // タイマ0 プリスケーラ 
}

//---------------------------------------------------------------------
// 乱数の取得
// 引数 max：乱数最大範囲0〜255。0から(max-1)までの乱数を発生させます。
// 戻り値：unsigned char型0〜255。乱数を返します。
unsigned char rand_get(unsigned char max)
{
	return(TCNT0 % max);  // タイマ0カウントを乱数にします
}

