/***********************************************************************/ /* */ /* FILE :KRS788.c */ /* DATE :Thu, Sep 11, 2008 */ /* DESCRIPTION :main program file. */ /* CPU GROUP :26 */ /* */ /* This file is generated by Renesas Project Generator (Ver.4.8). */ /* */ /***********************************************************************/ // // KRS788 // // <準備> // ・KRS788サーボを用意し、サーボリードの白線(信号を受信する線)をコネクタから外す // ・赤線(電源)と黒線(グランド)はSIOポートのどれかに差し込む // ・コネクタから外した白線をPIO0に接続(別途端子またはコネクタを利用して下さい) // // <KRS788 仕様> // ・HIGHのパルス幅を700us(マイクロ秒)流すと0度の位置へ回転します // ・HIGHのパルス幅を2300us(マイクロ秒)流すと180度の位置へ回転します // ・その中間である1500us(マイクロ秒)流すと90度の位置へ回転します // ・LOWの時間(次にHIGHにするまでの間)は、5ms〜20ms程度空ければよい // // // Copyright (C) 2008 KONDO KAGAKU CO.,LTD. All Rights Reserved. // #include #include void main(void) { cpu_init (); // CPUの初期化 ledgrn_on(); // 電源ON表示用LEDの点灯 // // PWM出力の設定について // // ・KRS788は700us〜2300us(1600us)まで指定できる // ・今回は8bit PWMを使う(パルス幅は0〜255まで指定できる) // ・周期は8msとすると、700us〜2300usをパルス幅に変換すると、だいたい22〜72(50段階)となる // // 8bit PWMの初期化 // // ・周期=(255x(fq+1))/Fj=8ms=0.008 // ・FjにはF8を使うことにした(2.5MHz = 2,500,000) // ・出力端子をPIO0とした // // 周期の決定(fqの計算) // // fq = (周期 x Fj)/255 - 1 // = (8ms x 2.5MHz)/255 - 1 // = (0.008 x 2500000)/255 - 1 // = 78.43 - 1 // = 77 pwm8_init (PIO0, PWM_F8, 77); // PWM信号を発信(初期状態ではパルス幅は0となっている) pwm_start (PIO0); pwm_out (PIO0, 22); // 0度:パルス幅22を出力する wait (800000); // サーボモーターが0度の位置へ動くまで約1秒待つ pwm_out (PIO0, 72); // 180度:パルス幅72を出力する wait (800000); // サーボモーターが180度の位置へ動くまで約1秒待つ pwm_out (PIO0, 47); // 90度:パルス幅47を出力する wait (800000); // サーボモーターが90度の位置へ動くまで約1秒待つ }