/***********************************************************/
/*  FILE        :google_button.c
/*  「ぐぐるボタン R8C/Tiny版」ボタンを押したらGoogle起動
/*  2006/4/11 by Yusuke Wada  
/***********************************************************/
#include	"sfr_r815.h"
#define		CLOCK	20000			//20MHz

void Uart_TX(unsigned int data);
void delay_ms(unsigned long msec);

void main(void) {
  unsigned int i, cmnd;
  // クロックをメインクロックに切り替える
  prc0 = 1;				//プロテクト解除
  cm1 = 0x08;				//Xin Xout使用、非1/8分周選択
  cm0 = 0x08;				//メイン発振開始、分周なし
  asm("NOP");			
  asm("NOP");				//クロック発振待ち
  asm("NOP");
  asm("NOP");
  ocd2 = 0;				//メインクロック選択
  prc0 = 0;				//プロテクトオン
  
  //I/Oの設定
  pd3 = 0x30;					//pd3_4,5出力、pd3_3入力設定
  pu06 = 1;					//プルアップオン
  pu11 = 1;
  p3_4 = 0;					//初期表示
  p3_5 = 1;
  
  /// UARTの設定
  //調歩同期、８ビット、パリティなし、ストップ１ビット
  u0mr = 0x05;			//調歩、内部クロック、1Stop、Parityなし
  u0c0 = 0;				//f1で20MHz、CMOS出力、LSBから
  u0c1 = 0x02;			//送受信禁止
  ucon = 0;				//連続受信禁止
  u0brg = 129;     		//20MHzで9600bpsに設定		
  
  
	///データ送信ルーチン
	while(1) {
          p3_4 = ! p3_4;
          p3_5 = ! p3_5;
          if(p3_3 == 0){//ボタンが押されたかチェック
			Uart_TX(0x67);//gをUARTで送信
            delay_ms(2000);
          }else{
            delay_ms(1000);
          }
        }
}
/////// UART１文字送信関数
void Uart_TX(unsigned int data)
{
	u0tb = data;				//送信データセット
	te_u0c1 = 1;				//送信許可
	while(ir_s0tic == 0);		//送信完了待ち
	ir_s0tic = 0;				//送信完了フラグクリア
	te_u0c1 = 0;				//送信禁止	
}
//// ディレイ関数　msec単位
void delay_ms(unsigned long msec) {
	msec = (msec * CLOCK) / 40000;	//クロックで補正
	msec = msec * 1000;				//時間調整
	while(msec--){}
}
