Ignore:
Timestamp:
Aug 23, 2017, 9:27:43 AM (7 years ago)
Author:
coas-nagasima
Message:

文字コードを設定

File:
1 edited

Legend:

Unmodified
Added
Removed
  • EcnlProtoTool/trunk/mrbgems/mruby-arduino/src/sServo.c

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-csrc to text/x-csrc;charset=UTF-8
    r270 r321  
    11/*
    2  * サーボ・ハード関連
     2 * サーボ・ハード関連
    33 *
    44 * Copyright (c) 2016 Wakayama.rb Ruby Board developers
     
    2222
    2323/******************************************************/
    24 /* サーボ出力を任意のピンに割り当てます: Servo.attach*/
     24/* サーボ出力を任意のピンに割り当てます: Servo.attach*/
    2525/* Servo.attach(ch, pin[,min,max])*/
    26 /*      ch: サーボのチャネル 0~11まで指定できます*/
    27 /*  pin: 割り当てるピン番号*/
    28 /*  min: サーボの角度が0度のときのパルスå¹
    29 (マイクロ秒)。デフォルトは544*/
    30 /*  max: サーボの角度が180度のときのパルスå¹
    31 (マイクロ秒)。デフォルトは2400*/
     26/*      ch: サーボのチャネル 0~11まで指定できます*/
     27/*  pin: 割り当てるピン番号*/
     28/*  min: サーボの角度が0度のときのパルス幅(マイクロ秒)。デフォルトは544*/
     29/*  max: サーボの角度が180度のときのパルス幅(マイクロ秒)。デフォルトは2400*/
    3230/******************************************************/
    3331mrb_value mrb_servo_attach(mrb_state *mrb, mrb_value self)
     
    4240
    4341        if (pinno >= 20) {
    44                 return mrb_nil_value();                 /*戻り値は無しですよ。*/
    45         }
    46 
    47         /* nが2以下のときは、minが引数に無いので、 */
     42                return mrb_nil_value();                 /*戻り値は無しですよ。*/
     43        }
     44
     45        /* nが2以下のときは、minが引数に無いので、 */
    4846        if (n <= 2) {
    4947                min = 544;
    5048        }
    5149
    52         /* nが3以下のときは、maxが引数に無いので、 */
     50        /* nが3以下のときは、maxが引数に無いので、 */
    5351        if (n <= 3) {
    5452                max = 2400;
     
    5654
    5755        if (ch < 0 || ch >= ATTACH_MAX) {
    58                 return mrb_nil_value();                 /*戻り値は無しですよ。*/
     56                return mrb_nil_value();                 /*戻り値は無しですよ。*/
    5957        }
    6058
     
    6664        pin = get_pin(pintype_pwmout, pinno);
    6765        if (pin == NULL)
    68                 return mrb_nil_value();                 /*戻り値は無しですよ。*/
     66                return mrb_nil_value();                 /*戻り値は無しですよ。*/
    6967
    7068        servo[ch] = pin;
     
    7270        servo[ch]->max = max;
    7371
    74         return mrb_nil_value();                 /*戻り値は無しですよ。*/
    75 }
    76 
    77 /******************************************************/
    78 /* サーボの角度をセットします: Servo.write*/
     72        return mrb_nil_value();                 /*戻り値は無しですよ。*/
     73}
     74
     75/******************************************************/
     76/* サーボの角度をセットします: Servo.write*/
    7977/* Servo.write(ch,angle)*/
    80 /*      ch: サーボのチャネル 0~11まで指定できます*/
    81 /*  angle: 角度 0~180*/
     78/*      ch: サーボのチャネル 0~11まで指定できます*/
     79/*  angle: 角度 0~180*/
    8280/******************************************************/
    8381mrb_value mrb_servo_write(mrb_state *mrb, mrb_value self)
     
    9189
    9290        if (ch < 0 || ch >= ATTACH_MAX) {
    93                 return mrb_nil_value();                 /*戻り値は無しですよ。*/
     91                return mrb_nil_value();                 /*戻り値は無しですよ。*/
    9492        }
    9593
    9694        if (servo[ch] == NULL) {
    97                 return mrb_nil_value();                 /*戻り値は無しですよ。*/
     95                return mrb_nil_value();                 /*戻り値は無しですよ。*/
    9896        }
    9997
     
    106104        pwmout_pulsewidth_us(&servo[ch]->pwmout, (angle * (max - min)) / 180 + min);
    107105
    108         return mrb_nil_value();                 /*戻り値は無しですよ。*/
    109 }
    110 
    111 /******************************************************/
    112 /* サーボモータにus単位で角度を指定する: Servo.us*/
     106        return mrb_nil_value();                 /*戻り値は無しですよ。*/
     107}
     108
     109/******************************************************/
     110/* サーボモータにus単位で角度を指定する: Servo.us*/
    113111/* Servo.us(ch,us)*/
    114 /*      ch: サーボのチャネル 0~11まで指定できます*/
    115 /*  us: 出力したいパルスのå¹
    116  1~19999, 0で出力 OFF*/
    117 /*   ã‚µãƒ¼ãƒœãƒ¢ãƒ¼ã‚¿ã«ä¸Žãˆã‚‰ã‚Œã‚‹ãƒ‘ルスは20ms周期で、1周期中のHighの時間を直接指定する。*/
    118 /*   å®Ÿè³ªçš„にPWM出力。連続回転タイプのサーボでは、回転のスピードが設定することができる。*/
     112/*      ch: サーボのチャネル 0~11まで指定できます*/
     113/*  us: 出力したいパルスの幅 1~19999, 0で出力 OFF*/
     114/*   サーボモータに与えられるパルスは20ms周期で、1周期中のHighの時間を直接指定する。*/
     115/*   実質的にPWM出力。連続回転タイプのサーボでは、回転のスピードが設定することができる。*/
    119116/******************************************************/
    120117mrb_value mrb_servo_us(mrb_state *mrb, mrb_value self)
     
    126123
    127124        if (ch < 0 || ch >= ATTACH_MAX) {
    128                 return mrb_nil_value();                 /*戻り値は無しですよ。*/
     125                return mrb_nil_value();                 /*戻り値は無しですよ。*/
    129126        }
    130127
    131128        if (servo[ch] == 0) {
    132                 return mrb_nil_value();                 /*戻り値は無しですよ。*/
     129                return mrb_nil_value();                 /*戻り値は無しですよ。*/
    133130        }
    134131
    135132        pwmout_pulsewidth_us(&servo[ch]->pwmout, us);
    136133
    137         return mrb_nil_value();                 /*戻り値は無しですよ。*/
    138 }
    139 
    140 /******************************************************/
    141 /* 最後に設定された角度を読み出す: Servo.read*/
     134        return mrb_nil_value();                 /*戻り値は無しですよ。*/
     135}
     136
     137/******************************************************/
     138/* 最後に設定された角度を読み出す: Servo.read*/
    142139/* Servo.read(ch)*/
    143 /*      ch: サーボのチャネル 0~11まで指定できます*/
    144 /* 戻り値*/
    145 /*  マイクロ秒単位 us(ch) で与えた値は読みとれない*/
     140/*      ch: サーボのチャネル 0~11まで指定できます*/
     141/* 戻り値*/
     142/*  マイクロ秒単位 us(ch) で与えた値は読みとれない*/
    146143/******************************************************/
    147144mrb_value mrb_servo_read(mrb_state *mrb, mrb_value self)
     
    166163
    167164/******************************************************/
    168 /* ピンにサーボが割り当てられているかを確認する: Servo.attached*/
     165/* ピンにサーボが割り当てられているかを確認する: Servo.attached*/
    169166/* Servo.attached(ch)*/
    170 /*      ch: サーボのチャネル 0~11まで指定できます*/
    171 /* 戻り値*/
    172 /*  1: 割り当てられている*/
    173 /*  0: 割り当てはない*/
     167/*      ch: サーボのチャネル 0~11まで指定できます*/
     168/* 戻り値*/
     169/*  1: 割り当てられている*/
     170/*  0: 割り当てはない*/
    174171/******************************************************/
    175172mrb_value mrb_servo_attached(mrb_state *mrb, mrb_value self)
     
    196193
    197194/******************************************************/
    198 /* サーボの動作を止め、割り込みを禁止する: Servo.detach*/
     195/* サーボの動作を止め、割り込みを禁止する: Servo.detach*/
    199196/* Servo.detach(ch)*/
    200 /*      ch: サーボのチャネル 0~9まで指定できます*/
     197/*      ch: サーボのチャネル 0~9まで指定できます*/
    201198/******************************************************/
    202199mrb_value mrb_servo_detach(mrb_state *mrb, mrb_value self)
     
    207204
    208205        if (ch < 0 || ch >= ATTACH_MAX) {
    209                 return mrb_nil_value();                 /*戻り値は無しですよ。*/
     206                return mrb_nil_value();                 /*戻り値は無しですよ。*/
    210207        }
    211208
    212209        if (servo[ch] == NULL) {
    213                 return mrb_nil_value();                 /*戻り値は無しですよ。*/
     210                return mrb_nil_value();                 /*戻り値は無しですよ。*/
    214211        }
    215212
     
    217214        servo[ch] = 0;
    218215
    219         return mrb_nil_value();                 /*戻り値は無しですよ。*/
    220 }
    221 
    222 /******************************************************/
    223 /* ライブラリを定義します*/
     216        return mrb_nil_value();                 /*戻り値は無しですよ。*/
     217}
     218
     219/******************************************************/
     220/* ライブラリを定義します*/
    224221/******************************************************/
    225222void servo_Init(mrb_state *mrb)
Note: See TracChangeset for help on using the changeset viewer.