Encoder by time difference
This commit is contained in:
@@ -18,7 +18,7 @@ void setup() {
|
||||
pinMode(1, OUTPUT);
|
||||
pinMode(LED_BUILTIN_AUX, OUTPUT);
|
||||
pinMode(LED_BUILTIN, OUTPUT);
|
||||
Serial.begin(921600);
|
||||
Serial.begin(2000000);
|
||||
Serial.setTimeout(1);
|
||||
WiFi.hostname("PFC_GabrielLima");
|
||||
WiFi.begin(WIFI_SSID, WIFI_PSK);
|
||||
|
||||
@@ -45,6 +45,7 @@ ADC_HandleTypeDef hadc1;
|
||||
I2C_HandleTypeDef hi2c1;
|
||||
|
||||
SPI_HandleTypeDef hspi1;
|
||||
SPI_HandleTypeDef hspi2;
|
||||
|
||||
TIM_HandleTypeDef htim1;
|
||||
TIM_HandleTypeDef htim2;
|
||||
@@ -79,6 +80,7 @@ static void MX_UART4_Init(void);
|
||||
static void MX_UART5_Init(void);
|
||||
static void MX_ADC1_Init(void);
|
||||
static void MX_TIM10_Init(void);
|
||||
static void MX_SPI2_Init(void);
|
||||
/* USER CODE BEGIN PFP */
|
||||
|
||||
/* USER CODE END PFP */
|
||||
@@ -129,6 +131,7 @@ int main(void)
|
||||
MX_UART5_Init();
|
||||
MX_ADC1_Init();
|
||||
MX_TIM10_Init();
|
||||
MX_SPI2_Init();
|
||||
/* USER CODE BEGIN 2 */
|
||||
|
||||
/* USER CODE END 2 */
|
||||
@@ -313,6 +316,44 @@ static void MX_SPI1_Init(void)
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief SPI2 Initialization Function
|
||||
* @param None
|
||||
* @retval None
|
||||
*/
|
||||
static void MX_SPI2_Init(void)
|
||||
{
|
||||
|
||||
/* USER CODE BEGIN SPI2_Init 0 */
|
||||
|
||||
/* USER CODE END SPI2_Init 0 */
|
||||
|
||||
/* USER CODE BEGIN SPI2_Init 1 */
|
||||
|
||||
/* USER CODE END SPI2_Init 1 */
|
||||
/* SPI2 parameter configuration*/
|
||||
hspi2.Instance = SPI2;
|
||||
hspi2.Init.Mode = SPI_MODE_MASTER;
|
||||
hspi2.Init.Direction = SPI_DIRECTION_2LINES;
|
||||
hspi2.Init.DataSize = SPI_DATASIZE_8BIT;
|
||||
hspi2.Init.CLKPolarity = SPI_POLARITY_LOW;
|
||||
hspi2.Init.CLKPhase = SPI_PHASE_1EDGE;
|
||||
hspi2.Init.NSS = SPI_NSS_SOFT;
|
||||
hspi2.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_8;
|
||||
hspi2.Init.FirstBit = SPI_FIRSTBIT_MSB;
|
||||
hspi2.Init.TIMode = SPI_TIMODE_DISABLE;
|
||||
hspi2.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;
|
||||
hspi2.Init.CRCPolynomial = 10;
|
||||
if (HAL_SPI_Init(&hspi2) != HAL_OK)
|
||||
{
|
||||
Error_Handler();
|
||||
}
|
||||
/* USER CODE BEGIN SPI2_Init 2 */
|
||||
|
||||
/* USER CODE END SPI2_Init 2 */
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief TIM1 Initialization Function
|
||||
* @param None
|
||||
|
||||
@@ -276,6 +276,31 @@ void HAL_SPI_MspInit(SPI_HandleTypeDef* hspi)
|
||||
|
||||
/* USER CODE END SPI1_MspInit 1 */
|
||||
}
|
||||
else if(hspi->Instance==SPI2)
|
||||
{
|
||||
/* USER CODE BEGIN SPI2_MspInit 0 */
|
||||
|
||||
/* USER CODE END SPI2_MspInit 0 */
|
||||
/* Peripheral clock enable */
|
||||
__HAL_RCC_SPI2_CLK_ENABLE();
|
||||
|
||||
__HAL_RCC_GPIOB_CLK_ENABLE();
|
||||
/**SPI2 GPIO Configuration
|
||||
PB13 ------> SPI2_SCK
|
||||
PB14 ------> SPI2_MISO
|
||||
PB15 ------> SPI2_MOSI
|
||||
*/
|
||||
GPIO_InitStruct.Pin = GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15;
|
||||
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
|
||||
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
|
||||
GPIO_InitStruct.Alternate = GPIO_AF5_SPI2;
|
||||
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
|
||||
|
||||
/* USER CODE BEGIN SPI2_MspInit 1 */
|
||||
|
||||
/* USER CODE END SPI2_MspInit 1 */
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -306,6 +331,25 @@ void HAL_SPI_MspDeInit(SPI_HandleTypeDef* hspi)
|
||||
|
||||
/* USER CODE END SPI1_MspDeInit 1 */
|
||||
}
|
||||
else if(hspi->Instance==SPI2)
|
||||
{
|
||||
/* USER CODE BEGIN SPI2_MspDeInit 0 */
|
||||
|
||||
/* USER CODE END SPI2_MspDeInit 0 */
|
||||
/* Peripheral clock disable */
|
||||
__HAL_RCC_SPI2_CLK_DISABLE();
|
||||
|
||||
/**SPI2 GPIO Configuration
|
||||
PB13 ------> SPI2_SCK
|
||||
PB14 ------> SPI2_MISO
|
||||
PB15 ------> SPI2_MOSI
|
||||
*/
|
||||
HAL_GPIO_DeInit(GPIOB, GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15);
|
||||
|
||||
/* USER CODE BEGIN SPI2_MspDeInit 1 */
|
||||
|
||||
/* USER CODE END SPI2_MspDeInit 1 */
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -14,21 +14,22 @@ Mcu.CPN=STM32F407VGT6
|
||||
Mcu.Family=STM32F4
|
||||
Mcu.IP0=ADC1
|
||||
Mcu.IP1=I2C1
|
||||
Mcu.IP10=TIM5
|
||||
Mcu.IP11=TIM8
|
||||
Mcu.IP12=TIM10
|
||||
Mcu.IP13=UART4
|
||||
Mcu.IP14=UART5
|
||||
Mcu.IP15=USB_OTG_FS
|
||||
Mcu.IP10=TIM4
|
||||
Mcu.IP11=TIM5
|
||||
Mcu.IP12=TIM8
|
||||
Mcu.IP13=TIM10
|
||||
Mcu.IP14=UART4
|
||||
Mcu.IP15=UART5
|
||||
Mcu.IP16=USB_OTG_FS
|
||||
Mcu.IP2=NVIC
|
||||
Mcu.IP3=RCC
|
||||
Mcu.IP4=SPI1
|
||||
Mcu.IP5=SYS
|
||||
Mcu.IP6=TIM1
|
||||
Mcu.IP7=TIM2
|
||||
Mcu.IP8=TIM3
|
||||
Mcu.IP9=TIM4
|
||||
Mcu.IPNb=16
|
||||
Mcu.IP5=SPI2
|
||||
Mcu.IP6=SYS
|
||||
Mcu.IP7=TIM1
|
||||
Mcu.IP8=TIM2
|
||||
Mcu.IP9=TIM3
|
||||
Mcu.IPNb=17
|
||||
Mcu.Name=STM32F407V(E-G)Tx
|
||||
Mcu.Package=LQFP100
|
||||
Mcu.Pin0=PH0-OSC_IN
|
||||
@@ -45,38 +46,41 @@ Mcu.Pin18=PE11
|
||||
Mcu.Pin19=PE13
|
||||
Mcu.Pin2=PC0
|
||||
Mcu.Pin20=PE14
|
||||
Mcu.Pin21=PD12
|
||||
Mcu.Pin22=PD13
|
||||
Mcu.Pin23=PC6
|
||||
Mcu.Pin24=PC7
|
||||
Mcu.Pin25=PC8
|
||||
Mcu.Pin26=PC9
|
||||
Mcu.Pin27=PA9
|
||||
Mcu.Pin28=PA11
|
||||
Mcu.Pin29=PA12
|
||||
Mcu.Pin21=PB13
|
||||
Mcu.Pin22=PB14
|
||||
Mcu.Pin23=PB15
|
||||
Mcu.Pin24=PD12
|
||||
Mcu.Pin25=PD13
|
||||
Mcu.Pin26=PC6
|
||||
Mcu.Pin27=PC7
|
||||
Mcu.Pin28=PC8
|
||||
Mcu.Pin29=PC9
|
||||
Mcu.Pin3=PC1
|
||||
Mcu.Pin30=PA13
|
||||
Mcu.Pin31=PA14
|
||||
Mcu.Pin32=PA15
|
||||
Mcu.Pin33=PC10
|
||||
Mcu.Pin34=PC11
|
||||
Mcu.Pin35=PC12
|
||||
Mcu.Pin36=PD2
|
||||
Mcu.Pin37=PB3
|
||||
Mcu.Pin38=PB4
|
||||
Mcu.Pin39=PB5
|
||||
Mcu.Pin30=PA9
|
||||
Mcu.Pin31=PA11
|
||||
Mcu.Pin32=PA12
|
||||
Mcu.Pin33=PA13
|
||||
Mcu.Pin34=PA14
|
||||
Mcu.Pin35=PA15
|
||||
Mcu.Pin36=PC10
|
||||
Mcu.Pin37=PC11
|
||||
Mcu.Pin38=PC12
|
||||
Mcu.Pin39=PD2
|
||||
Mcu.Pin4=PC2
|
||||
Mcu.Pin40=PB6
|
||||
Mcu.Pin41=PB7
|
||||
Mcu.Pin42=PB8
|
||||
Mcu.Pin43=VP_SYS_VS_Systick
|
||||
Mcu.Pin44=VP_TIM10_VS_ClockSourceINT
|
||||
Mcu.Pin40=PB3
|
||||
Mcu.Pin41=PB4
|
||||
Mcu.Pin42=PB5
|
||||
Mcu.Pin43=PB6
|
||||
Mcu.Pin44=PB7
|
||||
Mcu.Pin45=PB8
|
||||
Mcu.Pin46=VP_SYS_VS_Systick
|
||||
Mcu.Pin47=VP_TIM10_VS_ClockSourceINT
|
||||
Mcu.Pin5=PC3
|
||||
Mcu.Pin6=PA0-WKUP
|
||||
Mcu.Pin7=PA1
|
||||
Mcu.Pin8=PA2
|
||||
Mcu.Pin9=PA5
|
||||
Mcu.PinsNb=45
|
||||
Mcu.PinsNb=48
|
||||
Mcu.ThirdPartyNb=0
|
||||
Mcu.UserConstants=
|
||||
Mcu.UserName=STM32F407VGTx
|
||||
@@ -129,6 +133,15 @@ PB0.Signal=ADCx_IN8
|
||||
PB1.GPIOParameters=GPIO_Label
|
||||
PB1.GPIO_Label=M0_CUR_B
|
||||
PB1.Signal=ADCx_IN9
|
||||
PB13.Locked=true
|
||||
PB13.Mode=Full_Duplex_Master
|
||||
PB13.Signal=SPI2_SCK
|
||||
PB14.Locked=true
|
||||
PB14.Mode=Full_Duplex_Master
|
||||
PB14.Signal=SPI2_MISO
|
||||
PB15.Locked=true
|
||||
PB15.Mode=Full_Duplex_Master
|
||||
PB15.Signal=SPI2_MOSI
|
||||
PB2.GPIOParameters=GPIO_Label
|
||||
PB2.GPIO_Label=BOOT1
|
||||
PB2.Locked=true
|
||||
@@ -223,6 +236,8 @@ ProjectManager.RegisterCallBack=
|
||||
ProjectManager.StackSize=0x400
|
||||
ProjectManager.TargetToolchain=STM32CubeIDE
|
||||
ProjectManager.ToolChainLocation=
|
||||
ProjectManager.UAScriptAfterPath=
|
||||
ProjectManager.UAScriptBeforePath=
|
||||
ProjectManager.UnderRoot=true
|
||||
ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_TIM1_Init-TIM1-false-HAL-true,4-MX_TIM2_Init-TIM2-false-HAL-true,5-MX_TIM3_Init-TIM3-false-HAL-true,6-MX_TIM4_Init-TIM4-false-HAL-true,7-MX_TIM5_Init-TIM5-false-HAL-true,8-MX_TIM8_Init-TIM8-false-HAL-true,9-MX_USB_OTG_FS_PCD_Init-USB_OTG_FS-false-HAL-true,10-MX_I2C1_Init-I2C1-false-HAL-true,11-MX_SPI1_Init-SPI1-false-HAL-true,12-MX_UART4_Init-UART4-false-HAL-true,13-MX_UART5_Init-UART5-false-HAL-true,14-MX_ADC1_Init-ADC1-false-HAL-true,15-MX_TIM10_Init-TIM10-false-HAL-true
|
||||
RCC.48MHZClocksFreq_Value=48000000
|
||||
@@ -315,6 +330,12 @@ SPI1.Direction=SPI_DIRECTION_2LINES
|
||||
SPI1.IPParameters=VirtualType,Mode,Direction,CalculateBaudRate
|
||||
SPI1.Mode=SPI_MODE_MASTER
|
||||
SPI1.VirtualType=VM_MASTER
|
||||
SPI2.BaudRatePrescaler=SPI_BAUDRATEPRESCALER_8
|
||||
SPI2.CalculateBaudRate=5.25 MBits/s
|
||||
SPI2.Direction=SPI_DIRECTION_2LINES
|
||||
SPI2.IPParameters=VirtualType,Mode,Direction,CalculateBaudRate,BaudRatePrescaler
|
||||
SPI2.Mode=SPI_MODE_MASTER
|
||||
SPI2.VirtualType=VM_MASTER
|
||||
TIM1.Channel-PWM\ Generation1\ CH1=TIM_CHANNEL_1
|
||||
TIM1.Channel-PWM\ Generation2\ CH2=TIM_CHANNEL_2
|
||||
TIM1.Channel-PWM\ Generation3\ CH3=TIM_CHANNEL_3
|
||||
|
||||
@@ -58,6 +58,7 @@ void SysTick_Handler(void);
|
||||
void DMA1_Channel4_IRQHandler(void);
|
||||
void DMA1_Channel5_IRQHandler(void);
|
||||
void DMA1_Channel7_IRQHandler(void);
|
||||
void EXTI9_5_IRQHandler(void);
|
||||
void TIM4_IRQHandler(void);
|
||||
void USART1_IRQHandler(void);
|
||||
void USART2_IRQHandler(void);
|
||||
|
||||
@@ -7,6 +7,8 @@
|
||||
|
||||
#include "Encoder.hpp"
|
||||
|
||||
#define pi 3.1415926535
|
||||
|
||||
Encoder::Encoder(__IO uint32_t* cnt, __IO uint32_t* arr, uint32_t countsPerRevolution) :
|
||||
cnt(cnt), arr(arr), countsPerRevolution(countsPerRevolution)
|
||||
{
|
||||
@@ -17,6 +19,13 @@ Encoder::~Encoder() {
|
||||
|
||||
}
|
||||
|
||||
void Encoder::callback(GPIO_PinState _direction){
|
||||
lastTick = currentTick;
|
||||
currentTick = DWT->CYCCNT;
|
||||
direction = _direction;
|
||||
updated = true;
|
||||
}
|
||||
|
||||
uint32_t Encoder::getCount(){
|
||||
lastCount = *cnt;
|
||||
return lastCount;
|
||||
@@ -28,6 +37,20 @@ int16_t Encoder::getDelta(){
|
||||
return delta;
|
||||
}
|
||||
|
||||
float Encoder::getOmega(){
|
||||
if(!updated){
|
||||
return 0;
|
||||
}
|
||||
updated = false;
|
||||
float deltaT = (currentTick - lastTick)/(float)HAL_RCC_GetHCLKFreq();
|
||||
if(direction){
|
||||
return -8*pi/(countsPerRevolution*deltaT); // rad/s
|
||||
}else{
|
||||
return 8*pi/(countsPerRevolution*deltaT); // rad/s
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
uint32_t Encoder::getCountsPerRevolution(){
|
||||
return countsPerRevolution;
|
||||
}
|
||||
|
||||
@@ -14,14 +14,20 @@ class Encoder {
|
||||
public:
|
||||
Encoder(__IO uint32_t* cnt, __IO uint32_t* arr, uint32_t countsPerRevolution);
|
||||
virtual ~Encoder();
|
||||
void callback(GPIO_PinState _direction);
|
||||
uint32_t getCount();
|
||||
int16_t getDelta();
|
||||
float getOmega();
|
||||
uint32_t getCountsPerRevolution();
|
||||
private:
|
||||
__IO uint32_t* cnt;
|
||||
__IO uint32_t* arr;
|
||||
uint32_t lastCount = 0;
|
||||
uint32_t countsPerRevolution = 0;
|
||||
uint32_t lastTick = 0;
|
||||
uint32_t currentTick = 0;
|
||||
bool direction;
|
||||
bool updated;
|
||||
};
|
||||
|
||||
#endif /* SRC_COMPONENTS_ENCODER_HPP_ */
|
||||
|
||||
@@ -21,18 +21,18 @@ void Motor::setEncoder(Encoder* _encoder){
|
||||
encoder = _encoder;
|
||||
}
|
||||
|
||||
float Motor::getCurrentRevPerTick(){
|
||||
float Motor::getCurrentRadPerSecond(){
|
||||
#ifdef CONTROL_DISABLED
|
||||
return (float)encoder->getDelta()/encoder->getCountsPerRevolution();
|
||||
return encoder->getOmega();
|
||||
#else
|
||||
return currentRevPerTick;
|
||||
return currentRadPerSecond;
|
||||
#endif
|
||||
}
|
||||
|
||||
void Motor::pid(float inputRevPerTick){
|
||||
currentRevPerTick = (float)encoder->getDelta()/encoder->getCountsPerRevolution();
|
||||
void Motor::pid(float inputRadPerSecond){
|
||||
currentRadPerSecond = encoder->getOmega();
|
||||
lastError = error;
|
||||
error = inputRevPerTick - currentRevPerTick;
|
||||
error = inputRadPerSecond - currentRadPerSecond;
|
||||
derror = error - lastError;
|
||||
ierror += error;
|
||||
if(ki*ierror > 1){ // Anti-windup (verificar possibilidades)
|
||||
|
||||
@@ -17,7 +17,7 @@ public:
|
||||
virtual ~Motor();
|
||||
virtual void setPower(float power){}
|
||||
void setEncoder(Encoder* _encoder);
|
||||
float getCurrentRevPerTick();
|
||||
float getCurrentRadPerSecond();
|
||||
void pid(float inputRevPerTick);
|
||||
float kp;
|
||||
float ki;
|
||||
@@ -28,7 +28,7 @@ private:
|
||||
float ierror = 0;
|
||||
float derror = 0;
|
||||
float lastError = 0;
|
||||
float currentRevPerTick = 0;
|
||||
float currentRadPerSecond = 0;
|
||||
};
|
||||
|
||||
#endif /* SRC_COMPONENTS_MOTOR_HPP_ */
|
||||
|
||||
@@ -10,12 +10,10 @@
|
||||
#include "SerialDebug.hpp"
|
||||
#include "Definitions.hpp"
|
||||
|
||||
#define CONVERSION (reductionRatio/(ticksPerSecond*2*3.14159*wheelRadius))
|
||||
#define CONVERSION (reductionRatio/wheelRadius)
|
||||
|
||||
extern UART_HandleTypeDef huart1;
|
||||
extern TIM_HandleTypeDef htim1;
|
||||
extern TIM_HandleTypeDef htim2;
|
||||
extern TIM_HandleTypeDef htim3;
|
||||
extern TIM_HandleTypeDef htim4;
|
||||
extern I2C_HandleTypeDef hi2c1;
|
||||
extern SerialDebug debug;
|
||||
@@ -50,8 +48,8 @@ void Robot::controlCallback(){
|
||||
motor1.pid(convertedSpeed1);
|
||||
#endif
|
||||
sprintf((char*)buf, ">Speed:%+0.6e,%+0.6e,%+0.6e,%+0.6e",
|
||||
motor0.getCurrentRevPerTick()/CONVERSION,
|
||||
motor1.getCurrentRevPerTick()/CONVERSION,
|
||||
motor0.getCurrentRadPerSecond()/CONVERSION,
|
||||
motor1.getCurrentRadPerSecond()/CONVERSION,
|
||||
desiredSpeed0,
|
||||
desiredSpeed1);
|
||||
HAL_UART_Transmit_DMA(&huart1, buf, 64);
|
||||
@@ -86,10 +84,6 @@ void Robot::init(){
|
||||
motor1.ki = 22.3758/(ticksPerSecond*CONVERSION);
|
||||
motor1.kd = 0*ticksPerSecond/CONVERSION;
|
||||
debug.info("Init timers begin");
|
||||
//HAL_TIM_Encoder_Start(&htim1, TIM_CHANNEL_1);
|
||||
HAL_TIM_Encoder_Start(&htim1, TIM_CHANNEL_ALL);
|
||||
//HAL_TIM_Encoder_Start(&htim3, TIM_CHANNEL_1);
|
||||
HAL_TIM_Encoder_Start(&htim3, TIM_CHANNEL_ALL);
|
||||
HAL_TIM_Base_Start(&htim2);
|
||||
HAL_TIM_PWM_Start(&htim2, TIM_CHANNEL_1);
|
||||
HAL_TIM_PWM_Start(&htim2, TIM_CHANNEL_2);
|
||||
|
||||
@@ -20,6 +20,10 @@ public:
|
||||
void uartCallback();
|
||||
void controlCallback();
|
||||
void init();
|
||||
Encoder encoder0 = Encoder(&(TIM1->CNT), &(TIM1->ARR), 52);
|
||||
Encoder encoder1 = Encoder(&(TIM3->CNT), &(TIM3->ARR), 52);
|
||||
BTS7960B motor0 = BTS7960B(&(TIM2->CCR1), &(TIM2->CCR2), &(TIM2->ARR), &(TIM2->ARR), GPIOB, GPIO_PIN_4, GPIOB, GPIO_PIN_5);
|
||||
BTS7960B motor1 = BTS7960B(&(TIM2->CCR3), &(TIM2->CCR4), &(TIM2->ARR), &(TIM2->ARR), GPIOB, GPIO_PIN_0, GPIOB, GPIO_PIN_1);
|
||||
private:
|
||||
void print_roll_pitch_yaw();
|
||||
const float reductionRatio = 30;
|
||||
@@ -27,10 +31,6 @@ private:
|
||||
const float ticksPerSecond = 100;
|
||||
uint8_t rxBuffer[1500] = "0.000000,0.000000";
|
||||
uint8_t txBuffer[1500];
|
||||
Encoder encoder0 = Encoder(&(TIM1->CNT), &(TIM1->ARR), 52);
|
||||
Encoder encoder1 = Encoder(&(TIM3->CNT), &(TIM3->ARR), 52);
|
||||
BTS7960B motor0 = BTS7960B(&(TIM2->CCR1), &(TIM2->CCR2), &(TIM2->ARR), &(TIM2->ARR), GPIOB, GPIO_PIN_4, GPIOB, GPIO_PIN_5);
|
||||
BTS7960B motor1 = BTS7960B(&(TIM2->CCR3), &(TIM2->CCR4), &(TIM2->ARR), &(TIM2->ARR), GPIOB, GPIO_PIN_0, GPIOB, GPIO_PIN_1);
|
||||
MPU9250 imu0;
|
||||
};
|
||||
|
||||
|
||||
@@ -29,7 +29,16 @@ void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart) {
|
||||
}
|
||||
|
||||
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) {
|
||||
|
||||
switch(GPIO_Pin){
|
||||
case GPIO_PIN_8:
|
||||
//encoder0
|
||||
robot.encoder0.callback(HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_9));
|
||||
break;
|
||||
case GPIO_PIN_6:
|
||||
//encoder1
|
||||
robot.encoder1.callback(HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_7));
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void HAL_UARTEx_RxEventCallback(UART_HandleTypeDef *huart, uint16_t Size){
|
||||
|
||||
@@ -43,9 +43,7 @@ ADC_HandleTypeDef hadc1;
|
||||
|
||||
I2C_HandleTypeDef hi2c1;
|
||||
|
||||
TIM_HandleTypeDef htim1;
|
||||
TIM_HandleTypeDef htim2;
|
||||
TIM_HandleTypeDef htim3;
|
||||
TIM_HandleTypeDef htim4;
|
||||
|
||||
UART_HandleTypeDef huart1;
|
||||
@@ -68,8 +66,6 @@ static void MX_USART1_UART_Init(void);
|
||||
static void MX_TIM4_Init(void);
|
||||
static void MX_TIM2_Init(void);
|
||||
static void MX_USB_PCD_Init(void);
|
||||
static void MX_TIM1_Init(void);
|
||||
static void MX_TIM3_Init(void);
|
||||
static void MX_USART2_UART_Init(void);
|
||||
static void MX_ADC1_Init(void);
|
||||
static void MX_I2C1_Init(void);
|
||||
@@ -115,8 +111,6 @@ int main(void)
|
||||
MX_TIM4_Init();
|
||||
MX_TIM2_Init();
|
||||
MX_USB_PCD_Init();
|
||||
MX_TIM1_Init();
|
||||
MX_TIM3_Init();
|
||||
MX_USART2_UART_Init();
|
||||
MX_ADC1_Init();
|
||||
MX_I2C1_Init();
|
||||
@@ -287,56 +281,6 @@ static void MX_I2C1_Init(void)
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief TIM1 Initialization Function
|
||||
* @param None
|
||||
* @retval None
|
||||
*/
|
||||
static void MX_TIM1_Init(void)
|
||||
{
|
||||
|
||||
/* USER CODE BEGIN TIM1_Init 0 */
|
||||
|
||||
/* USER CODE END TIM1_Init 0 */
|
||||
|
||||
TIM_Encoder_InitTypeDef sConfig = {0};
|
||||
TIM_MasterConfigTypeDef sMasterConfig = {0};
|
||||
|
||||
/* USER CODE BEGIN TIM1_Init 1 */
|
||||
|
||||
/* USER CODE END TIM1_Init 1 */
|
||||
htim1.Instance = TIM1;
|
||||
htim1.Init.Prescaler = 0;
|
||||
htim1.Init.CounterMode = TIM_COUNTERMODE_UP;
|
||||
htim1.Init.Period = 65535;
|
||||
htim1.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
|
||||
htim1.Init.RepetitionCounter = 0;
|
||||
htim1.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
|
||||
sConfig.EncoderMode = TIM_ENCODERMODE_TI12;
|
||||
sConfig.IC1Polarity = TIM_ICPOLARITY_RISING;
|
||||
sConfig.IC1Selection = TIM_ICSELECTION_DIRECTTI;
|
||||
sConfig.IC1Prescaler = TIM_ICPSC_DIV1;
|
||||
sConfig.IC1Filter = 0;
|
||||
sConfig.IC2Polarity = TIM_ICPOLARITY_RISING;
|
||||
sConfig.IC2Selection = TIM_ICSELECTION_DIRECTTI;
|
||||
sConfig.IC2Prescaler = TIM_ICPSC_DIV1;
|
||||
sConfig.IC2Filter = 0;
|
||||
if (HAL_TIM_Encoder_Init(&htim1, &sConfig) != HAL_OK)
|
||||
{
|
||||
Error_Handler();
|
||||
}
|
||||
sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
|
||||
sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
|
||||
if (HAL_TIMEx_MasterConfigSynchronization(&htim1, &sMasterConfig) != HAL_OK)
|
||||
{
|
||||
Error_Handler();
|
||||
}
|
||||
/* USER CODE BEGIN TIM1_Init 2 */
|
||||
|
||||
/* USER CODE END TIM1_Init 2 */
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief TIM2 Initialization Function
|
||||
* @param None
|
||||
@@ -408,55 +352,6 @@ static void MX_TIM2_Init(void)
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief TIM3 Initialization Function
|
||||
* @param None
|
||||
* @retval None
|
||||
*/
|
||||
static void MX_TIM3_Init(void)
|
||||
{
|
||||
|
||||
/* USER CODE BEGIN TIM3_Init 0 */
|
||||
|
||||
/* USER CODE END TIM3_Init 0 */
|
||||
|
||||
TIM_Encoder_InitTypeDef sConfig = {0};
|
||||
TIM_MasterConfigTypeDef sMasterConfig = {0};
|
||||
|
||||
/* USER CODE BEGIN TIM3_Init 1 */
|
||||
|
||||
/* USER CODE END TIM3_Init 1 */
|
||||
htim3.Instance = TIM3;
|
||||
htim3.Init.Prescaler = 0;
|
||||
htim3.Init.CounterMode = TIM_COUNTERMODE_UP;
|
||||
htim3.Init.Period = 65535;
|
||||
htim3.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
|
||||
htim3.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
|
||||
sConfig.EncoderMode = TIM_ENCODERMODE_TI12;
|
||||
sConfig.IC1Polarity = TIM_ICPOLARITY_RISING;
|
||||
sConfig.IC1Selection = TIM_ICSELECTION_DIRECTTI;
|
||||
sConfig.IC1Prescaler = TIM_ICPSC_DIV1;
|
||||
sConfig.IC1Filter = 0;
|
||||
sConfig.IC2Polarity = TIM_ICPOLARITY_RISING;
|
||||
sConfig.IC2Selection = TIM_ICSELECTION_DIRECTTI;
|
||||
sConfig.IC2Prescaler = TIM_ICPSC_DIV1;
|
||||
sConfig.IC2Filter = 0;
|
||||
if (HAL_TIM_Encoder_Init(&htim3, &sConfig) != HAL_OK)
|
||||
{
|
||||
Error_Handler();
|
||||
}
|
||||
sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
|
||||
sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
|
||||
if (HAL_TIMEx_MasterConfigSynchronization(&htim3, &sMasterConfig) != HAL_OK)
|
||||
{
|
||||
Error_Handler();
|
||||
}
|
||||
/* USER CODE BEGIN TIM3_Init 2 */
|
||||
|
||||
/* USER CODE END TIM3_Init 2 */
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief TIM4 Initialization Function
|
||||
* @param None
|
||||
@@ -518,7 +413,7 @@ static void MX_USART1_UART_Init(void)
|
||||
|
||||
/* USER CODE END USART1_Init 1 */
|
||||
huart1.Instance = USART1;
|
||||
huart1.Init.BaudRate = 921600;
|
||||
huart1.Init.BaudRate = 2000000;
|
||||
huart1.Init.WordLength = UART_WORDLENGTH_8B;
|
||||
huart1.Init.StopBits = UART_STOPBITS_1;
|
||||
huart1.Init.Parity = UART_PARITY_NONE;
|
||||
@@ -651,6 +546,18 @@ static void MX_GPIO_Init(void)
|
||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
||||
HAL_GPIO_Init(LED_BUILTIN_GPIO_Port, &GPIO_InitStruct);
|
||||
|
||||
/*Configure GPIO pins : PA6 PA8 IMU_INT_Pin */
|
||||
GPIO_InitStruct.Pin = GPIO_PIN_6|GPIO_PIN_8|IMU_INT_Pin;
|
||||
GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING;
|
||||
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||||
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
|
||||
|
||||
/*Configure GPIO pins : PA7 PA9 */
|
||||
GPIO_InitStruct.Pin = GPIO_PIN_7|GPIO_PIN_9;
|
||||
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
|
||||
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||||
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
|
||||
|
||||
/*Configure GPIO pins : PB0 PB1 PB4 PB5 */
|
||||
GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_4|GPIO_PIN_5;
|
||||
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
|
||||
@@ -664,11 +571,9 @@ static void MX_GPIO_Init(void)
|
||||
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||||
HAL_GPIO_Init(BOOT1_GPIO_Port, &GPIO_InitStruct);
|
||||
|
||||
/*Configure GPIO pin : IMU_INT_Pin */
|
||||
GPIO_InitStruct.Pin = IMU_INT_Pin;
|
||||
GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING;
|
||||
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||||
HAL_GPIO_Init(IMU_INT_GPIO_Port, &GPIO_InitStruct);
|
||||
/* EXTI interrupt init*/
|
||||
HAL_NVIC_SetPriority(EXTI9_5_IRQn, 0, 0);
|
||||
HAL_NVIC_EnableIRQ(EXTI9_5_IRQn);
|
||||
|
||||
/* USER CODE BEGIN MX_GPIO_Init_2 */
|
||||
/* USER CODE END MX_GPIO_Init_2 */
|
||||
|
||||
@@ -221,62 +221,6 @@ void HAL_I2C_MspDeInit(I2C_HandleTypeDef* hi2c)
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief TIM_Encoder MSP Initialization
|
||||
* This function configures the hardware resources used in this example
|
||||
* @param htim_encoder: TIM_Encoder handle pointer
|
||||
* @retval None
|
||||
*/
|
||||
void HAL_TIM_Encoder_MspInit(TIM_HandleTypeDef* htim_encoder)
|
||||
{
|
||||
GPIO_InitTypeDef GPIO_InitStruct = {0};
|
||||
if(htim_encoder->Instance==TIM1)
|
||||
{
|
||||
/* USER CODE BEGIN TIM1_MspInit 0 */
|
||||
|
||||
/* USER CODE END TIM1_MspInit 0 */
|
||||
/* Peripheral clock enable */
|
||||
__HAL_RCC_TIM1_CLK_ENABLE();
|
||||
|
||||
__HAL_RCC_GPIOA_CLK_ENABLE();
|
||||
/**TIM1 GPIO Configuration
|
||||
PA8 ------> TIM1_CH1
|
||||
PA9 ------> TIM1_CH2
|
||||
*/
|
||||
GPIO_InitStruct.Pin = GPIO_PIN_8|GPIO_PIN_9;
|
||||
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
|
||||
GPIO_InitStruct.Pull = GPIO_PULLUP;
|
||||
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
|
||||
|
||||
/* USER CODE BEGIN TIM1_MspInit 1 */
|
||||
|
||||
/* USER CODE END TIM1_MspInit 1 */
|
||||
}
|
||||
else if(htim_encoder->Instance==TIM3)
|
||||
{
|
||||
/* USER CODE BEGIN TIM3_MspInit 0 */
|
||||
|
||||
/* USER CODE END TIM3_MspInit 0 */
|
||||
/* Peripheral clock enable */
|
||||
__HAL_RCC_TIM3_CLK_ENABLE();
|
||||
|
||||
__HAL_RCC_GPIOA_CLK_ENABLE();
|
||||
/**TIM3 GPIO Configuration
|
||||
PA6 ------> TIM3_CH1
|
||||
PA7 ------> TIM3_CH2
|
||||
*/
|
||||
GPIO_InitStruct.Pin = GPIO_PIN_6|GPIO_PIN_7;
|
||||
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
|
||||
GPIO_InitStruct.Pull = GPIO_PULLUP;
|
||||
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
|
||||
|
||||
/* USER CODE BEGIN TIM3_MspInit 1 */
|
||||
|
||||
/* USER CODE END TIM3_MspInit 1 */
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief TIM_Base MSP Initialization
|
||||
* This function configures the hardware resources used in this example
|
||||
@@ -348,53 +292,6 @@ void HAL_TIM_MspPostInit(TIM_HandleTypeDef* htim)
|
||||
}
|
||||
|
||||
}
|
||||
/**
|
||||
* @brief TIM_Encoder MSP De-Initialization
|
||||
* This function freeze the hardware resources used in this example
|
||||
* @param htim_encoder: TIM_Encoder handle pointer
|
||||
* @retval None
|
||||
*/
|
||||
void HAL_TIM_Encoder_MspDeInit(TIM_HandleTypeDef* htim_encoder)
|
||||
{
|
||||
if(htim_encoder->Instance==TIM1)
|
||||
{
|
||||
/* USER CODE BEGIN TIM1_MspDeInit 0 */
|
||||
|
||||
/* USER CODE END TIM1_MspDeInit 0 */
|
||||
/* Peripheral clock disable */
|
||||
__HAL_RCC_TIM1_CLK_DISABLE();
|
||||
|
||||
/**TIM1 GPIO Configuration
|
||||
PA8 ------> TIM1_CH1
|
||||
PA9 ------> TIM1_CH2
|
||||
*/
|
||||
HAL_GPIO_DeInit(GPIOA, GPIO_PIN_8|GPIO_PIN_9);
|
||||
|
||||
/* USER CODE BEGIN TIM1_MspDeInit 1 */
|
||||
|
||||
/* USER CODE END TIM1_MspDeInit 1 */
|
||||
}
|
||||
else if(htim_encoder->Instance==TIM3)
|
||||
{
|
||||
/* USER CODE BEGIN TIM3_MspDeInit 0 */
|
||||
|
||||
/* USER CODE END TIM3_MspDeInit 0 */
|
||||
/* Peripheral clock disable */
|
||||
__HAL_RCC_TIM3_CLK_DISABLE();
|
||||
|
||||
/**TIM3 GPIO Configuration
|
||||
PA6 ------> TIM3_CH1
|
||||
PA7 ------> TIM3_CH2
|
||||
*/
|
||||
HAL_GPIO_DeInit(GPIOA, GPIO_PIN_6|GPIO_PIN_7);
|
||||
|
||||
/* USER CODE BEGIN TIM3_MspDeInit 1 */
|
||||
|
||||
/* USER CODE END TIM3_MspDeInit 1 */
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief TIM_Base MSP De-Initialization
|
||||
* This function freeze the hardware resources used in this example
|
||||
|
||||
@@ -245,6 +245,21 @@ void DMA1_Channel7_IRQHandler(void)
|
||||
/* USER CODE END DMA1_Channel7_IRQn 1 */
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief This function handles EXTI line[9:5] interrupts.
|
||||
*/
|
||||
void EXTI9_5_IRQHandler(void)
|
||||
{
|
||||
/* USER CODE BEGIN EXTI9_5_IRQn 0 */
|
||||
|
||||
/* USER CODE END EXTI9_5_IRQn 0 */
|
||||
HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_6);
|
||||
HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_8);
|
||||
/* USER CODE BEGIN EXTI9_5_IRQn 1 */
|
||||
|
||||
/* USER CODE END EXTI9_5_IRQn 1 */
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief This function handles TIM4 global interrupt.
|
||||
*/
|
||||
|
||||
@@ -60,18 +60,16 @@ Mcu.CPN=STM32F103C8T6
|
||||
Mcu.Family=STM32F1
|
||||
Mcu.IP0=ADC1
|
||||
Mcu.IP1=DMA
|
||||
Mcu.IP10=USART1
|
||||
Mcu.IP11=USART2
|
||||
Mcu.IP12=USB
|
||||
Mcu.IP10=USB
|
||||
Mcu.IP2=I2C1
|
||||
Mcu.IP3=NVIC
|
||||
Mcu.IP4=RCC
|
||||
Mcu.IP5=SYS
|
||||
Mcu.IP6=TIM1
|
||||
Mcu.IP7=TIM2
|
||||
Mcu.IP8=TIM3
|
||||
Mcu.IP9=TIM4
|
||||
Mcu.IPNb=13
|
||||
Mcu.IP6=TIM2
|
||||
Mcu.IP7=TIM4
|
||||
Mcu.IP8=USART1
|
||||
Mcu.IP9=USART2
|
||||
Mcu.IPNb=11
|
||||
Mcu.Name=STM32F103C(8-B)Tx
|
||||
Mcu.Package=LQFP48
|
||||
Mcu.Pin0=PC13-TAMPER-RTC
|
||||
@@ -121,6 +119,7 @@ NVIC.DMA1_Channel4_IRQn=true\:0\:0\:false\:false\:true\:false\:true\:true
|
||||
NVIC.DMA1_Channel5_IRQn=true\:0\:0\:false\:false\:true\:false\:true\:true
|
||||
NVIC.DMA1_Channel7_IRQn=true\:0\:0\:false\:false\:true\:false\:true\:true
|
||||
NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
|
||||
NVIC.EXTI9_5_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true
|
||||
NVIC.ForceEnableDMAVector=true
|
||||
NVIC.HardFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
|
||||
NVIC.MemoryManagement_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
|
||||
@@ -155,18 +154,18 @@ PA3.Mode=Asynchronous
|
||||
PA3.Signal=USART2_RX
|
||||
PA4.Signal=ADCx_IN4
|
||||
PA5.Signal=ADCx_IN5
|
||||
PA6.GPIOParameters=GPIO_PuPd
|
||||
PA6.GPIO_PuPd=GPIO_PULLUP
|
||||
PA6.Signal=S_TIM3_CH1
|
||||
PA7.GPIOParameters=GPIO_PuPd
|
||||
PA7.GPIO_PuPd=GPIO_PULLUP
|
||||
PA7.Signal=S_TIM3_CH2
|
||||
PA8.GPIOParameters=GPIO_PuPd
|
||||
PA8.GPIO_PuPd=GPIO_PULLUP
|
||||
PA8.Signal=S_TIM1_CH1
|
||||
PA9.GPIOParameters=GPIO_PuPd
|
||||
PA9.GPIO_PuPd=GPIO_PULLUP
|
||||
PA9.Signal=S_TIM1_CH2
|
||||
PA6.GPIOParameters=GPIO_ModeDefaultEXTI
|
||||
PA6.GPIO_ModeDefaultEXTI=GPIO_MODE_IT_RISING
|
||||
PA6.Locked=true
|
||||
PA6.Signal=GPXTI6
|
||||
PA7.Locked=true
|
||||
PA7.Signal=GPIO_Input
|
||||
PA8.GPIOParameters=GPIO_ModeDefaultEXTI
|
||||
PA8.GPIO_ModeDefaultEXTI=GPIO_MODE_IT_RISING
|
||||
PA8.Locked=true
|
||||
PA8.Signal=GPXTI8
|
||||
PA9.Locked=true
|
||||
PA9.Signal=GPIO_Input
|
||||
PB0.Locked=true
|
||||
PB0.Signal=GPIO_Output
|
||||
PB1.Locked=true
|
||||
@@ -237,7 +236,7 @@ ProjectManager.ToolChainLocation=
|
||||
ProjectManager.UAScriptAfterPath=
|
||||
ProjectManager.UAScriptBeforePath=
|
||||
ProjectManager.UnderRoot=true
|
||||
ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_DMA_Init-DMA-false-HAL-true,4-MX_USART1_UART_Init-USART1-false-HAL-true,5-MX_TIM4_Init-TIM4-false-HAL-true,6-MX_TIM2_Init-TIM2-false-HAL-true,7-MX_USB_PCD_Init-USB-false-HAL-true,8-MX_TIM1_Init-TIM1-false-HAL-true,9-MX_TIM3_Init-TIM3-false-HAL-true,10-MX_USART2_UART_Init-USART2-false-HAL-true,11-MX_ADC1_Init-ADC1-false-HAL-true,12-MX_I2C1_Init-I2C1-false-HAL-true
|
||||
ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_DMA_Init-DMA-false-HAL-true,4-MX_USART1_UART_Init-USART1-false-HAL-true,5-MX_TIM4_Init-TIM4-false-HAL-true,6-MX_TIM2_Init-TIM2-false-HAL-true,7-MX_USB_PCD_Init-USB-false-HAL-true,8-MX_USART2_UART_Init-USART2-false-HAL-true,9-MX_ADC1_Init-ADC1-false-HAL-true,10-MX_I2C1_Init-I2C1-false-HAL-true
|
||||
RCC.ADCFreqValue=12000000
|
||||
RCC.ADCPresc=RCC_ADCPCLK2_DIV6
|
||||
RCC.AHBFreq_Value=72000000
|
||||
@@ -271,10 +270,10 @@ SH.ADCx_IN5.0=ADC1_IN5,IN5
|
||||
SH.ADCx_IN5.ConfNb=1
|
||||
SH.GPXTI10.0=GPIO_EXTI10
|
||||
SH.GPXTI10.ConfNb=1
|
||||
SH.S_TIM1_CH1.0=TIM1_CH1,Encoder_Interface
|
||||
SH.S_TIM1_CH1.ConfNb=1
|
||||
SH.S_TIM1_CH2.0=TIM1_CH2,Encoder_Interface
|
||||
SH.S_TIM1_CH2.ConfNb=1
|
||||
SH.GPXTI6.0=GPIO_EXTI6
|
||||
SH.GPXTI6.ConfNb=1
|
||||
SH.GPXTI8.0=GPIO_EXTI8
|
||||
SH.GPXTI8.ConfNb=1
|
||||
SH.S_TIM2_CH1_ETR.0=TIM2_CH1,PWM Generation1 CH1
|
||||
SH.S_TIM2_CH1_ETR.ConfNb=1
|
||||
SH.S_TIM2_CH2.0=TIM2_CH2,PWM Generation2 CH2
|
||||
@@ -283,12 +282,6 @@ SH.S_TIM2_CH3.0=TIM2_CH3,PWM Generation3 CH3
|
||||
SH.S_TIM2_CH3.ConfNb=1
|
||||
SH.S_TIM2_CH4.0=TIM2_CH4,PWM Generation4 CH4
|
||||
SH.S_TIM2_CH4.ConfNb=1
|
||||
SH.S_TIM3_CH1.0=TIM3_CH1,Encoder_Interface
|
||||
SH.S_TIM3_CH1.ConfNb=1
|
||||
SH.S_TIM3_CH2.0=TIM3_CH2,Encoder_Interface
|
||||
SH.S_TIM3_CH2.ConfNb=1
|
||||
TIM1.EncoderMode=TIM_ENCODERMODE_TI12
|
||||
TIM1.IPParameters=EncoderMode
|
||||
TIM2.AutoReloadPreload=TIM_AUTORELOAD_PRELOAD_ENABLE
|
||||
TIM2.Channel-PWM\ Generation1\ CH1=TIM_CHANNEL_1
|
||||
TIM2.Channel-PWM\ Generation2\ CH2=TIM_CHANNEL_2
|
||||
@@ -297,12 +290,10 @@ TIM2.Channel-PWM\ Generation4\ CH4=TIM_CHANNEL_4
|
||||
TIM2.IPParameters=Channel-PWM Generation1 CH1,Channel-PWM Generation2 CH2,Channel-PWM Generation3 CH3,Channel-PWM Generation4 CH4,Period,Prescaler,AutoReloadPreload
|
||||
TIM2.Period=2047
|
||||
TIM2.Prescaler=0
|
||||
TIM3.EncoderMode=TIM_ENCODERMODE_TI12
|
||||
TIM3.IPParameters=EncoderMode
|
||||
TIM4.IPParameters=Prescaler,Period
|
||||
TIM4.Period=9999
|
||||
TIM4.Prescaler=71
|
||||
USART1.BaudRate=921600
|
||||
USART1.BaudRate=2000000
|
||||
USART1.IPParameters=VirtualMode,BaudRate
|
||||
USART1.VirtualMode=VM_ASYNC
|
||||
USART2.BaudRate=921600
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -143,8 +143,8 @@ AnnotateScope=All
|
||||
AnnotateOrder=2
|
||||
DoLibraryUpdate=1
|
||||
DoDatabaseUpdate=1
|
||||
ClassGenCCAutoEnabled=0
|
||||
ClassGenCCAutoRoomEnabled=0
|
||||
ClassGenCCAutoEnabled=1
|
||||
ClassGenCCAutoRoomEnabled=1
|
||||
ClassGenNCAutoScope=None
|
||||
DItemRevisionGUID=
|
||||
GenerateClassCluster=0
|
||||
@@ -195,7 +195,7 @@ AnnotateOrder=5
|
||||
DoLibraryUpdate=1
|
||||
DoDatabaseUpdate=1
|
||||
ClassGenCCAutoEnabled=1
|
||||
ClassGenCCAutoRoomEnabled=1
|
||||
ClassGenCCAutoRoomEnabled=0
|
||||
ClassGenNCAutoScope=None
|
||||
DItemRevisionGUID=
|
||||
GenerateClassCluster=0
|
||||
@@ -212,7 +212,7 @@ AnnotateOrder=6
|
||||
DoLibraryUpdate=1
|
||||
DoDatabaseUpdate=1
|
||||
ClassGenCCAutoEnabled=1
|
||||
ClassGenCCAutoRoomEnabled=1
|
||||
ClassGenCCAutoRoomEnabled=0
|
||||
ClassGenNCAutoScope=None
|
||||
DItemRevisionGUID=
|
||||
GenerateClassCluster=0
|
||||
@@ -229,7 +229,7 @@ AnnotateOrder=7
|
||||
DoLibraryUpdate=1
|
||||
DoDatabaseUpdate=1
|
||||
ClassGenCCAutoEnabled=1
|
||||
ClassGenCCAutoRoomEnabled=1
|
||||
ClassGenCCAutoRoomEnabled=0
|
||||
ClassGenNCAutoScope=None
|
||||
DItemRevisionGUID=
|
||||
GenerateClassCluster=0
|
||||
@@ -246,12 +246,46 @@ AnnotateOrder=8
|
||||
DoLibraryUpdate=1
|
||||
DoDatabaseUpdate=1
|
||||
ClassGenCCAutoEnabled=1
|
||||
ClassGenCCAutoRoomEnabled=1
|
||||
ClassGenCCAutoRoomEnabled=0
|
||||
ClassGenNCAutoScope=None
|
||||
DItemRevisionGUID=
|
||||
GenerateClassCluster=0
|
||||
DocumentUniqueId=JOCLQKPX
|
||||
|
||||
[Document13]
|
||||
DocumentPath=Radio.SchDoc
|
||||
AnnotationEnabled=1
|
||||
AnnotateStartValue=1
|
||||
AnnotationIndexControlEnabled=0
|
||||
AnnotateSuffix=
|
||||
AnnotateScope=All
|
||||
AnnotateOrder=9
|
||||
DoLibraryUpdate=1
|
||||
DoDatabaseUpdate=1
|
||||
ClassGenCCAutoEnabled=1
|
||||
ClassGenCCAutoRoomEnabled=0
|
||||
ClassGenNCAutoScope=None
|
||||
DItemRevisionGUID=
|
||||
GenerateClassCluster=0
|
||||
DocumentUniqueId=MBDXMPIH
|
||||
|
||||
[Document14]
|
||||
DocumentPath=Display.SchDoc
|
||||
AnnotationEnabled=1
|
||||
AnnotateStartValue=1
|
||||
AnnotationIndexControlEnabled=0
|
||||
AnnotateSuffix=
|
||||
AnnotateScope=All
|
||||
AnnotateOrder=10
|
||||
DoLibraryUpdate=1
|
||||
DoDatabaseUpdate=1
|
||||
ClassGenCCAutoEnabled=1
|
||||
ClassGenCCAutoRoomEnabled=0
|
||||
ClassGenNCAutoScope=None
|
||||
DItemRevisionGUID=
|
||||
GenerateClassCluster=0
|
||||
DocumentUniqueId=OZWSKPMY
|
||||
|
||||
[Configuration1]
|
||||
Name=Sources
|
||||
ParameterCount=0
|
||||
@@ -367,21 +401,11 @@ OutputName20=WireList Netlist
|
||||
OutputDocumentPath20=
|
||||
OutputVariantName20=
|
||||
OutputDefault20=0
|
||||
OutputType21=SIMetrixNetlist
|
||||
OutputName21=SIMetrix
|
||||
OutputType21=XSpiceNetlist
|
||||
OutputName21=Mixed Sim Netlist
|
||||
OutputDocumentPath21=
|
||||
OutputVariantName21=
|
||||
OutputDefault21=0
|
||||
OutputType22=SIMPLISNetlist
|
||||
OutputName22=SIMPLIS
|
||||
OutputDocumentPath22=
|
||||
OutputVariantName22=
|
||||
OutputDefault22=0
|
||||
OutputType23=XSpiceNetlist
|
||||
OutputName23=Mixed Sim Netlist
|
||||
OutputDocumentPath23=
|
||||
OutputVariantName23=
|
||||
OutputDefault23=0
|
||||
|
||||
[OutputGroup2]
|
||||
Name=Simulator Outputs
|
||||
@@ -393,16 +417,6 @@ OutputName1=Mixed Sim
|
||||
OutputDocumentPath1=
|
||||
OutputVariantName1=
|
||||
OutputDefault1=0
|
||||
OutputType2=SIMetrixSimulation
|
||||
OutputName2=SIMetrix
|
||||
OutputDocumentPath2=
|
||||
OutputVariantName2=
|
||||
OutputDefault2=0
|
||||
OutputType3=SIMPLISSimulation
|
||||
OutputName3=SIMPLIS
|
||||
OutputDocumentPath3=
|
||||
OutputVariantName3=
|
||||
OutputDefault3=0
|
||||
|
||||
[OutputGroup3]
|
||||
Name=Documentation Outputs
|
||||
@@ -487,6 +501,12 @@ OutputDocumentPath13=
|
||||
OutputVariantName13=
|
||||
OutputDefault13=0
|
||||
PageOptions13=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter|PaperIndex=1
|
||||
OutputType14=PCBDrawing
|
||||
OutputName14=Draftsman
|
||||
OutputDocumentPath14=
|
||||
OutputVariantName14=[No Variations]
|
||||
OutputDefault14=0
|
||||
PageOptions14=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=Letter|PaperIndex=1
|
||||
|
||||
[OutputGroup4]
|
||||
Name=Assembly Outputs
|
||||
@@ -1227,10 +1247,16 @@ NetClassManualEnabled=1
|
||||
NetClassSeparateForBusSections=0
|
||||
|
||||
[LibraryUpdateOptions]
|
||||
SelectedOnly=0
|
||||
SelectedOnly=1
|
||||
UpdateVariants=1
|
||||
UpdateToLatestRevision=1
|
||||
PartTypes=0
|
||||
ComponentLibIdentifierKind0=Library Name And Type
|
||||
ComponentLibraryIdentifier0=Gabriel.SchLib
|
||||
ComponentDesignItemID0=DS24W-MS
|
||||
ComponentSymbolReference0=DS24W-MS
|
||||
ComponentUpdate0=1
|
||||
ComponentIsDeviceSheet0=0
|
||||
FullReplace=1
|
||||
UpdateDesignatorLock=1
|
||||
UpdatePartIDLock=1
|
||||
@@ -1244,6 +1270,19 @@ RemoveParameters=0
|
||||
AddModels=1
|
||||
RemoveModels=1
|
||||
UpdateCurrentModels=1
|
||||
ParameterName0=Comment
|
||||
ParameterUpdate0=1
|
||||
ParameterName1=Component Kind
|
||||
ParameterUpdate1=1
|
||||
ParameterName2=Description
|
||||
ParameterUpdate2=1
|
||||
ParameterName3=Library Reference
|
||||
ParameterUpdate3=1
|
||||
ModelTypeGroup0=PCBLIB
|
||||
ModelTypeUpdate0=1
|
||||
ModelType0=PCBLIB
|
||||
ModelName0=SODFL370X140-2N
|
||||
ModelUpdate0=1
|
||||
|
||||
[DatabaseUpdateOptions]
|
||||
SelectedOnly=0
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user