サンハヤトのMB-8C29を使ってみました.基本的にはSR8C15CPと同様に使うことができました.MB-8C29は,20MHz発振子が内蔵されています.リセット回路(RとC)は付いていません.せっかくだからリセット端子にRとCを付けてくれれば良いのにと思います.またLEDがP1_1ピンに付いています.R8C29ではピンの駆動電流を設定するdrrがなくなっています.
実行手順のメモ(C言語によるプログラミングの場合)
1.実行プログラムの作成
HEWをインストールする.
HEWをインストールしたフォルダの下にあるinc30というフォルダに,sfr_r829.h(Tiny15の定義ファイル)を入れておく.
HEWを起動する.
新規プロジェクトワークスペースを作成する.
プロジェクトの種類:Application
CPUSeries:R8C/Tiny
CPUGroup:29
Releaseコンフィグレーションを選択する(HEWのウィンドウの上部ボックスでReleaseかDebugを選択できるようになっている)
Cのソースファイルを編集する
サンプルプログラムの例
//test.c for MB-R8C29
//
#include "sfr_r829.h"    // R8C29 SFR定義ファイル
void main(void)  // メイン関数
{
int i,j,k;
// drr1  = 1;入れるとコンパイルできない
 pd1_1 = 1;   //ポートP1_1 出力
 p1_1  = 1;   //ポートP1_1 H
//メインクロック切替
 prc0 = 1;
 cm13 = 1;
 cm05 = 0;
 cm06 = 0;
 asm("nop");
 asm("nop");
 asm("nop");
 asm("nop");
 ocd2 = 0;
 prc0 = 0;
//
 while(1){
 for(i=0;i<10;i++)for(j=0;j<250;j++)for(k=0;k<250;k++){}
   p1_1 = 0; 
 for(i=0;i<10;i++)for(j=0;j<250;j++)for(k=0;k<250;k++){}
   p1_1 = 1; 
 }//while(1)
}
2.実行プログラムの書き込み
(R8C15から変更はありません)
M16C Flash Starterをダウンロードし適当な場所に置いておく.
書き込み回路とcomポートを接続し,回路の電源を入れる.このとき書き込み回路は,ブートモードにする.(モードセレクタPIN8をGND側に接続しておく.)
M16C Flash Starter(FlashSta.exe)を実行し,
SelectProgram:InternalFlashMemory,
COMポートを選択する.
Referをクリックしfile pathにはプロジェクトのreleaseフォルダ内の○.motを選ぶ.
IDの空欄にすべてffを入れる.MCU TypeはR8Cを選択する.
E.P.Rをクリックすると消去,書き込みが自動的に行われる.

 
 
 
            
        
          
        
          
        
R8C/Tinyを使ったRS-232(comポート)の通信テストプログラムです.プログラムの書き込みと通信に別々のCOM端子を使うなら,トラ技2005年4月号付録のR8C/15搭載マイコンボード(MB-R8CS:サンハヤト)が便利です.
テストプログラムでは,aを入力するとLED on,bを入力するとLED offします.
c-zを入力すると大文字を返します.
送信の関数名をtx()とするとコンパイルエラーが生じます.
通信ソフトにはハイパーターミナルかteratermを使います.
#include "sfr_r815.h"
void Utx(char data);    // 1文字送信
char Urx(void);        // 1文字受信
void main(void)        // メイン関数
{
char dat;
// I/Oポートの初期設定
drr1= 1;//P1_1 駆動能力High設定
pd1_1= 1;//P1_1 出力モード設定
p1_1= 1;//P1_1 Hレベル設定(LED:消灯)
//メインクロックの切替
prc0 = 1;
cm13 = 1;
cm05 = 0;
cm06 = 0;
asm("nop");
asm("nop");
asm("nop");
asm("nop");
ocd2 = 0;
prc0 = 0;
//UART0初期化
smd0_u0mr= 1;            // シリアルI/Oモード選択ビット
smd2_u0mr= 1;            //8ビットモード
te_u0c1= 1;                //送信許可
re_u0c1= 1;                //受信許可
u0brg= 0x40;            //ビットレート(19200bps)
Utx('T');
Utx('E');
Utx('S');
Utx('T');
Utx(0x0a);                //LF
Utx(0x0d);                //CR
while(1){
    dat = Urx();
    if(dat=='a')p1_1=0;    //P1_1 Lレベル(LED:on)
    if(dat=='b')p1_1=1;    //P1_1 Hレベル(LED:off)
    if(dat>'b'){        //c以降は大文字を返す
        dat=dat-'a'+'A';
        Utx(dat);
        }
    }//while
}//main
void Utx(char data)
{
    while(ti_u0c1 != 1);    // データ転送待ち
    u0tb = data;            // 送信バッファにデータセット
}                            
char Urx(void)
{
    char data;                // 受信データ格納変数
    char err;                // エラーデータ格納変数
    while (ri_u0c1 != 1) ;    // 受信待ち
    data = u0rbl;            // 受信データの取り出し
    err = u0rbh & 0xf0;        // エラーデータの取り出し
    return data;
}