TB-RX65N/RX130/RX231+CSplus sample program

こんにちは。NoMaYです。

TB-RX65N/RX130/RX231のCS+のサンプルプログラムです。まずはデバッグコンソール出力のサンプルです。(サンプルプログラム置き場とGitHubに置きました。)

japan.renesasrulz.com/cafe_rene/m/sample_program/460

github.com/NoMaY-jp/RX_SmartConfigurator_examples_RXTB_CSplus/tree/cafe_rene/10_DebugConsole_printf

int main(void)
{
    LED0 = LED_ON;

    for (;;)
    {
        printf( "Hello World\r\n" );

        R_BSP_SoftwareDelay( 1000, BSP_DELAY_MILLISECS );
        LED0 = ~LED0;

        R_BSP_SoftwareDelay( 1000, BSP_DELAY_MILLISECS );
        LED0 = ~LED0;
    }
}


 

Parents
  • こんにちは。NoMaYです。

    TB-RX65N/RX130/RX231のCS+のサンプルプログラムです。UART出力のサンプルを追加しました。(サンプルプログラム置き場とGitHubに置きました。)

    japan.renesasrulz.com/cafe_rene/m/sample_program/460

    github.com/NoMaY-jp/RX_SmartConfigurator_examples_RXTB_CSplus/tree/cafe_rene/30_UART_Printf

    R_CONFIG_SCI_SEND_IMPL( SCI1, 128 /* transmit buffer size */ );11/08変更
    U_CONFIG_UART_PRINTF_IMPL( SCI1, 128 /* transmit buffer size */ );

    int main(void)
    {
        LED0 = LED_ON;

        for (;;)
        {
            Printf( SCI1, "Hello World\r\n" );

            R_BSP_SoftwareDelay( 1000, BSP_DELAY_MILLISECS );
            LED0 = ~LED0;

            R_BSP_SoftwareDelay( 1000, BSP_DELAY_MILLISECS );
            LED0 = ~LED0;
        }
    }

    なお、Config_ext.hというヘッダをプロジェクトに追加して、r_cg_macrodriver.hの中からインクルードして下さい。(このヘッダにはパズルのようなマクロを記述してありますが、ちょっと初学者向きでは無いですので、説明は省略します。すみません。) また、Config_ext.hは、どのSCIチャンネルでも使用出来るようになっていますが、サンプルプログラムで使用しているSCIチャンネル以外を使用する場合は、予め、使用するSCIコンポーネントをRXスマートコンフィグレータで生成しておいて下さい。

    プロジェクトツリー: File/Smart Configurator/general/r_cg_macrodriver.h
    変更内容: 赤文字箇所を追加

    /******************************************************************************
    Global functions
    ******************************************************************************/
    void R_Systeminit(void);
    /* Start user code for function. Do not edit comment generated here */

    #include "Config_ext.h"

    /* End user code. Do not edit comment generated here */

    実行例: (なお、写真は別プロジェクトのもので、本プロジェクトでは光るLEDは左側のみです。)




     

Reply
  • こんにちは。NoMaYです。

    TB-RX65N/RX130/RX231のCS+のサンプルプログラムです。UART出力のサンプルを追加しました。(サンプルプログラム置き場とGitHubに置きました。)

    japan.renesasrulz.com/cafe_rene/m/sample_program/460

    github.com/NoMaY-jp/RX_SmartConfigurator_examples_RXTB_CSplus/tree/cafe_rene/30_UART_Printf

    R_CONFIG_SCI_SEND_IMPL( SCI1, 128 /* transmit buffer size */ );11/08変更
    U_CONFIG_UART_PRINTF_IMPL( SCI1, 128 /* transmit buffer size */ );

    int main(void)
    {
        LED0 = LED_ON;

        for (;;)
        {
            Printf( SCI1, "Hello World\r\n" );

            R_BSP_SoftwareDelay( 1000, BSP_DELAY_MILLISECS );
            LED0 = ~LED0;

            R_BSP_SoftwareDelay( 1000, BSP_DELAY_MILLISECS );
            LED0 = ~LED0;
        }
    }

    なお、Config_ext.hというヘッダをプロジェクトに追加して、r_cg_macrodriver.hの中からインクルードして下さい。(このヘッダにはパズルのようなマクロを記述してありますが、ちょっと初学者向きでは無いですので、説明は省略します。すみません。) また、Config_ext.hは、どのSCIチャンネルでも使用出来るようになっていますが、サンプルプログラムで使用しているSCIチャンネル以外を使用する場合は、予め、使用するSCIコンポーネントをRXスマートコンフィグレータで生成しておいて下さい。

    プロジェクトツリー: File/Smart Configurator/general/r_cg_macrodriver.h
    変更内容: 赤文字箇所を追加

    /******************************************************************************
    Global functions
    ******************************************************************************/
    void R_Systeminit(void);
    /* Start user code for function. Do not edit comment generated here */

    #include "Config_ext.h"

    /* End user code. Do not edit comment generated here */

    実行例: (なお、写真は別プロジェクトのもので、本プロジェクトでは光るLEDは左側のみです。)




     

Children
  • NoMaYさん
    これは便利ですね、
    Debug Consoleに表示できるのですね、是非試してみたいですが
    Debug Consoleから'A'というようなキー入力したときに分岐するようなことは
    本来可能なのでしょうか?
    この投稿タイトルとは関係ないことですが
    NoMaYさんにお伺いしたくて
    今一方向ですから両方向で通信できればさらに便利かなと思った次第です。
  • IKUZOさん、こんにちは。NoMaYです。

    デバッグコンソールで両方向通信も可能です。RXスマートコンフィグレータ(というかFIT BSPモジュール)+CC-RXで、例えば、以下のような普通のC言語プログラムで可能です。(ただし、普通のC言語プログラム同様に入力待ちで処理が止まりますので、FIT BSPモジュールの下層を見たくない場合はRTOSで入力待ちのタスクを作るか、RTOSを使いたくない場合はFIT BSPモジュールのソースを参考にして入力存在確認関数を作るか、そういったことをする必要が出てくるかとは思います。)

    プログラム例のソース:

    int main(void)
    {
        char c;

        for (;;)
        {
            printf( "Please enter one digit number>\r\n" );

            c = getchar();

            printf( "\r\nNow %c is entered.\r\n\r\n", c );
        }
    }

    プログラム例の実行画面:



    FIT BSPモジュールの下層の処理:

    github.com/renesas/rx-driver-package/blob/153ad87/source/r_bsp/r_bsp_vx.xx/r_bsp/mcu/all/lowlvl.c
     

  • NoMaYさん
    getchar();も使用できるんですね、そうするとターミナルソフトを別に用意する必要も無いのでデバッグがやりやすいですよね、今自分はSCIで引き出してやっているのですが、これはE1とかE2のエミュレータの配線を使用して通信しているわけなんでしょ?
  • IKUZOさん、こんにちは。NoMaYです。

    > これはE1とかE2のエミュレータの配線を使用して通信しているわけなんでしょ?

    そうです。ただ、以下の欠点もありますので、それを踏まえておく必要はあるかと思います。

    (1) あまり速くは無い。きちんと計っていないが数十Kbps~数Kbpsぐらいっぽい
    (2) DMA/DTCによる転送が出来ないので送受信中はCPUに負担を掛ける
    (3) パソコン側のターミナルソフトを自作することが出来ない