カウンタとPWM波形

簡単なサンプルプログラム

int main()
{
    /* タイマWを使ったPWM制御 */
    /* ポート8:P80〜P84はタイマWと兼用なので注意が必要 */
    TMRW  = 0x4B;  /* カウンタ停止,PWMB,PWMCをPWM用に使う */
    TCRW  = 0xB6;  /* TCNTをコンペアマッチAでクリア+Clock=φ/8,(TOC,TOB=1) */
    TIERW = 0;     /* タイマW割込みを使わない */
    TIOR0 = 0x10;  /* コンペアマッチBでFTIOB=0 */
    TIOR1 = 0x01;  /* コンペアマッチCでFTIOC=0 */

    /* PWM の繰り返し周期の設定 */
    GRA   = 1000;  /* PWM周期を1000クロック */

    /* PWM のデューティ比の設定 */
    GRB   =  700;  /* FTIOBのON:700,OFF:300 */
    GRC   =  250;  /* FTIOCのON:250,OFF:750 */

    /* カウンタ動作開始 */
    TMRW  = 0xCB;

    while(1){
        SLEEP();   /* 他の処理を待つ */
    }
    return 0 ;
}

プログラム


Last modified: Wed May 26 10:59:32 JST 2004