24.01.2015 Views

C - U-netSURF

C - U-netSURF

C - U-netSURF

SHOW MORE
SHOW LESS
  • 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 言 語 版

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!