Resolve #4 by running main loop inside timer IRQ and setting it to 1kHz
This commit is contained in:
		@ -62,6 +62,7 @@ void FDCAN2_IT0_IRQHandler(void);
 | 
				
			|||||||
void FDCAN1_IT1_IRQHandler(void);
 | 
					void FDCAN1_IT1_IRQHandler(void);
 | 
				
			||||||
void FDCAN2_IT1_IRQHandler(void);
 | 
					void FDCAN2_IT1_IRQHandler(void);
 | 
				
			||||||
void TIM8_CC_IRQHandler(void);
 | 
					void TIM8_CC_IRQHandler(void);
 | 
				
			||||||
 | 
					void TIM6_DAC_IRQHandler(void);
 | 
				
			||||||
/* USER CODE BEGIN EFP */
 | 
					/* USER CODE BEGIN EFP */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* USER CODE END EFP */
 | 
					/* USER CODE END EFP */
 | 
				
			||||||
 | 
				
			|||||||
@ -50,6 +50,12 @@
 | 
				
			|||||||
/* Private variables ---------------------------------------------------------*/
 | 
					/* Private variables ---------------------------------------------------------*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* USER CODE BEGIN PV */
 | 
					/* USER CODE BEGIN PV */
 | 
				
			||||||
 | 
					unsigned int mscounter;
 | 
				
			||||||
 | 
					unsigned int setup_complete;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FDCAN_HandleTypeDef *hMainCAN, *hPeriCAN;
 | 
				
			||||||
 | 
					FDCAN_TxHeaderTypeDef txHeader;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Declare buffer in D1 domain SRAM */
 | 
					/* Declare buffer in D1 domain SRAM */
 | 
				
			||||||
static uint16_t adc_values[NUM_ADC_PINS];
 | 
					static uint16_t adc_values[NUM_ADC_PINS];
 | 
				
			||||||
static uint8_t  dio_values[NUM_DIO_PINS];
 | 
					static uint8_t  dio_values[NUM_DIO_PINS];
 | 
				
			||||||
@ -72,6 +78,74 @@ static void MX_NVIC_Init(void);
 | 
				
			|||||||
/* Private user code ---------------------------------------------------------*/
 | 
					/* Private user code ---------------------------------------------------------*/
 | 
				
			||||||
