/* 
	A/Dコンバータ制御タスク
 */
#include <tk/tkernel.h>
#include <tm/tmonitor.h>

#include "app.h"

/* A/Dコンバータ制御タスク 関連情報 */
LOCAL void task_adc(INT stacd, void *exinf);	// タスク実行関数

EXPORT ID	tskid_adc;			// タスクID番号
EXPORT T_CTSK ctsk_adc = {			// タスク生成情報
	.itskpri	= 9,				// タスク実行優先度
	.stksz		= 1024,				// スタックサイズ
	.task		= task_adc,			// タスク実行関数
	.tskatr		= TA_HLNG | TA_RNG3,		// タスク属性
};

EXPORT 	UW	adc_val;	// A/Dコンバータの値

/* A/Dコンバータ制御タスク 実行関数 */
LOCAL void task_adc(INT stacd, void *exinf)
{
	ID	dd;		// デバイスディスクリプタ
	SZ	asz;		// データ数

	dd = tk_opn_dev((UB*)"hadca", TD_UPDATE);	// ① デバイスのオープン

	while(1) {
		tk_srea_dev(dd, 0, &adc_val, 1, &asz);	// ② センサーのリード
		tk_dly_tsk(500);			// ③ タスクの実行待ち
	}
	tk_ext_tsk();
}
