//キッチンタイマー
//制作者：KK
//制作日：2011/09/05
//使用PIC：10F200
//電池を使わないキッチンタイマー　参考
//ペルチェ素子を利用して駆動
#include<pic.h>

/*=====コンフィグレーション設定=====*/
/*OSC4MHz NOWDT　NOMLCR　NOPROTECT*/
__CONFIG(0x0FEB);

#ifndef _XTAL_FREQ 
    #define _XTAL_FREQ 4000000  //4MHz
#endif  

/*=====定義文=====*/
#define	T_SW	(GP3)				//タクトスイッチ
#define	D_SW	(GPIO & 0x03)		//DIPスイッチ
#define	BZ		(GP2)				//ブザー
/*=====メイン関数=====*/
void main(void){
	TRIS = 0x0b;
	OPTION = 0b11011111;
	
	unsigned char i,j;
	unsigned int cnt,time;
	
	while(1){
		while(T_SW);	//タクトスイッチを押すとスタート
			
		//タイマー時間設定(トグルスイッチで変更)
		switch(D_SW){
			case 3:	//１分
				time=1;
				break;
				
			case 2:	//３分
				time=3;
				break;
			
			case 1:	//４分
				time=4;
				break;
			
			case 0:	//５分
				time=5;
				break;
		}		
			
		//スタート開始音
		for(i=0;i<=100;i++){
			BZ=~BZ;
			__delay_ms(1);
		}
		cnt=0;	//カウント初期化
		
		while(1){
			//１分カウント
			for(i=0;i<60;i++){
				//１秒カウント
				for(j=0;j<250;j++){
					__delay_ms(4);
				}	
			}
			cnt++;
				
			//設定時間計測
			if(cnt>=time){	
				cnt=0;
				//20秒間ブザーを鳴らす
				for(i=0;i<80;i++){
					for(j=0;j<250;j++){
						BZ=~BZ;
						__delay_us(500);
					}
					for(j=0;j<250;j++){
						__delay_us(500);
					}	
				}
				break;
			}	
		}
	}
}
