Beispiel #1
0
void XZ_Foot::set_direction(int d)
{
    if(d==POSITIVE_DIR) {
        set_pin_high(dir_pin_0, dir_connector_0);
        set_pin_low(dir_pin_1, dir_connector_1);
    } else {
        set_pin_low(dir_pin_0, dir_connector_0);
        set_pin_high(dir_pin_1, dir_connector_1);
    }
}
Beispiel #2
0
static int
get_dht11_data(unsigned char *pbuf)
{
    int i;
    unsigned char DataTemp;
    int ret = -EFAULT;

    set_pin_high(); //拉高总线
    udelay(40);
    set_pin_low(); //拉低总线
    msleep(20);
    set_pin_high(); //拉高总线
    udelay(40);
    set_pin_input(); //设置输入模式

    do
    {
        DataTemp = 10;
        while (!(set_pin_get()) && DataTemp)
        {
            DataTemp--;
            udelay(10);
        }
        if (!DataTemp)
        {
            break;
        }
        //
        DataTemp = 10;
        while ((set_pin_get()) && DataTemp)
        {
            DataTemp--;
            udelay(10);
        }
        if (!DataTemp)
        {
            break;
        }
        //读取5字节
        for (i = 0; i < 5; i++)
        {
            pbuf[i] = DHT11_read_byte();
        }
        //计算校验和
        DataTemp = 0;
        for (i = 0; i < 4; i++)
        {
            DataTemp += pbuf[i];
        }
        if (DataTemp != pbuf[4])
        {
            break;
        }
        ret = 5;
    }
    while (0);

    set_pin_high(); //拉高总线
    return ret;
}
Beispiel #3
0
int parser_servo_cmd(struct s_base_motion *cmd)
{
    if(cmd == NULL)  return -1;

    if(cmd->left_action == START_ACTION) {
        printf("Start servo!\n");
        set_pin_high(servo_pin[0][0], servo_pin[0][1]);
    } else {
        printf("Stop servo!\n");
        set_pin_low(servo_pin[0][0], servo_pin[0][1]);
    }

    return 0;
}