123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219 |
- /**
- ******************************************************************************
- * @file Templates_LL/Src/main.c
- * @author MCD Application Team
- * @brief Main program body through the LL API
- ******************************************************************************
- * @attention
- *
- * <h2><center>© Copyright (c) 2016 STMicroelectronics.
- * All rights reserved.</center></h2>
- *
- * This software component is licensed by ST under BSD 3-Clause license,
- * the "License"; You may not use this file except in compliance with the
- * License. You may obtain a copy of the License at:
- * opensource.org/licenses/BSD-3-Clause
- *
- ******************************************************************************
- */
- #include "stm32f1xx_ll_rcc.h" // utile dans la fonction SystemClock_Config
- #include "stm32f1xx_ll_utils.h" // utile dans la fonction SystemClock_Config
- #include "stm32f1xx_ll_system.h" // utile dans la fonction SystemClock_Config
-
- #include "Sail.h"
- #include "Roll.h"
- #include "Display.h"
- #include "Orientation.h"
-
- #include "Scheduler.h"
- #include "Accelerometer.h"
- #include "RFEmitter.h"
- #include "stdio.h"
-
- void SystemClock_Config(void);
-
- // Compteur de secondes
- int secCounter = 0;
-
- /* Private functions ---------------------------------------------------------*/
-
- /**
- * @brief Effectue la tache de fond (programmee toutes les ms)
- * @note
- * @param None
- * @retval None
- */
- void backgroundTask()
- {
- // Compte les millisecondes et secondes
- static int msCounter;
- msCounter++;
- if (msCounter == 1000) {
- msCounter = 0;
- secCounter++;
- }
- Sail_background();
- Roll_background();
- Orientation_background();
- }
-
- /**
- * @brief Configure les peripheriques
- * @note
- * @param None
- * @retval None
- */
- void configurePeripherals()
- {
- Sail_conf();
- Roll_conf();
- Display_conf();
- Orientation_conf();
- }
-
- /**
- * @brief Demarre les peripheriques
- * @note
- * @param None
- * @retval None
- */
- void startPeripherals()
- {
- Sail_start();
- Roll_start();
- Display_start();
- }
-
- /**
- * @brief Main program
- * @param None
- * @retval None
- */
- int main(void)
- {
- /* Configure the system clock to 72 MHz */
- SystemClock_Config();
-
- /* Add your application code here */
- configurePeripherals();
- startPeripherals();
-
- Scheduler_conf(backgroundTask);
- Scheduler_start();
-
- while (1) {
- // Display_background(secCounter);
- }
-
-
- //// ADC 2 marche niquel, ADC1 ne marche pas :(
- // ADC_conf(ADC1);
- // ADC_start(ADC1);
- //
- // ADC_conf(ADC2);
- // ADC_start(ADC2);
-
- //
- // while (1) {
- // val1 = ADC_readRaw(ADC1, 10);
- // val2 = ADC_readRaw(ADC2, 10);
- // }
-
-
- }
-
-
-
-
-
-
-
- /**
- * @brief System Clock Configuration
- * The system Clock is configured as follow :
- * System Clock source = PLL (HSE)
- * SYSCLK(Hz) = 72000000
- * HCLK(Hz) = 72000000
- * AHB Prescaler = 1
- * APB1 Prescaler = 2
- * APB2 Prescaler = 1
- * HSE Frequency(Hz) = 8000000
- * PLLMUL = 9
- * Flash Latency(WS) = 2
- * @param None
- * @retval None
- */
- void SystemClock_Config(void)
- {
- /* Set FLASH latency */
- LL_FLASH_SetLatency(LL_FLASH_LATENCY_2);
-
- /* Enable HSE oscillator */
- // ********* Commenter la ligne ci-dessous pour MCBSTM32 *****************
- // ********* Conserver la ligne si Nucleo*********************************
- // LL_RCC_HSE_EnableBypass();
- LL_RCC_HSE_Enable();
- while(LL_RCC_HSE_IsReady() != 1)
- {
- };
-
- /* Main PLL configuration and activation */
- LL_RCC_PLL_ConfigDomain_SYS(LL_RCC_PLLSOURCE_HSE_DIV_1, LL_RCC_PLL_MUL_9);
-
- LL_RCC_PLL_Enable();
- while(LL_RCC_PLL_IsReady() != 1)
- {
- };
-
- /* Sysclk activation on the main PLL */
- LL_RCC_SetAHBPrescaler(LL_RCC_SYSCLK_DIV_1);
- LL_RCC_SetSysClkSource(LL_RCC_SYS_CLKSOURCE_PLL);
- while(LL_RCC_GetSysClkSource() != LL_RCC_SYS_CLKSOURCE_STATUS_PLL)
- {
- };
-
- /* Set APB1 & APB2 prescaler*/
- LL_RCC_SetAPB1Prescaler(LL_RCC_APB1_DIV_2);
- LL_RCC_SetAPB2Prescaler(LL_RCC_APB2_DIV_1);
-
- /* Set systick to 1ms in using frequency set to 72MHz */
- LL_Init1msTick(72000000); // utile lorsqu'on utilise la fonction LL_mDelay
-
- /* Update CMSIS variable (which can be updated also through SystemCoreClockUpdate function) */
- LL_SetSystemCoreClock(72000000);
- }
-
-
-
- /* ============== BOARD SPECIFIC CONFIGURATION CODE END ============== */
-
- #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*/
- printf("Wrong parameters value: file %s on line %d", file, line);
-
- /* Infinite loop */
- while (1)
- {
- }
- }
- #endif
-
- /**
- * @}
- */
-
- /**
- * @}
- */
-
- /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
|