読者です 読者をやめる 読者になる 読者になる

R8Cを動かしてみた

R8C

やっとR8C/29マイコンが動いたのでこまでやったことのメモ

デバック

  • RXDは2番ピンに接続
  • TXDは9番ピンに接続
  • MODEはGNDに接続

入出力ポート

pd1_7 = 1;			//pd1の7ビット目を出力モードに
p1_7 = 1;			//p1の7ビット目をHighに

A/D変換

adgsel0 = 1;			//AN8-11を使用する
ch0 = 1;			//AN11を選択
ch1 = 1;			//ch2=0,ch1=0,ch0=0がAN8ではない
ch2 = 1;			//ch2=1,ch1=0,ch0=0がAN8 ch2は必ず1になる
md = 0;				//ADC単発モード

cks0_adcon0 = 0;		//周波数をf4に設定
bits = 1;			//10bitモード bits=1で8bitモード
cks1_adcon1 = 0;		//周波数をf4設定その2
vcut = 1;			//verf端子有効

adst = 1でA/D変換がスタートするはず
adにa/d変換の結果が代入される。またadl,adhでもおk

  • ad : 全10ビットを読み出し
  • adl : 下位8ビットを読み出し
  • adh : 上位2ビットを読み出し

割り込み

タイマRAアンダーフロー割り込みの例

void int_timer_a ( void );
#pragma interrupt int_timer_a (vect=22)

void int_timer_a(void){
	p1_7 = 1^p1_7;		//p1_7を反転
}
タイマAの割り込みを許可する
traic = 0x01;			//優先度レベル1でタイマA割り込みを許可

traic = 0x00はレベル0で割り込み無効
traic = 0x07はレベル7で割り込み優先度最大

全体割り込みの有効、無効化
asm("FCLR I");			//Interrupt disabled
asm("FSET I");			//Interrupt enable

まあこんな感じかな