/* Copyright Statement: * * This software/firmware and related documentation ("AutoChips Software") are * protected under relevant copyright laws. The information contained herein is * confidential and proprietary to AutoChips Inc. and/or its licensors. Without * the prior written permission of AutoChips inc. and/or its licensors, any * reproduction, modification, use or disclosure of AutoChips Software, and * information contained herein, in whole or in part, shall be strictly * prohibited. * * AutoChips Inc. (C) 2016. All rights reserved. * * BY OPENING THIS FILE, RECEIVER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES * THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("AUTOCHIPS SOFTWARE") * RECEIVED FROM AUTOCHIPS AND/OR ITS REPRESENTATIVES ARE PROVIDED TO RECEIVER * ON AN "AS-IS" BASIS ONLY. AUTOCHIPS EXPRESSLY DISCLAIMS ANY AND ALL * WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED * WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR * NONINFRINGEMENT. NEITHER DOES AUTOCHIPS PROVIDE ANY WARRANTY WHATSOEVER WITH * RESPECT TO THE SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, * INCORPORATED IN, OR SUPPLIED WITH THE AUTOCHIPS SOFTWARE, AND RECEIVER AGREES * TO LOOK ONLY TO SUCH THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. * RECEIVER EXPRESSLY ACKNOWLEDGES THAT IT IS RECEIVER'S SOLE RESPONSIBILITY TO * OBTAIN FROM ANY THIRD PARTY ALL PROPER LICENSES CONTAINED IN AUTOCHIPS * SOFTWARE. AUTOCHIPS SHALL ALSO NOT BE RESPONSIBLE FOR ANY AUTOCHIPS SOFTWARE * RELEASES MADE TO RECEIVER'S SPECIFICATION OR TO CONFORM TO A PARTICULAR * STANDARD OR OPEN FORUM. RECEIVER'S SOLE AND EXCLUSIVE REMEDY AND AUTOCHIPS'S * ENTIRE AND CUMULATIVE LIABILITY WITH RESPECT TO THE AUTOCHIPS SOFTWARE * RELEASED HEREUNDER WILL BE, AT AUTOCHIPS'S OPTION, TO REVISE OR REPLACE THE * AUTOCHIPS SOFTWARE AT ISSUE, OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE * CHARGE PAID BY RECEIVER TO AUTOCHIPS FOR SUCH AUTOCHIPS SOFTWARE AT ISSUE. */ /********************/ #include "ac780x_gpio.h" #include "ac780x.h" #include "ac780x_timer.h" #include "ac780x_pwm.h" #include "Motor.h" /*******************/ /*******************/ uint32_t g_positvePulse;///>1; independentChConfig[1].levelMode = PWM_HIGH_TRUE; independentChConfig[1].polarity = PWM_OUTPUT_POLARITY_ACTIVE_HIGH; independentChConfig[1].interruptEn = DISABLE; independentChConfig[1].initLevel = PWM_LOW_LEVEL; independentChConfig[1].triggerEn = DISABLE; initModeStruct.countMode = PWM_UP_COUNT; initModeStruct.deadtime = 24; initModeStruct.deadtimePsc = PWM_DEADTIME_DIVID_1; initModeStruct.initChOutputEn = ENABLE; initModeStruct.initTriggerEn = DISABLE; initModeStruct.independentChannelNum = 2; initModeStruct.independentChConfig = independentChConfig; pwmConfig.mode = PWM_MODE_MODULATION; pwmConfig.clkSource = PWM_CLK_SOURCE_APB; pwmConfig.clkPsc = PWM_PRES; pwmConfig.initValue = 0; pwmConfig.maxValue = MOD_PWM - 1; pwmConfig.overflowInterrupEn = ENABLE; pwmConfig.cntOverflowFreq = 0; pwmConfig.interruptEn = DISABLE; pwmConfig.callBack = PWM1_CallBack; //PWM中断回调 pwmConfig.initModeStruct = &initModeStruct; PWM_Init(PWM1, &pwmConfig); NVIC_SetPriority(PWM1_IRQn, 0); //设置PWM模块中断的优先级 } void Motor_Positive(uint8_t speed) { uint16_t chValue=0; if(speed > 100) speed = 100; //speed = 100 -speed; chValue = (uint16_t)speed*(MOD_PWM-1)/100; printf("Motor_Positive, speed:%d \r\n", speed); PWM_SetChannelCountValue(PWM1, PWM_CH_3, 0); PWM_SetChannelCountValue(PWM1, PWM_CH_2, chValue); } void Motor_Negative(uint8_t speed) { uint16_t chValue=0; if(speed > 100) speed = 100; //speed = 100 -speed; chValue = (uint16_t)speed*MOD_PWM/100; printf("Motor_Negative, speed:%d \r\n", speed); PWM_SetChannelCountValue(PWM1, PWM_CH_2, 0); PWM_SetChannelCountValue(PWM1, PWM_CH_3, chValue); } //电机停止转动 void Motor_Stop(void) { PWM_SetChannelCountValue(PWM1, PWM_CH_2, 0); PWM_SetChannelCountValue(PWM1, PWM_CH_3, 0); } /*******************/