目次 #contents(); *メニュー [#wf322d66] //個人ページの下にページを作ることもできます。 -[[ファイル置き場>./upload]] -[[コメントページ>./comments]] -[[Rio Unite 130 分解>分解レポート#n13340d3]] -過去の日誌 --[[./2008]] --[[./2009]] *komaへのコメント [#o41c145a] #pcomment(./comments,reply); *2010-04-23-サンプルコード [#ke6b18f5] とりあえずリンク [[R8C/2Dシリーズのサンプルコード集:http://japan.renesas.com/products/mpumcu/r8c/r8c2x/r8c2d/Application_Notes.jsp?event=resetFunctions&logo=0&productName=R8C%2F2D+%C3%A3%C2%82%C2%B0%C3%A3%C2%83%C2%AB%C3%A3%C2%83%C2%BC%C3%A3%C2%83%C2%97®ion=jp&hiddenFunctionsKey=41&hiddenProductsId=2125&sort=&pageNo=1&redirectEvent=resetFunctions&documentUrl=http%3A%2F%2Fjapan.renesas.com%2Fproducts%2Fmpumcu%2Fr8c%2Fr8c2x%2Fr8c2d%2FApplication_Notes.jsp&x=18&y=11]] *2010-04-23-感想とか [#a65ffe58] とりあえず、R8Cのマニュアルはとっても分かりにくいと言うことが分かった! 網羅的に記述してあるけど、とりあえず動かすにはどうすればいいのかっていうのが全然理解できない。 このままではLEDをチカチカさせることもままならない!! *2010-04-22-タイマを使用する_02 [#w297d5da] PWM波形が出た!!っと言ってもほとんどサンプル通りですが。。 ''msttrc''というレジスタがあることを完全に見落としていたため、 かなり足止めを食らいました。 以下ソースです。 #include "sfr_r82D.h" void timer_rc_init(void); //Initial setting of Timer RC SFR void main(void) { //----------------------------------------------------------------------- // 外部水晶発振子20MHz 使用 //----------------------------------------------------------------------- asm("FCLR I"); // 割り込み処理禁止 prc0 = 1; // cm0,cm1,ocd,har0,har1,har2 書き込み許可 cm13 = 1; // cm1_addr(0007h) bit3 P4-6,7 X'tal cm05 = 0; // cm0_addr(0006h) bit5 X'tal 発振 cm06 = 0; // cm0_addr(0006h) bit6 cm16,cm17 有効 asm("NOP"); // 発振が安定するまで待つ asm("NOP"); // 発振が安定するまで待つ asm("NOP"); // 発振が安定するまで待つ asm("NOP"); // 発振が安定するまで待つ ocd2 = 0; // ocd_addr(000Ch) bit3 メインクロック選択 prc0 = 0; // cm0,cm1,ocd,har0,har1,har2 書き込み禁止 //asm("FSET I"); // 割り込み処理許可 //----------------------------------------------------------------------- // LED Port を設定する //----------------------------------------------------------------------- pd2 = 0xff; // ポートP2 出力モードに設定 //----------------------------------------------------------------------- // Timer Port を設定する //----------------------------------------------------------------------- //pd5 = 0xff; //----------------------------------------------------------------------- // Initialize SFR of Timer RC //----------------------------------------------------------------------- timer_rc_init(); //----------------------------------------------------------------------- // Main //----------------------------------------------------------------------- while(1){ } } /************************************************************************************/ /* Name: timer_rc_init /* Parameters: None /* Returns: None /* Description: Initial setting of Timer RC SFR /************************************************************************************/ void timer_rc_init(void){ // timer RC enable msttrc = 1; // timer on/off tstart_trcmr = 0; // Stop TRC Count trcic = 0x00; // Interrupt disabled // pwm mode setup pwmb_trcmr = 1; // TRCIOB PWM mode selection bit:PWM mode pwmc_trcmr = 1; // TRCIOC PWM mode selection bit:PWM mode pwmd_trcmr = 1; // TRCIOD PWM mode selection bit:PWM mode pwm2_trcmr = 1; // PWM2 mode selection bit:PWM mode bfc_trcmr = 0; // TRCGRC:General register bfd_trcmr = 0; // TRCGRD:General register // active lebel setup tob_trccr1 = 0; // TRDIOB output level:"H" active toc_trccr1 = 0; // TRDIOC output level:"H" active tod_trccr1 = 0; // TRDIOD output level:"H" active // pin output enable eb_trcoer = 0; // TRCIOB Pin Output enable ec_trcoer = 0; // TRCIOC Pin Output enable ed_trcoer = 0; // TRCIOD Pin Output enable pto_trcoer = 0; // INT0 of Pulse output forced cutoff input disabled // count source clk setup tck0_trccr1 = 0; // Count Source Selection Bit:f1("000") tck1_trccr1 = 0; // f1 20MHz tck2_trccr1 = 0; cclr_trccr1 = 1; // The TRC register clear at the compare match with TRCGRA // count value setup trc = 0; // The Count value of TRC is initialized to "0" trcgra = 4000 - 1; // 25ns * 4000 = 100us trcgrb = 1000 - 1; // 25ns * 1000 = 25us trcgrc = 2000 - 1; // 25ns * 2000 = 50us trcgrd = 3000 - 1; // 25ns * 3000 = 75us trcier = 0x00; // Disable interrupts ,ovie/imied/imiec/imieb/imiea tstart_trcmr = 1; // Start TRC Count } ▼PWM波形 #ref(./upload/2010-04-23-pwmwave.jpg,,,50%) *2010-04-22-タイマを使用する_01 [#w297d5da] R8Cでタイマをセットアップするまで、面倒な設定が多すぎるorz タイマのカウント用CLKやPWMモードやら、柔軟な設計ができるのはいいけど、 いちいち設定すべきレジスタが代わるのがめんどくさい。 レジスタの名前も覚えにくい。。 *2010-04-21-HEW新規ワークスペース生成 [#e87e6851] HEW,High-performance Embedded Workshopは開発環境の名前。 プロジェクト生成後、マイコンのSFR(Special Function Resistor)を制御しやすくするため、ヘッダファイルを別途ディレクトリにコピーする必要がある。以下の中にある ''sfr_r82d.h'' というファイル。 C:\Program Files\Renesas\Hew\System\Pg\Renesas\M16C\V5_42_0\Generate\sfr\R8C\R8C2C_2D このヘッダファイルの一番上の行に、なぜか日付が書いてあり、これがあるとコンパイルできないので消す。 *2010-04-21-R8C/2Dマイコン開発セット [#z683d27e] [[kanou]]さんに相談して、これを買ってみました。 http://akizukidenshi.com/catalog/g/gK-03018/ 早速LCDモジュールの半田付けをミスりましたorz