/* USER CODE BEGIN 0 */
 | 
					/* USER CODE BEGIN 0 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void loop_1kHz() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if (!setup_complete)
 | 
				
			||||||
 | 
					    return;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  mscounter++;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  for (int di = 0; di < NUM_DIO_PINS; di++) {
 | 
				
			||||||
 | 
					    dio_values[di] = HAL_GPIO_ReadPin(
 | 
				
			||||||
 | 
					      DIO_PIN_MAP[di].port,
 | 
				
			||||||
 | 
					      DIO_PIN_MAP[di].pin
 | 
				
			||||||
 | 
					    );
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  for (int pi = 0; pi < NUM_TX_PKT; pi++) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    can_pkt_t* pktinfo = &(CAN_SIGNAL_MAP[pi]);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (pktinfo->num_signals < 0)
 | 
				
			||||||
 | 
					      continue;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (mscounter % pktinfo->period == 0) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      txHeader.Identifier = pktinfo->can_id;
 | 
				
			||||||
 | 
					      txHeader.DataLength = pktinfo->dlc;
 | 
				
			||||||
 | 
					      uint64_t txData = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      for (int si = 0; si < pktinfo->num_signals; si++) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        can_signal_t* signal = &(pktinfo->signals[si]);
 | 
				
			||||||
 | 
					        uint16_t value = 0;
 | 
				
			||||||
 | 
					        switch (signal->type) {
 | 
				
			||||||
 | 
					          case DIN:
 | 
				
			||||||
 | 
					            value = dio_values[signal->channel];
 | 
				
			||||||
 | 
					            break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          case AIN:
 | 
				
			||||||
 | 
					            value = signal->factor * adc_values[signal->channel];
 | 
				
			||||||
 | 
					            break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          case FIN:
 | 
				
			||||||
 | 
					            value = wss_flanks[signal->channel];
 | 
				
			||||||
 | 
					            wss_flanks[signal->channel] = 0;
 | 
				
			||||||
 | 
					            break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          default:
 | 
				
			||||||
 | 
					            break;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        uint16_t mask = 0xFFFF >> (16 - signal->length);
 | 
				
			||||||
 | 
					        txData |= ((uint64_t) (value & mask)) << (signal->start);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      if (HAL_FDCAN_AddMessageToTxFifoQ(hMainCAN, &txHeader, (uint8_t*) &txData) != HAL_OK)
 | 
				
			||||||
 | 
					        Error_Handler();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (mscounter >= 500) {
 | 
				
			||||||
 | 
					      mscounter = 0;
 | 
				
			||||||
 | 
					      HAL_GPIO_TogglePin(STATUS_G_GPIO_Port, STATUS_G_Pin);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* USER CODE END 0 */
 | 
					/* USER CODE END 0 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
@ -117,8 +191,8 @@ int main(void)
 | 
				
			|||||||
  MX_NVIC_Init();
 | 
					  MX_NVIC_Init();
 | 
				
			||||||
  /* USER CODE BEGIN 2 */
 | 
					  /* USER CODE BEGIN 2 */
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
  FDCAN_HandleTypeDef* hMainCAN = &hfdcan2;
 | 
					  hMainCAN = &hfdcan2;
 | 
				
			||||||
  //FDCAN_HandleTypeDef* hPeriCAN = &hfdcan1;
 | 
					  hPeriCAN = &hfdcan1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  if (HAL_ADCEx_Calibration_Start(&hadc1, ADC_CALIB_OFFSET, ADC_SINGLE_ENDED) != HAL_OK)
 | 
					  if (HAL_ADCEx_Calibration_Start(&hadc1, ADC_CALIB_OFFSET, ADC_SINGLE_ENDED) != HAL_OK)
 | 
				
			||||||
    Error_Handler();
 | 
					    Error_Handler();
 | 
				
			||||||
@ -126,12 +200,10 @@ int main(void)
 | 
				
			|||||||
  if (HAL_ADC_Start_DMA(&hadc1, (uint32_t*)adc_values, NUM_ADC_PINS) != HAL_OK)
 | 
					  if (HAL_ADC_Start_DMA(&hadc1, (uint32_t*)adc_values, NUM_ADC_PINS) != HAL_OK)
 | 
				
			||||||
    Error_Handler();
 | 
					    Error_Handler();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  HAL_TIM_Base_Start(&htim6);
 | 
					  HAL_TIM_Base_Start_IT(&htim6);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // CAN TX PREP
 | 
					  // CAN TX PREP
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  FDCAN_TxHeaderTypeDef txHeader;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  // Prep the tx frame
 | 
					  // Prep the tx frame
 | 
				
			||||||
  txHeader.ErrorStateIndicator = FDCAN_ESI_PASSIVE;
 | 
					  txHeader.ErrorStateIndicator = FDCAN_ESI_PASSIVE;
 | 
				
			||||||
  txHeader.BitRateSwitch = FDCAN_BRS_OFF;
 | 
					  txHeader.BitRateSwitch = FDCAN_BRS_OFF;
 | 
				
			||||||
