Инструменты пользователя

Инструменты сайта


ob:o7:timer

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
ob:o7:timer [2017/07/26 13:46]
иван_денисов [Пример для STM32F103C8]
ob:o7:timer [2022/02/04 11:45] (текущий)
iadenisov
Строка 1: Строка 1:
 ====== Работа с таймером через прерывания ====== ====== Работа с таймером через прерывания ======
  
-====Пример для STM32F103C8====+Для работы со счетчиком времени в неблокирующем режиме предусмотрено для модуля **MobxARMv6MSTM32SysTick0** и **MobxARMv7MSTM32SysTick0** в зависимости от архитектуры ядра вашего микроконтроллера, **ARMv6** или **ARMv7** соответственно. 
 + 
 +=====Пример для STM32F103C8 (ядро ARMv7)=====
  
 <code> <code>
Строка 14: Строка 16:
    
 VAR (* секция глобальных переменных *) VAR (* секция глобальных переменных *)
- msec: INTEGER;  (* счетчик микросекунд *)+ msec: INTEGER;  (* счетчик миллисекунд *)
    
 PROCEDURE Init;  (* настройка МК *) PROCEDURE Init;  (* настройка МК *)
Строка 20: Строка 22:
  (* Настраиваем таймер на 1 мс *)  (* Настраиваем таймер на 1 мс *)
  SysTick0.Init(Sys.HCLK, 1000);  SysTick0.Init(Sys.HCLK, 1000);
- (* Настраиваем вывод A9 *)+ (* Настраиваем вывод C13 *)
  PinCfg.Configure(PinCfg.C, 13, PinCfg.outputPushPull2MHz);  PinCfg.Configure(PinCfg.C, 13, PinCfg.outputPushPull2MHz);
- (* Устанавливаем таймер микросекунд *)+ (* Устанавливаем таймер миллисекунд *)
  msec := 0;  msec := 0;
 END Init; END Init;
Строка 54: Строка 56:
 <code>^Q O7ARMv7MLinker.Link STM32F103C8 MobxSTM32F103C8Blink</code> <code>^Q O7ARMv7MLinker.Link STM32F103C8 MobxSTM32F103C8Blink</code>
  
-====Пример для STM32F030F4====+=====Пример для STM32F030F4 (ядро ARMv6)=====
  
 <code> <code>
 MODULE MobxSTM32F030F4Blink; MODULE MobxSTM32F030F4Blink;
  
-IMPORT SYSTEM,  (* модуль SYSTEM обычно выделяется красным *)+IMPORT SYSTEM,
  MCU := MicroSTM32F030, (* адреса разных регистров для STM32F030 *)  MCU := MicroSTM32F030, (* адреса разных регистров для STM32F030 *)
  ARMv6M := MicroARMv6M, (* адреса и команды общие для всех ядер ARMv6M *)  ARMv6M := MicroARMv6M, (* адреса и команды общие для всех ядер ARMv6M *)
Строка 68: Строка 70:
 (* секция глобальных переменных *) (* секция глобальных переменных *)
 VAR VAR
- msec: INTEGER;  (* счетчик микросекунд *)+ msec: INTEGER;  (* счетчик миллисекунд *)
  
  
Строка 77: Строка 79:
  (* Настраиваем вывод A9 *)  (* Настраиваем вывод A9 *)
  PinCfg.ConfigureOutput(PinCfg.A, 9, PinCfg.noPull, PinCfg.pushPullMedium);  PinCfg.ConfigureOutput(PinCfg.A, 9, PinCfg.noPull, PinCfg.pushPullMedium);
- (* Устанавливаем таймер микросекунд *)+ (* Устанавливаем таймер миллисекунд *)
  msec := 0;  msec := 0;
 END Init; END Init;
Строка 104: Строка 106:
 END MobxSTM32F030F4Blink.</code> END MobxSTM32F030F4Blink.</code>
  
-Компилируем модуль My/Files/Blink.odc, а также перед этим таймер.+Компилируем модуль Mobx/Files/STM32F030F4Blink.odc, а также перед этим таймер.
 <code>^Q O7ARMv6MP.Compile MobxARMv6MSTM32SysTick0 MobxSTM32F030F4Blink</code> <code>^Q O7ARMv6MP.Compile MobxARMv6MSTM32SysTick0 MobxSTM32F030F4Blink</code>
  
Строка 110: Строка 112:
 <code>^Q O7ARMv6MLinker.Link STM32F030F4 MobxSTM32F030F4Blink</code> <code>^Q O7ARMv6MLinker.Link STM32F030F4 MobxSTM32F030F4Blink</code>
  
 +
 +
 +Про то, как прошить полученным файлом микроконтроллер, читайте в статье «[[ob:o7:stm32flash|Прошивка микроконтроллера через UART]]».
 +
 +
 +----
 +
 +Автор заметки: [[http://iadenisov.ru|И.А. Денисов]]
  
ob/o7/timer.1501065986.txt.gz · Последнее изменение: 2020/10/29 07:08 (внешнее изменение)