Обновлены шапки и по мелочи
This commit is contained in:
@@ -14,6 +14,9 @@
|
||||
******************************************************************************
|
||||
* @attention
|
||||
*
|
||||
* Этот драйвер должен быть инициализирован ПЕРВЫМ в программе, до любой другой периферии.
|
||||
* Неправильная настройка тактирования может привести к неработоспособности всего МК.
|
||||
*
|
||||
* Использование этого драйвера предполагает наличие корректных настроек:
|
||||
* - Определены константы SYSCLK_CORE_CLOCK_MHZ и SYSCLK_Oscil_Type в periph_config.h
|
||||
* - Определен тип системного тика SYSCLK_TickType в periph_config.h
|
||||
@@ -24,37 +27,44 @@
|
||||
##### Как использовать этот драйвер #####
|
||||
==============================================================================
|
||||
|
||||
1. Настройка периферии (periph_config.h):
|
||||
(+) Определить SYSCLK_CORE_CLOCK_MHZ - частота ядра в МГц (например, 100)
|
||||
(+) Определить SYSCLK_Oscil_Type - тип осциллятора (RCU_Oscil_OSE или RCU_Oscil_OSI)
|
||||
(+) Определить SYSCLK_TickType - тип системного тика (SYSCLK_Tick_1us, SYSCLK_Tick_1ms и т.д.)
|
||||
1. Настройка в periph_config.h:
|
||||
(+) SYSCLK_CORE_CLOCK_MHZ - частота ядра в МГц (например, 100)
|
||||
(+) SYSCLK_Oscil_Type - источник тактирования (RCU_Oscil_OSE или RCU_Oscil_OSI)
|
||||
(+) SYSCLK_TickType - период системного тика (от SYSCLK_Tick_1us до SYSCLK_Tick_100ms)
|
||||
|
||||
2. Инициализация тактирования:
|
||||
(+) sysclk_init() — обязательный вызов в начале программы
|
||||
- Автоматически настраивает PLL для заданной частоты
|
||||
- Настраивает SysTick для генерации системных тиков
|
||||
- Обновляет SystemCoreClock
|
||||
2. Инициализация (в начале main()):
|
||||
(+) sysclk_init() - настраивает PLL, SysTick и счетчики времени
|
||||
(+) В SysTick_Handler() вызвать sysclk_irq_handler()
|
||||
|
||||
3. Работа со временем:
|
||||
(+) millis() — получение текущего времени в миллисекундах
|
||||
(+) micros() — получение текущего времени в микросекундах
|
||||
(+) sysclk_irq_handler() — обработчик прерываний SysTick (должен вызываться из SysTick_Handler)
|
||||
(+) millis() - текущее время в миллисекундах (переполнение через 49 дней)
|
||||
(+) micros() - текущее время в микросекундах (точность зависит от SYSCLK_TickType)
|
||||
|
||||
4. Система коллбеков:
|
||||
(+) SYSCLK_Set_Callback() — добавление периодического коллбека
|
||||
- Коллбеки автоматически вызываются в sysclk_irq_handler() с заданным периодом
|
||||
- Максимальное количество коллбеков: SYSCLK_NUMB_OF_CUSTOM_CALLBACKS
|
||||
4. Периодические задачи:
|
||||
(+) SYSCLK_Set_Callback(func, period_ms) - регистрация функции для периодического вызова
|
||||
(+) Максимум 16 функций, период должен быть >= периода системного тика
|
||||
|
||||
5. Настройка тактирования Периферии:
|
||||
(+) АЦП: rcu_set_clock_adc(ClkSrc, ClkMHz, state)
|
||||
- ClkSrc: источник тактирования (RCU_PeriphClk_OSEClk, RCU_PeriphClk_PLLClk и т.д.)
|
||||
- ClkMHz: желаемая частота ADC в МГц
|
||||
- state: включение/выключение тактирования
|
||||
5. Настройка тактирования периферии:
|
||||
(+) rcu_set_clock_adc(source, freq_mhz, enable) - для АЦП
|
||||
(+) Частота АЦП не должна превышать 12.5 МГц согласно datasheet
|
||||
|
||||
6. Особенности работы:
|
||||
(+) Системные тики работают на основе SysTick
|
||||
(+) Поддерживаются различные периоды тиков от 1 мкс до 100 мс
|
||||
(+) Переполнение счетчиков происходит через ~49 дней
|
||||
==============================================================================
|
||||
##### Особенности работы #####
|
||||
==============================================================================
|
||||
|
||||
- Выбор SYSCLK_TickType влияет на:
|
||||
- Точность micros() (при 1ms тике micros() дает значения с шагом 1000)
|
||||
- Нагрузку на ЦП (1us = 1М прерываний в секунду, 100ms = 10 прерываний в секунду)
|
||||
- Минимальный период коллбеков (не может быть меньше SYSCLK_TickType)
|
||||
|
||||
- При настройке PLL:
|
||||
- Драйвер автоматически подбирает делители для заданной частоты
|
||||
- Если частота недостижима - вызовется Error_Handler()
|
||||
- Всегда проверяйте supported frequencies в datasheet
|
||||
|
||||
- Коллбеки выполняются в контексте прерывания SysTick:
|
||||
- Не должны выполняться долго
|
||||
- Не должны вызывать блокирующие функции
|
||||
|
||||
@endverbatim
|
||||
******************************************************************************
|
||||
|
||||
Reference in New Issue
Block a user