summaryrefslogtreecommitdiffstatshomepage
path: root/stmhal/usbd_cdc_interface.c
diff options
context:
space:
mode:
authorDamien George <damien.p.george@gmail.com>2014-03-22 23:54:13 +0000
committerDamien George <damien.p.george@gmail.com>2014-03-22 23:54:13 +0000
commit908a670dfc44111c1c1f3fdee0ebb7471c2ef079 (patch)
treef6971b2c7feb93ad38c224d93a8d75f645f86087 /stmhal/usbd_cdc_interface.c
parent02fa0358005fed02e989e7b1ad9b31f7a9ae8637 (diff)
downloadmicropython-908a670dfc44111c1c1f3fdee0ebb7471c2ef079.tar.gz
micropython-908a670dfc44111c1c1f3fdee0ebb7471c2ef079.zip
stmhal: Add intensity method for blue LED.
As part of this, rejig the way TIM3 is initialised, since it's now shared by USB CDC and the blue LED PWM.
Diffstat (limited to 'stmhal/usbd_cdc_interface.c')
-rw-r--r--stmhal/usbd_cdc_interface.c50
1 files changed, 9 insertions, 41 deletions
diff --git a/stmhal/usbd_cdc_interface.c b/stmhal/usbd_cdc_interface.c
index e190e34793..8a2470c853 100644
--- a/stmhal/usbd_cdc_interface.c
+++ b/stmhal/usbd_cdc_interface.c
@@ -65,8 +65,6 @@ static uint16_t UserTxBufPtrOut = 0; // increment this pointer modulo APP_TX_DAT
static int user_interrupt_char = VCP_CHAR_NONE;
static void *user_interrupt_data = NULL;
-/* TIM handler declaration */
-TIM_HandleTypeDef USBD_CDC_TIM3_Handle;
/* USB handler declaration */
extern USBD_HandleTypeDef hUSBDDevice;
@@ -76,8 +74,6 @@ static int8_t CDC_Itf_DeInit (void);
static int8_t CDC_Itf_Control (uint8_t cmd, uint8_t* pbuf, uint16_t length);
static int8_t CDC_Itf_Receive (uint8_t* pbuf, uint32_t *Len);
-static void TIM_Config(void);
-
const USBD_CDC_ItfTypeDef USBD_CDC_fops = {
CDC_Itf_Init,
CDC_Itf_DeInit,
@@ -125,21 +121,19 @@ static int8_t CDC_Itf_Init(void)
/* Transfer error in reception process */
Error_Handler();
}
-#endif
/*##-3- Configure the TIM Base generation #################################*/
+ now done in HAL_MspInit
TIM_Config();
+#endif
- /*##-4- Start the TIM Base generation in interrupt mode ####################*/
- /* Start Channel1 */
- if(HAL_TIM_Base_Start_IT(&USBD_CDC_TIM3_Handle) != HAL_OK)
- {
- /* Starting Error */
- }
+ /*##-4- Start the TIM Base generation in interrupt mode ####################*/
+ /* Start Channel1 */
+ __HAL_TIM_ENABLE_IT(&TIM3_Handle, TIM_IT_UPDATE);
- /*##-5- Set Application Buffers ############################################*/
- USBD_CDC_SetTxBuffer(&hUSBDDevice, UserTxBuffer, 0);
- USBD_CDC_SetRxBuffer(&hUSBDDevice, UserRxBuffer);
+ /*##-5- Set Application Buffers ############################################*/
+ USBD_CDC_SetTxBuffer(&hUSBDDevice, UserTxBuffer, 0);
+ USBD_CDC_SetRxBuffer(&hUSBDDevice, UserRxBuffer);
UserRxBufCur = 0;
UserRxBufLen = 0;
@@ -147,7 +141,7 @@ static int8_t CDC_Itf_Init(void)
user_interrupt_char = VCP_CHAR_NONE;
user_interrupt_data = NULL;
- return (USBD_OK);
+ return (USBD_OK);
}
/**
@@ -378,29 +372,3 @@ int USBD_CDC_RxGet(void) {
}
return c;
}
-
-/**
- * @brief TIM_Config: Configure TIMx timer
- * @param None.
- * @retval None.
- */
-static void TIM_Config(void)
-{
- /* Set TIMx instance */
- USBD_CDC_TIM3_Handle.Instance = USBD_CDC_TIMx;
-
- /* Initialize TIM3 peripheral as follow:
- + Period = 10000 - 1
- + Prescaler = ((SystemCoreClock/2)/10000) - 1
- + ClockDivision = 0
- + Counter direction = Up
- */
- USBD_CDC_TIM3_Handle.Init.Period = (USBD_CDC_POLLING_INTERVAL*1000) - 1;
- USBD_CDC_TIM3_Handle.Init.Prescaler = 84-1;
- USBD_CDC_TIM3_Handle.Init.ClockDivision = 0;
- USBD_CDC_TIM3_Handle.Init.CounterMode = TIM_COUNTERMODE_UP;
- if(HAL_TIM_Base_Init(&USBD_CDC_TIM3_Handle) != HAL_OK)
- {
- /* Initialization Error */
- }
-}