Esempio n. 1
0
static void motor_stop(void) {
  memset(&motor, 0, sizeof(motor));
  gpio_disable(MOTORA_PORT, MOTORAIN1_PIN);
  gpio_disable(MOTORA_PORT, MOTORAIN2_PIN);
  gpio_disable(MOTORB_PORT, MOTORBIN1_PIN);
  gpio_disable(MOTORB_PORT, MOTORBIN2_PIN);
  set_motora_pwm_duty_cycle(MOTOR_PERIOD);
  set_motorb_pwm_duty_cycle(MOTOR_PERIOD);
}
Esempio n. 2
0
static void motor_set(s16_t left, s16_t right) {
  if (left == 0) {
    gpio_disable(MOTORA_PORT, MOTORAIN1_PIN);
    gpio_disable(MOTORA_PORT, MOTORAIN2_PIN);
    set_motora_pwm_duty_cycle(MOTOR_PERIOD);
  } else {
    if (left > 0) {
      gpio_enable(MOTORA_PORT, MOTORAIN1_PIN);
      gpio_disable(MOTORA_PORT, MOTORAIN2_PIN);
    } else {
      gpio_disable(MOTORA_PORT, MOTORAIN1_PIN);
      gpio_enable(MOTORA_PORT, MOTORAIN2_PIN);
      left = -left;
    }
    set_motora_pwm_duty_cycle((MOTOR_PERIOD*left)/128);
  }
  if (right == 0) {
    gpio_disable(MOTORB_PORT, MOTORBIN1_PIN);
    gpio_disable(MOTORB_PORT, MOTORBIN2_PIN);
    set_motorb_pwm_duty_cycle(MOTOR_PERIOD);
  } else {
    if (right > 0) {
      gpio_enable(MOTORB_PORT, MOTORBIN1_PIN);
      gpio_disable(MOTORB_PORT, MOTORBIN2_PIN);
    } else {
      gpio_disable(MOTORB_PORT, MOTORBIN1_PIN);
      gpio_enable(MOTORB_PORT, MOTORBIN2_PIN);
      right = -right;
    }
    set_motorb_pwm_duty_cycle((MOTOR_PERIOD*right)/128);
  }
}
Esempio n. 3
0
void MOTOR_go(s8_t x) {
  if (x == 0) {
    motor_stop();
    return;
  } else if (x > 0) {
    gpio_enable(MOTORA_PORT, MOTORAIN1_PIN);
    gpio_disable(MOTORA_PORT, MOTORAIN2_PIN);
    gpio_enable(MOTORB_PORT, MOTORBIN1_PIN);
    gpio_disable(MOTORB_PORT, MOTORBIN2_PIN);
  } else if (x < 0) {
    gpio_disable(MOTORA_PORT, MOTORAIN1_PIN);
    gpio_enable(MOTORA_PORT, MOTORAIN2_PIN);
    gpio_disable(MOTORB_PORT, MOTORBIN1_PIN);
    gpio_enable(MOTORB_PORT, MOTORBIN2_PIN);
    x = -x;
  }
  set_motora_pwm_duty_cycle((MOTOR_PERIOD*x)/128);
  set_motorb_pwm_duty_cycle((MOTOR_PERIOD*x)/128);
}
Esempio n. 4
0
 /**
  * 
  * @param gpio_num
  * @return 
  */
 int disable(uint8_t gpio_num)
 {
     if(m_Valid.pinIsValid(gpio_num) == 0) {
         m_GpioStat[gpio_num].gpio_direction = (gpio_direction_t) 0xFF;
         
         gpio_disable(gpio_num);
     }
     else {
         return -1;
     }
     
     return 0;
 }
