Запуск RTC и настройка будильника: различия между версиями
Андрей (обсуждение | вклад) (Новая страница: «В примере будут записаны данные в основной массив OTP, тестовый столбец и тестовую строку,...») |
Андрей (обсуждение | вклад) Нет описания правки |
||
Строка 1: | Строка 1: | ||
В примере будут | В примере будут запущен таймер RTC и настроен будильник. | ||
== Работа с конфигуратором (В разработке) == | == Работа с конфигуратором (В разработке) == | ||
Для начала настроем в конфигураторе тактирование mik32, например, от внешнего кварца 32МГц. Затем настроем делители шины. Так как | Для начала настроем в конфигураторе тактирование mik32, например, от внешнего кварца 32МГц. Затем настроем делители шины. Так как RTC тактируется от шины APB_M_CLK, то зададим делители AHB_DIV и APB_M_DIV. В данном примере оставим делители по умолчанию. В итоге вкладка с тактированием должна выглядеть так: | ||
(Картинка тактирования из конфигуратора. В работе) | (Картинка тактирования из конфигуратора. В работе) | ||
Затем перейдем к настройке самого | Затем перейдем к настройке самого RTC. Для этого откроем вкладку RTC и нажмем включить. | ||
[[Файл:Рисунок 1 - Настройки RTC в конфигураторе.png|мини|Рисунок 1 - Настройки RTC в конфигураторе]] | |||
Выберем тактирование от "внешнего осциллятора OSC32K". Во вкладке дата и время RTC нажмем кнопку взять дату с компьютера. Все поля автоматически заполнятся. При заполнении полей вручную следует вводить корректную дату. | |||
Следующая вкладка "регистры RTC". Здесь задаются значения регистров общего назначения REG0-REG15. Они могут использоваться в произвольных целях. Регистры располагаются в батарейном домене и сохраняют свое значение при отключении системного питания и при внешнем сбросе. В данном примере в них ничего записываться не будет. | |||
[[Файл:Рисунок - Настройки будильника RTC в конфигураторе.png|мини|Рисунок - Настройки будильника RTC в конфигураторе]] | |||
В самом начале настроек нажмем галочку "включить будильник". После этого появится еще одна вкладка с настройками даты и времени будильника. Запишем все поля будильника как во времени и дате RTC, но секунды напишем на 5 больше. | |||
В итоге настройки | В итоге настройки RTC в конфигураторе должны выглядеть как на рисунках. | ||
(Объяснение работы с конфигуратором. В разработке) | (Объяснение работы с конфигуратором. В разработке) | ||
Нажимаем кнопку генерации. В итоге у нас появится проект для PlatformIo. Далее работа идет в visual studio code. | Нажимаем кнопку сохранения и генерации. В итоге у нас появится проект для PlatformIo. Далее работа идет в visual studio code. | ||
== Использование библиотеки HAL_RTC == | == Использование библиотеки HAL_RTC == | ||
В сгенерированном проекте в файле main.c должна быть функция OTP_Init, в которой будут заданы настройки для OTP. Выглядит она так: | В сгенерированном проекте в файле main.c должна быть функция OTP_Init, в которой будут заданы настройки для OTP. Выглядит она так: |
Версия от 12:01, 15 февраля 2023
В примере будут запущен таймер RTC и настроен будильник.
Работа с конфигуратором (В разработке)
Для начала настроем в конфигураторе тактирование mik32, например, от внешнего кварца 32МГц. Затем настроем делители шины. Так как RTC тактируется от шины APB_M_CLK, то зададим делители AHB_DIV и APB_M_DIV. В данном примере оставим делители по умолчанию. В итоге вкладка с тактированием должна выглядеть так:
(Картинка тактирования из конфигуратора. В работе)
Затем перейдем к настройке самого RTC. Для этого откроем вкладку RTC и нажмем включить.
Выберем тактирование от "внешнего осциллятора OSC32K". Во вкладке дата и время RTC нажмем кнопку взять дату с компьютера. Все поля автоматически заполнятся. При заполнении полей вручную следует вводить корректную дату.
Следующая вкладка "регистры RTC". Здесь задаются значения регистров общего назначения REG0-REG15. Они могут использоваться в произвольных целях. Регистры располагаются в батарейном домене и сохраняют свое значение при отключении системного питания и при внешнем сбросе. В данном примере в них ничего записываться не будет.
В самом начале настроек нажмем галочку "включить будильник". После этого появится еще одна вкладка с настройками даты и времени будильника. Запишем все поля будильника как во времени и дате RTC, но секунды напишем на 5 больше.
В итоге настройки RTC в конфигураторе должны выглядеть как на рисунках.
(Объяснение работы с конфигуратором. В разработке)
Нажимаем кнопку сохранения и генерации. В итоге у нас появится проект для PlatformIo. Далее работа идет в visual studio code.
Использование библиотеки HAL_RTC
В сгенерированном проекте в файле main.c должна быть функция OTP_Init, в которой будут заданы настройки для OTP. Выглядит она так: