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); }
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); } }
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); }
/** * * @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; }
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 } }
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); } }
static void dmw_keypad_setup_col(int gpio) { gpio_disable(gpio); }
static void dmw_keypad_setup_row(int gpio) { gpio_disable(gpio); gpio_pull_ctrl(gpio, 1, 1); }