@ -170,77 +242,20 @@ int main(void)
 | 
				
			|||||||
  HAL_TIM_IC_Start_IT(&htim8, TIM_CHANNEL_1);
 | 
					  HAL_TIM_IC_Start_IT(&htim8, TIM_CHANNEL_1);
 | 
				
			||||||
  HAL_TIM_IC_Start_IT(&htim8, TIM_CHANNEL_2);
 | 
					  HAL_TIM_IC_Start_IT(&htim8, TIM_CHANNEL_2);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  mscounter = 0;
 | 
				
			||||||
 | 
					  setup_complete = 1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /* USER CODE END 2 */
 | 
					  /* USER CODE END 2 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /* Infinite loop */
 | 
					  /* Infinite loop */
 | 
				
			||||||
  /* USER CODE BEGIN WHILE */
 | 
					  /* USER CODE BEGIN WHILE */
 | 
				
			||||||
  for (unsigned int mscounter = 0; 1; mscounter++)
 | 
					  while(1)
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    /* USER CODE END WHILE */
 | 
					    /* USER CODE END WHILE */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /* USER CODE BEGIN 3 */
 | 
					    /* USER CODE BEGIN 3 */
 | 
				
			||||||
    for (int di = 0; di < NUM_DIO_PINS; di++) {
 | 
					    //HAL_SuspendTick();
 | 
				
			||||||
      dio_values[di] = HAL_GPIO_ReadPin(
 | 
					    //HAL_PWR_EnterSLEEPMode(PWR_MAINREGULATOR_ON, PWR_SLEEPENTRY_WFI);
 | 
				
			||||||
        DIO_PIN_MAP[di].port,
 | 
					 | 
				
			||||||
        DIO_PIN_MAP[di].pin
 | 
					 | 
				
			||||||
      );
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    for (int pi = 0; pi < NUM_TX_PKT; pi++) {
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      can_pkt_t* pktinfo = &(CAN_SIGNAL_MAP[pi]);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      if (pktinfo->num_signals < 0)
 | 
					 | 
				
			||||||
        continue;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      if (mscounter % pktinfo->period == 0) {
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        txHeader.Identifier = pktinfo->can_id;
 | 
					 | 
				
			||||||
        txHeader.DataLength = pktinfo->dlc;
 | 
					 | 
				
			||||||
        uint64_t txData = 0;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        for (int si = 0; si < pktinfo->num_signals; si++) {
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
          can_signal_t* signal = &(pktinfo->signals[si]);
 | 
					 | 
				
			||||||
          uint16_t value = 0;
 | 
					 | 
				
			||||||
          switch (signal->type) {
 | 
					 | 
				
			||||||
            case DIN:
 | 
					 | 
				
			||||||
              value = dio_values[signal->channel];
 | 
					 | 
				
			||||||
              break;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            case AIN:
 | 
					 | 
				
			||||||
              value = signal->factor * adc_values[signal->channel];
 | 
					 | 
				
			||||||
              break;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            case FIN:
 | 
					 | 
				
			||||||
              value = wss_flanks[signal->channel];
 | 
					 | 
				
			||||||
              wss_flanks[signal->channel] = 0;
 | 
					 | 
				
			||||||
              break;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            default:
 | 
					 | 
				
			||||||
              break;
 | 
					 | 
				
			||||||
          }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
          uint16_t mask = 0xFFFF >> (16 - signal->length);
 | 
					 | 
				
			||||||
          txData |= ((uint64_t) (value & mask)) << (signal->start);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        if (HAL_FDCAN_AddMessageToTxFifoQ(hMainCAN, &txHeader, (uint8_t*) &txData) != HAL_OK)
 | 
					 | 
				
			||||||
          Error_Handler();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      if (mscounter >= 500) {
 | 
					 | 
				
			||||||
        mscounter = 0;
 | 
					 | 
				
			||||||
        HAL_GPIO_TogglePin(STATUS_G_GPIO_Port, STATUS_G_Pin);
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    // TODO: Move all this into a 1kHz timer callback!
 | 
					 | 
				
			||||||
    HAL_Delay(1);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  /* USER CODE END 3 */
 | 
					  /* USER CODE END 3 */
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@ -318,13 +333,24 @@ static void MX_NVIC_Init(void)
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* USER CODE BEGIN 4 */
 | 
					/* USER CODE BEGIN 4 */
 | 
				
			||||||
void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef* hadc)
 | 
					/*void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef* hadc)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  if (hadc->Instance == ADC1)
 | 
					  if (hadc->Instance == ADC1)
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    __asm volatile ("NOP");
 | 
					    __asm volatile ("NOP");
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  //HAL_GPIO_TogglePin(STATUS_B_GPIO_Port, STATUS_B_Pin);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if (htim != &htim6)
 | 
				
			||||||
 | 
					    return;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  loop_1kHz();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/*
 | 
					/*
 | 
				
			||||||
 * Input capture timing calculations:
 | 
					 * Input capture timing calculations:
 | 
				
			||||||
@ -430,6 +456,11 @@ void HAL_FDCAN_RxFifo0Callback(FDCAN_HandleTypeDef *handle, uint32_t RxFifo0ITs)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  HAL_ResumeTick();
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* USER CODE END 4 */
 | 
					/* USER CODE END 4 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 | 
				
			|||||||
@ -59,6 +59,7 @@ extern DMA_HandleTypeDef hdma_adc1;
 | 
				
			|||||||
extern ADC_HandleTypeDef hadc1;
 | 
					extern ADC_HandleTypeDef hadc1;
 | 
				
			||||||
extern FDCAN_HandleTypeDef hfdcan1;
 | 
					extern FDCAN_HandleTypeDef hfdcan1;
 | 
				
			||||||
extern FDCAN_HandleTypeDef hfdcan2;
 | 
					extern FDCAN_HandleTypeDef hfdcan2;
 | 
				
			||||||
 | 
					extern TIM_HandleTypeDef htim6;
 | 
				
			||||||
extern TIM_HandleTypeDef htim8;
 | 
					extern TIM_HandleTypeDef htim8;
 | 
				
			||||||
/* USER CODE BEGIN EV */
 | 
					/* USER CODE BEGIN EV */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -300,6 +301,20 @@ void TIM8_CC_IRQHandler(void)
 | 
				
			|||||||
  /* USER CODE END TIM8_CC_IRQn 1 */
 | 
					  /* USER CODE END TIM8_CC_IRQn 1 */
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					  * @brief This function handles TIM6 global interrupt, DAC1_CH1 and DAC1_CH2 underrun error interrupts.
 | 
				
			||||||
 | 
					  */
 | 
				
			||||||
 | 
					void TIM6_DAC_IRQHandler(void)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  /* USER CODE BEGIN TIM6_DAC_IRQn 0 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /* USER CODE END TIM6_DAC_IRQn 0 */
 | 
				
			||||||
 | 
					  HAL_TIM_IRQHandler(&htim6);
 | 
				
			||||||
 | 
					  /* USER CODE BEGIN TIM6_DAC_IRQn 1 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /* USER CODE END TIM6_DAC_IRQn 1 */
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* USER CODE BEGIN 1 */
 | 
					/* USER CODE BEGIN 1 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* USER CODE END 1 */
 | 
					/* USER CODE END 1 */
 | 
				
			||||||
 | 
				
			|||||||
@ -217,9 +217,9 @@ void MX_TIM6_Init(void)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  /* USER CODE END TIM6_Init 1 */
 | 
					  /* USER CODE END TIM6_Init 1 */
 | 
				
			||||||
  htim6.Instance = TIM6;
 | 
					  htim6.Instance = TIM6;
 | 
				
			||||||
  htim6.Init.Prescaler = 4800-1;
 | 
					  htim6.Init.Prescaler = 480-1;
 | 
				
			||||||
  htim6.Init.CounterMode = TIM_COUNTERMODE_UP;
 | 
					  htim6.Init.CounterMode = TIM_COUNTERMODE_UP;
 | 
				
			||||||
  htim6.Init.Period = 2000-1;
 | 
					  htim6.Init.Period = 200-1;
 | 
				
			||||||
  htim6.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
 | 
					  htim6.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
 | 
				
			||||||
  if (HAL_TIM_Base_Init(&htim6) != HAL_OK)
 | 
					  if (HAL_TIM_Base_Init(&htim6) != HAL_OK)
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
@ -334,6 +334,10 @@ void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* tim_baseHandle)
 | 
				
			|||||||
  /* USER CODE END TIM6_MspInit 0 */
 | 
					  /* USER CODE END TIM6_MspInit 0 */
 | 
				
			||||||
    /* TIM6 clock enable */
 | 
					    /* TIM6 clock enable */
 | 
				
			||||||
    __HAL_RCC_TIM6_CLK_ENABLE();
 | 
					    __HAL_RCC_TIM6_CLK_ENABLE();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /* TIM6 interrupt Init */
 | 
				
			||||||
 | 
					    HAL_NVIC_SetPriority(TIM6_DAC_IRQn, 0, 0);
 | 
				
			||||||
 | 
					    HAL_NVIC_EnableIRQ(TIM6_DAC_IRQn);
 | 
				
			||||||
  /* USER CODE BEGIN TIM6_MspInit 1 */
 | 
					  /* USER CODE BEGIN TIM6_MspInit 1 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /* USER CODE END TIM6_MspInit 1 */
 | 
					  /* USER CODE END TIM6_MspInit 1 */
 | 
				
			||||||
@ -502,6 +506,9 @@ void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* tim_baseHandle)
 | 
				
			|||||||
  /* USER CODE END TIM6_MspDeInit 0 */
 | 
					  /* USER CODE END TIM6_MspDeInit 0 */
 | 
				
			||||||
    /* Peripheral clock disable */
 | 
					    /* Peripheral clock disable */
 | 
				
			||||||
    __HAL_RCC_TIM6_CLK_DISABLE();
 | 
					    __HAL_RCC_TIM6_CLK_DISABLE();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /* TIM6 interrupt Deinit */
 | 
				
			||||||
 | 
					    HAL_NVIC_DisableIRQ(TIM6_DAC_IRQn);
 | 
				
			||||||
  /* USER CODE BEGIN TIM6_MspDeInit 1 */
 | 
					  /* USER CODE BEGIN TIM6_MspDeInit 1 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /* USER CODE END TIM6_MspDeInit 1 */
 | 
					  /* USER CODE END TIM6_MspDeInit 1 */
 | 
				
			||||||
 | 
				
			|||||||
@ -276,6 +276,7 @@ NVIC.PendSV_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
 | 
				
			|||||||
NVIC.PriorityGroup=NVIC_PRIORITYGROUP_4
 | 
					NVIC.PriorityGroup=NVIC_PRIORITYGROUP_4
 | 
				
			||||||
NVIC.SVCall_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
 | 
					NVIC.SVCall_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
 | 
				
			||||||
NVIC.SysTick_IRQn=true\:15\:0\:false\:false\:true\:false\:true\:false
 | 
					NVIC.SysTick_IRQn=true\:15\:0\:false\:false\:true\:false\:true\:false
 | 
				
			||||||
 | 
					NVIC.TIM6_DAC_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true
 | 
				
			||||||
NVIC.TIM8_CC_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true
 | 
					NVIC.TIM8_CC_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true
 | 
				
			||||||
NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
 | 
					NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
 | 
				
			||||||
PA0.GPIOParameters=GPIO_Label
 | 
					PA0.GPIOParameters=GPIO_Label
 | 
				
			||||||
@ -633,8 +634,8 @@ TIM4.Period=255
 | 
				
			|||||||
TIM4.Prescaler=19
 | 
					TIM4.Prescaler=19
 | 
				
			||||||
TIM6.AutoReloadPreload=TIM_AUTORELOAD_PRELOAD_DISABLE
 | 
					TIM6.AutoReloadPreload=TIM_AUTORELOAD_PRELOAD_DISABLE
 | 
				
			||||||
TIM6.IPParameters=Prescaler,Period,TIM_MasterOutputTrigger,AutoReloadPreload
 | 
					TIM6.IPParameters=Prescaler,Period,TIM_MasterOutputTrigger,AutoReloadPreload
 | 
				
			||||||
TIM6.Period=2000-1
 | 
					TIM6.Period=200-1
 | 
				
			||||||
TIM6.Prescaler=4800-1
 | 
					TIM6.Prescaler=480-1
 | 
				
			||||||
TIM6.TIM_MasterOutputTrigger=TIM_TRGO_UPDATE
 | 
					TIM6.TIM_MasterOutputTrigger=TIM_TRGO_UPDATE
 | 
				
			||||||
TIM8.Channel-Input_Capture1_from_TI1=TIM_CHANNEL_1
 | 
					TIM8.Channel-Input_Capture1_from_TI1=TIM_CHANNEL_1
 | 
				
			||||||
TIM8.Channel-Input_Capture2_from_TI2=TIM_CHANNEL_2
 | 
					TIM8.Channel-Input_Capture2_from_TI2=TIM_CHANNEL_2
 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user