diff options
author | Trygve Laugstøl <trygvis@inamo.no> | 2017-01-25 22:23:13 +0100 |
---|---|---|
committer | Trygve Laugstøl <trygvis@inamo.no> | 2017-01-25 22:23:17 +0100 |
commit | 2fff65aed2477a503c72629d27e2a330d30c02d1 (patch) | |
tree | 96fd9f2f8151e266c0cf8563a714d7bab8aa7cb0 /tmp/STM32F10x_StdPeriph_Lib_V3.5.0/Project/STM32F10x_StdPeriph_Examples/IWDG/IWDG_Reset/main.c | |
parent | 41fdd2b1f35bcb4224fdb8fee2b959e09d1f5916 (diff) | |
download | stm32f103-playground-2fff65aed2477a503c72629d27e2a330d30c02d1.tar.gz stm32f103-playground-2fff65aed2477a503c72629d27e2a330d30c02d1.tar.bz2 stm32f103-playground-2fff65aed2477a503c72629d27e2a330d30c02d1.tar.xz stm32f103-playground-2fff65aed2477a503c72629d27e2a330d30c02d1.zip |
o Seemingly working Mutexes.
o Dropping the privileged/unprivileged split for now.
Diffstat (limited to 'tmp/STM32F10x_StdPeriph_Lib_V3.5.0/Project/STM32F10x_StdPeriph_Examples/IWDG/IWDG_Reset/main.c')
-rw-r--r-- | tmp/STM32F10x_StdPeriph_Lib_V3.5.0/Project/STM32F10x_StdPeriph_Examples/IWDG/IWDG_Reset/main.c | 244 |
1 files changed, 0 insertions, 244 deletions
diff --git a/tmp/STM32F10x_StdPeriph_Lib_V3.5.0/Project/STM32F10x_StdPeriph_Examples/IWDG/IWDG_Reset/main.c b/tmp/STM32F10x_StdPeriph_Lib_V3.5.0/Project/STM32F10x_StdPeriph_Examples/IWDG/IWDG_Reset/main.c deleted file mode 100644 index ba5be8f..0000000 --- a/tmp/STM32F10x_StdPeriph_Lib_V3.5.0/Project/STM32F10x_StdPeriph_Examples/IWDG/IWDG_Reset/main.c +++ /dev/null @@ -1,244 +0,0 @@ -/** - ****************************************************************************** - * @file IWDG/IWDG_Reset/main.c - * @author MCD Application Team - * @version V3.5.0 - * @date 08-April-2011 - * @brief Main program body. - ****************************************************************************** - * @attention - * - * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS - * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE - * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY - * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING - * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE - * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. - * - * <h2><center>© COPYRIGHT 2011 STMicroelectronics</center></h2> - ****************************************************************************** - */ - -/* Includes ------------------------------------------------------------------*/ -#include "stm32f10x.h" -#include "stm32_eval.h" - -/** @addtogroup STM32F10x_StdPeriph_Examples - * @{ - */ - -/** @addtogroup IWDG_Reset - * @{ - */ - -/* Private typedef -----------------------------------------------------------*/ -/* Private define ------------------------------------------------------------*/ -/* Uncomment/Comment depending on your STM32 device. - The LSI is internally connected to TIM5 IC4 only on STM32F10x Connectivity - line, High-Density Value line, High-Density and XL-Density Devices */ -#define LSI_TIM_MEASURE - -/* Private macro -------------------------------------------------------------*/ -/* Private variables ---------------------------------------------------------*/ -__IO uint32_t TimingDelay = 0; -__IO uint32_t LsiFreq = 40000; -extern __IO uint16_t CaptureNumber; - -/* Private function prototypes -----------------------------------------------*/ -void Delay(__IO uint32_t nTime); -void TIM5_ConfigForLSI(void); - -/* Private functions ---------------------------------------------------------*/ - -/** - * @brief Main program. - * @param None - * @retval None - */ -int main(void) -{ - /*!< At this stage the microcontroller clock setting is already configured, - this is done through SystemInit() function which is called from startup - file (startup_stm32f10x_xx.s) before to branch to application main. - To reconfigure the default setting of SystemInit() function, refer to - system_stm32f10x.c file - */ - - /* Initialize LED1 and Key Button mounted on STM3210X-EVAL board */ - STM_EVAL_LEDInit(LED1); - STM_EVAL_LEDInit(LED2); - STM_EVAL_PBInit(BUTTON_KEY, BUTTON_MODE_EXTI); - - /* Setup SysTick Timer for 1 msec interrupts */ - if (SysTick_Config(SystemCoreClock / 1000)) - { - /* Capture error */ - while (1); - } - - - /* Check if the system has resumed from IWDG reset */ - if (RCC_GetFlagStatus(RCC_FLAG_IWDGRST) != RESET) - { - /* IWDGRST flag set */ - /* Turn on LED1 */ - STM_EVAL_LEDOn(LED1); - - /* Clear reset flags */ - RCC_ClearFlag(); - } - else - { - /* IWDGRST flag is not set */ - /* Turn off LED1 */ - STM_EVAL_LEDOff(LED1); - } - -#ifdef LSI_TIM_MEASURE - /* Enable the LSI OSC */ - RCC_LSICmd(ENABLE); - - /* Wait till LSI is ready */ - while (RCC_GetFlagStatus(RCC_FLAG_LSIRDY) == RESET) - {} - - /* TIM Configuration -------------------------------------------------------*/ - TIM5_ConfigForLSI(); - - /* Wait until the TIM5 get 2 LSI edges */ - while(CaptureNumber != 2) - { - } - - /* Disable TIM5 CC4 Interrupt Request */ - TIM_ITConfig(TIM5, TIM_IT_CC4, DISABLE); -#endif - - /* IWDG timeout equal to 250 ms (the timeout may varies due to LSI frequency - dispersion) */ - /* Enable write access to IWDG_PR and IWDG_RLR registers */ - IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable); - - /* IWDG counter clock: LSI/32 */ - IWDG_SetPrescaler(IWDG_Prescaler_32); - - /* Set counter reload value to obtain 250ms IWDG TimeOut. - Counter Reload Value = 250ms/IWDG counter clock period - = 250ms / (LSI/32) - = 0.25s / (LsiFreq/32) - = LsiFreq/(32 * 4) - = LsiFreq/128 - */ - IWDG_SetReload(LsiFreq/128); - - /* Reload IWDG counter */ - IWDG_ReloadCounter(); - - /* Enable IWDG (the LSI oscillator will be enabled by hardware) */ - IWDG_Enable(); - - while (1) - { - /* Toggle LED2 */ - STM_EVAL_LEDToggle(LED2); - - /* Insert 240 ms delay */ - Delay(240); - - /* Reload IWDG counter */ - IWDG_ReloadCounter(); - } -} - -/** - * @brief Inserts a delay time. - * @param nTime: specifies the delay time length, in milliseconds. - * @retval None - */ -void Delay(__IO uint32_t nTime) -{ - TimingDelay = nTime; - - while(TimingDelay != 0); -} - -#ifdef LSI_TIM_MEASURE -/** - * @brief Configures TIM5 to measure the LSI oscillator frequency. - * @param None - * @retval None - */ -void TIM5_ConfigForLSI(void) -{ - NVIC_InitTypeDef NVIC_InitStructure; - TIM_ICInitTypeDef TIM_ICInitStructure; - - /* Enable TIM5 clocks */ - RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM5, ENABLE); - - /* Enable the TIM5 Interrupt */ - NVIC_InitStructure.NVIC_IRQChannel = TIM5_IRQn; - NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; - NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; - NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; - NVIC_Init(&NVIC_InitStructure); - - /* Configure TIM5 prescaler */ - TIM_PrescalerConfig(TIM5, 0, TIM_PSCReloadMode_Immediate); - - /* Connect internally the TM5_CH4 Input Capture to the LSI clock output */ - GPIO_PinRemapConfig(GPIO_Remap_TIM5CH4_LSI, ENABLE); - - /* TIM5 configuration: Input Capture mode --------------------- - The LSI oscillator is connected to TIM5 CH4 - The Rising edge is used as active edge, - The TIM5 CCR4 is used to compute the frequency value - ------------------------------------------------------------ */ - TIM_ICInitStructure.TIM_Channel = TIM_Channel_4; - TIM_ICInitStructure.TIM_ICPolarity = TIM_ICPolarity_Rising; - TIM_ICInitStructure.TIM_ICSelection = TIM_ICSelection_DirectTI; - TIM_ICInitStructure.TIM_ICPrescaler = TIM_ICPSC_DIV8; - TIM_ICInitStructure.TIM_ICFilter = 0; - TIM_ICInit(TIM5, &TIM_ICInitStructure); - - /* TIM10 Counter Enable */ - TIM_Cmd(TIM5, ENABLE); - - /* Reset the flags */ - TIM5->SR = 0; - - /* Enable the CC4 Interrupt Request */ - TIM_ITConfig(TIM5, TIM_IT_CC4, ENABLE); -} -#endif - -#ifdef USE_FULL_ASSERT - -/** - * @brief Reports the name of the source file and the source line number - * where the assert_param error has occurred. - * @param file: pointer to the source file name - * @param line: assert_param error line source number - * @retval None - */ -void assert_failed(uint8_t* file, uint32_t line) -{ - /* User can add his own implementation to report the file name and line number, - ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */ - - /* Infinite loop */ - while (1) - {} -} - -#endif - -/** - * @} - */ - -/** - * @} - */ - -/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/ |