C - U-netSURF
C - U-netSURF C - U-netSURF
* Copyright (C) 1998-2006 by Project HOS */ /* http://sourceforge.jp/projects/hos/ */ /* ------------------------------------------------------------------------ */ /* Copyright (C) 2009 by TOYO-LINX Co.,Ltd.*/ /* http://www2.u-netsurf.ne.jp/~toyolinx */ /* ------------------------------------------------------------------------ */ #include "kernel.h" //#include "h83664f.h" #include "iodefine.h" #include "h8t_sci.h" #include "binary.h" //Cで2 進 数 表 示 をを 使 う(00000000-11111111) #define RECV_BUFSIZE 32 /* 受 信 トッセネァのサキ゜ズ */ static unsigned char recv_buf[RECV_BUFSIZE]; static int head; static int tail; /* SCI3 初 期 化 */ void SCI3_Initialize(unsigned char rate) { volatile int i; /* SCI3 初 期 化 */ SCI3.SCR3.BYTE = 0x00; SCI3.SMR.BYTE = 0x00; SCI3.BRR = rate; for ( i = 0; i < 280; i++ ) ; // SCI3.SCR3.BYTE = 0x20; /* 送 信 可 */ SCI3.SCR3.BYTE = 0x70; /* 送 信 可 | 受 信 可 */ IO.PMR1.BIT.TXD = 1; } /* 1 文 字 出 力 */ void SCI3_PutChar(char c) { while ( !(SCI3.SSR.BYTE & 0x80) ) ; SCI3.TDR = c; /* SCI3.SSR.BYTE &= 0x7f; */ } /* 1 文 字 入 力 */ int SCI3_GetChar(void) { unsigned char c; if (head==tail){ return -1; } c = recv_buf[head++]; 141 TK-3687mini ユーザーズマニュアル C 言 語 版
if (head>=RECV_BUFSIZE){ head = 0; } } return c; /* SCI 受 信 割 り 込 み */ void SCI3_RxiHandler(VP_INT exinf) { unsigned char c; int next; /* 1 文 字 受 信 */ c = SCI3.RDR; /* 次 の 末 尾 位 置 をを 計 算 */ next = tail + 1; if ( next == RECV_BUFSIZE ) { next = 0; } /* オーヴトーヴネローヴスェッセク */ if ( next == head ) { return; } } /* 受 信 トッセネァに 格 納 */ recv_buf[tail] = c; tail = next; /* ------------------------------------------------------------------------ */ /* Copyright (C) 1998-2006 by Project HOS */ /* http://sourceforge.jp/projects/hos/ */ /* ------------------------------------------------------------------------ */ /* Copyright (C) 2009 by TOYO-LINX Co.,Ltd.*/ /* http://www2.u-netsurf.ne.jp/~toyolinx */ /* ------------------------------------------------------------------------ */ シリアル 制 御 用 プログラムのプロトタイプ 宣 言 と 定 義 ファイル「h8_sci.h」を 次 のように 改 造 します ( 一 部 分 抜 粋 , 黄 色 でマークしている 行 が 追 加 部 分 )。 /* SCI3 */ void SCI3_Initialize(unsigned char rate); /* SCI3 初 期 化 */ void SCI3_PutChar(char c); /* 1 文 字 出 力 */ int SCI3_GetChar(void); /* 1 文 字 入 力 */ void SCI3_RxiHandler(VP_INT exinf); /* 受 信 割 り 込 みデンルチラ */ /* assign SCI3 for SCI*/ #define Sci_Initialize SCI3_Initialize 142 TK-3687mini ユーザーズマニュアル C 言 語 版
- Page 92 and 93: この AD 値 をそのまま 使
- Page 94 and 95: void void void void void void void
- Page 96 and 97: } IO.PCR6 = 0xff; //ポーヴダ6,P
- Page 98 and 99: IO.PDR3.BYTE = 0x00 ^ DRV_LOGIC; IO
- Page 100 and 101: 第 6 章 μITRON を 実 装 し
- Page 102 and 103: 2.カーネルライブラリの
- Page 104 and 105: 次 に,HOS のソースファイ
- Page 106 and 107: 次 に , CPU や 開 発 環 境
- Page 108 and 109: ところで,このままビルド
- Page 110 and 111: mov.b #18, r0l bra int_handler _hos
- Page 112 and 113: 3.プロジェクトの 作 成 HOS
- Page 114 and 115: す。 「 新 規 プロジェク
- Page 116 and 117: 「 新 規 プロジェクト-6/9-
- Page 118 and 119: この 時昷 点 で「iodefine.h
- Page 120 and 121: メニューから「プロジェ
- Page 122 and 123: 「 新 規 ビルドフェーズ -
- Page 124 and 125: ビルドフェーズダイアロ
- Page 126 and 127: 次 に,インクルードファイ
- Page 128 and 129: 標 準 では ROM から RAM へ
- Page 130 and 131: STACK を 設 定 します。メ
- Page 132 and 133: { } /* 割 り 込 み 要 因 ク
- Page 134 and 135: .DATA.W .DATA.W .DATA.W .DATA.W .DA
- Page 136 and 137: } } /* 1 秒 待 つ */ dly_tsk(100
- Page 138 and 139: * Copyright (C) 1998-2002 by Projec
- Page 140 and 141: #ifndef __PROJECT_HOS__sample_h__ #
- Page 144 and 145: #define Sci_PutChar SCI3_PutChar #d
- Page 146 and 147: 7.タスク 付 属 同 期曋 機
- Page 148 and 149: } } Sci_PutChar('r'); Sci_PutChar('
- Page 150 and 151: 回 路 図 :TK-3687mini : 149 TK-3
- Page 152: お 問 い 合 わせ 先 株 式
* Copyright (C) 1998-2006 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 "h83664f.h"<br />
#include "iodefine.h"<br />
#include "h8t_sci.h"<br />
#include "binary.h"<br />
//Cで2 進 数 表 示 をを 使 う(00000000-11111111)<br />
#define RECV_BUFSIZE 32 /* 受 信 トッセネァのサキ゜ズ */<br />
static unsigned char recv_buf[RECV_BUFSIZE];<br />
static int head;<br />
static int tail;<br />
/* SCI3 初 期 化 */<br />
void SCI3_Initialize(unsigned char rate)<br />
{<br />
volatile int i;<br />
/* SCI3 初 期 化 */<br />
SCI3.SCR3.BYTE = 0x00;<br />
SCI3.SMR.BYTE = 0x00;<br />
SCI3.BRR = rate;<br />
for ( i = 0; i < 280; i++ )<br />
;<br />
// SCI3.SCR3.BYTE = 0x20; /* 送 信 可 */<br />
SCI3.SCR3.BYTE = 0x70; /* 送 信 可 | 受 信 可 */<br />
IO.PMR1.BIT.TXD = 1;<br />
}<br />
/* 1 文 字 出 力 */<br />
void SCI3_PutChar(char c)<br />
{<br />
while ( !(SCI3.SSR.BYTE & 0x80) )<br />
;<br />
SCI3.TDR = c;<br />
/* SCI3.SSR.BYTE &= 0x7f; */<br />
}<br />
/* 1 文 字 入 力 */<br />
int SCI3_GetChar(void)<br />
{<br />
unsigned char c;<br />
if (head==tail){<br />
return -1;<br />
}<br />
c = recv_buf[head++];<br />
141<br />
TK-3687mini ユーザーズマニュアル C 言 語 版