C - U-netSURF
C - U-netSURF
C - U-netSURF
- No tags were found...
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
7.タスク 付 属 同 期曋 機 能<br />
これまでのプログラムは 各 タスクがそれぞれ 個 別 に 動 作 していました。しかし, 複 数 のタスクが 協<br />
調 しながら 動 作 するアプリケーションも 考 えられます。 例 えば, 通 常 動 作 しているタスク 内 である 条曵 件<br />
がそろったときに,より 優 先 順 位 の 高 いタスクを 実 行 する,というものです。「dly_tsk」を 使 ってタスクを<br />
待 ち 状 態 にし,その 間 にほかに 実 行 できるタスクがあれば,その 処 理 を 行 なう,という 方 法沵 はすでに<br />
説 明 しましたが,ここではより 積 極 的 に 特 定 のタスクを 実 行 することを 考 えてみましょう。<br />
このようなときに 使 う 機 能 が「タスク 付 属 同 期曋 機 能 」です。μITRON4.0 仕 様 書暯 では「タスクの 状 態<br />
を 直 接 的 に 操 作 することによって 同 期曋 を 行 なうための 機 能 である。」と 説 明 されています( 実 を 言 うと<br />
「dly_tsk」もタスク 付 属 同 期曋 機 能 の 一 部 です)。では,タスク 付 属 同 期曋 機 能 を 使 って 次 のプログラムを<br />
作 ってみましょう。<br />
タスク 1 : シリアルポートから 受 信 したら, 受 信 データをポート 5 とポート 6 に 出 力 するとともに, 受 信<br />
データが‘0’~‘9’のときはタスク 2 を 起 床 する。<br />
タスク 2 : シリアルポートに「Receive Number」と 送 信 する。<br />
今 回 は「sample_03」を 改 造 します。ただし,このマニュアル(および 付 属 CD)では,このワークス<br />
ペースに 新 たに「sample_04」というアプリケーションプロジェクトを 追 加 します。これまで 説 明 してきた<br />
手 順 (3 項 と 4 項 )で sample_03 とまったく 同 じプログラムを 作 ってください。<br />
では 改 造 していきましょう。 修 正 するのは「sample.c」だけです。 次 の 黄 色 でマークしている 部 分<br />
を 修 正 ・ 追 加 してください。<br />
/* ------------------------------------------------------------------------ */<br />
/* Hyper Operating System V4 サキンルハルハロエラム */<br />
/* */<br />
/* Copyright (C) 1998-2002 by Project HOS */<br />
/* http://sourceforge.jp/projects/hos/ */<br />
/* ------------------------------------------------------------------------ */<br />
/* Copyright (C) 2009 by TOYO-LINX Co.,Ltd.*/<br />
/* http://www2.u-netsurf.ne.jp/~toyolinx */<br />
/* ------------------------------------------------------------------------ */<br />
#include "kernel.h"<br />
#include "kernel_id.h"<br />
//#include "h83664f.h"<br />
#include "iodefine.h"<br />
#include "h8t_sci.h"<br />
#include "binary.h"<br />
//Cで2 進 数 表 示 をを 使 う(00000000-11111111)<br />
/* メ゜ンル 関 数 */<br />
int main()<br />
{<br />
/* SCIの 初 期 化 */<br />
// Sci_Initialize(SCI_19200);<br />
Sci_Initialize(SCI_38400);<br />
/* 開 始 メッセセーヴジ */<br />
Sci_PutChar('H');<br />
Sci_PutChar('O');<br />
Sci_PutChar('S');<br />
145<br />
TK-3687mini ユーザーズマニュアル C 言 語 版