Esempio n. 5
0
void TIMER_irq() {
  if (TIM_GetITStatus(STM32_SYSTEM_TIMER, TIM_IT_Update) != RESET) {
    TIM_ClearITPendingBit(STM32_SYSTEM_TIMER, TIM_IT_Update);
    q++;
    if ((q & 0xffff) < 0x1ff) {
      gpio_enable(PORTF, PIN6);
    } else {
      gpio_disable(PORTF, PIN6);
    }
    bool ms_update = SYS_timer();
    if (ms_update) {
      TRACE_MS_TICK(SYS_get_time_ms() & 0xff);
    }
#ifdef CONFIG_TASK_QUEUE
    TASK_timer();
#endif
#ifdef CONFIG_OS
    if (ms_update) {
      __os_time_tick(SYS_get_time_ms());
    }
#endif
  }
}
Esempio n. 6
0
void CVIDEO_set_input(video_input_t input) {
  vid.input = input;
  if (input == INPUT_CAMERA || input == INPUT_NONE) {
    TIM_DeInit(TIM1);
    TIM_Cmd(TIM1, DISABLE);
    TIM_OC1PreloadConfig(TIM1, TIM_OCPreload_Disable);
    NVIC_DisableIRQ(TIM1_UP_IRQn);
    TIM_CtrlPWMOutputs(TIM1, DISABLE);

    if (input == INPUT_CAMERA) {
      if (VID_SEL_PINVAL_GEN) {
        gpio_disable(VID_SEL_PORT, VID_SEL_PIN);
      } else {
        gpio_enable(VID_SEL_PORT, VID_SEL_PIN);
      }
    } else {
      if (VID_SEL_PINVAL_GEN) {
        gpio_enable(VID_SEL_PORT, VID_SEL_PIN);
      } else {
        gpio_disable(VID_SEL_PORT, VID_SEL_PIN);
      }
    }

  } else {
    // INPUT_GENERATED

    TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;

    TIM_Cmd(TIM1, DISABLE);
    NVIC_DisableIRQ(TIM1_UP_IRQn);
    //TIM_DeInit(TIM1);

    if (VID_SEL_PINVAL_GEN) {
      gpio_enable(VID_SEL_PORT, VID_SEL_PIN);
    } else {
      gpio_disable(VID_SEL_PORT, VID_SEL_PIN);
    }

    TIM_TimeBaseStructure.TIM_Period = 4608;//SYS_CPU_FREQ / 15625;
    TIM_TimeBaseStructure.TIM_Prescaler = 1-1;
    TIM_TimeBaseStructure.TIM_ClockDivision = 0;
    TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
    TIM_TimeBaseStructure.TIM_RepetitionCounter = 0;
    TIM_TimeBaseInit(TIM1, &TIM_TimeBaseStructure);

    TIM_OCInitTypeDef  TIM_OCInitStructure;
    TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;
    TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
    TIM_OCInitStructure.TIM_Pulse = 4608/2;
    TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low;
    TIM_OCInitStructure.TIM_OCNPolarity = TIM_OCPolarity_High;
    TIM_OCInitStructure.TIM_OCIdleState = TIM_OCIdleState_Reset;
    TIM_OCInitStructure.TIM_OCNIdleState = TIM_OCNIdleState_Reset;

    TIM_OC1Init(TIM1, &TIM_OCInitStructure);
    TIM_OC1PreloadConfig(TIM1, TIM_OCPreload_Enable);

    TIM_ARRPreloadConfig(TIM1, DISABLE);

    TIM_ClearITPendingBit(TIM1,
        TIM_IT_Update | TIM_IT_CC1 | TIM_IT_CC2 | TIM_IT_CC3 | TIM_IT_CC4 |
        TIM_IT_COM | TIM_IT_Trigger | TIM_IT_Break);
    TIM_ITConfig(TIM1, TIM_IT_Update, ENABLE);
    NVIC_EnableIRQ(TIM1_UP_IRQn);

    TIM_SetCounter(TIM1, 0);
    TIM_Cmd(TIM1, ENABLE);
    TIM_CtrlPWMOutputs(TIM1, ENABLE);
  }
}
Esempio n. 7
0
static void dmw_keypad_setup_col(int gpio)
{
	gpio_disable(gpio);
}
Esempio n. 8
0
static void dmw_keypad_setup_row(int gpio)
{
	gpio_disable(gpio);
	gpio_pull_ctrl(gpio, 1, 1);
}