/* ========================================
 *
 * Copyright YOUR COMPANY, THE YEAR
 * All Rights Reserved
 * UNPUBLISHED, LICENSED SOFTWARE.
 *
 * CONFIDENTIAL AND PROPRIETARY INFORMATION
 * WHICH IS THE PROPERTY OF your company.
 *
 * ========================================
*/
#include <device.h>
#include <stdio.h>									// sprintfを使うために必要


void IntToString(char *str, int number)				//　数値から文字列に変換する関数
{
  sprintf(str, "%d", number);
}

void Initialize_Components(void)
{
	CyGlobalIntEnable;
    USBUART_1_Start(0, USBUART_1_3V_OPERATION);		// 3.3V 電源で使用する場合
	//USBUART_1_Start(0, USBUART_1_5V_OPERATION);  	// 5V電源で使用する場合	
	while(!USBUART_1_GetConfiguration()){};			//　PC、デバイス間のやりとりが終わるのを待つ	
	USBUART_1_CDC_Init();							// CDC interfaceを初期化しデータを遅れるようにする
	
	ADC_DelSig_1_Start();							// ADCコンポーネントを初期化
}

void main()
{	
	uint8  ADC_Result = 0;							// ADC_Result; 表示する数値用の変数 
	uint16 i;										//i;BarGraph用
	char string[10];								// 数値から文字列に変換したときに格納する配列
	Initialize_Components();						// USBとADCコンポーネントの初期化
	ADC_DelSig_1_StartConvert();					// AD変換を開始。コンポーネントプロパティでContinuousに設定しているので以降は自動で連続サンプル。
	
	for(;;)
    {
		ADC_DelSig_1_IsEndConversion(ADC_DelSig_1_WAIT_FOR_RESULT);	// ADCの変換が終わってデータが格納されるまで待機
		ADC_Result = ADC_DelSig_1_GetResult8();						// 結果を変数ADC_Resultに格納
		IntToString(string, ADC_Result);							// ADC_Resultの値を文字列に変換
		
		for( i=10 ; i <= ADC_Result ; i = i + 10)					// ADC_Resultをバーグラフに変換。結果が10未満の場合0,
		{															// それ以外の場合ADC_Result/10の数だけ表示		
			while(USBUART_1_CDCIsReady() == 0u){};					// USB送信が終了するまで待機
	    	USBUART_1_PutString("-");								//　文字(-)の送信	
		}
	
		while(USBUART_1_CDCIsReady() == 0u){};						// USB送信が終了するまで待機
    	USBUART_1_PutString(string);								//　文字列の送信	
		while(USBUART_1_CDCIsReady() == 0u){};						//　USB送信が終了するまで待機
    	USBUART_1_PutCRLF();										// 改行コードを送信
    }
}



/* [] END OF FILE */
