Встроенные процедуры

Компилятор mikroPascal PRO для ARM содержит набор полезных встроенных служебных функций. Встроенные функции не имеют особых требований к использованию. Вы можете использовать их в любой части вашего проекта.

Процедуры Delay_us и Delay_ms реализуются по типу “inline”, то есть код генерируется на месте вызова, поэтому вызов не противоречит требованиям nested call limit.

Процедуры Vdelay_ms, Vdelay_advanced_ms, Delay_Cyc, Get_Fosc_kHz и Get_Fosc_Per_Cyc - действительные процедуры языка Pascal. Их исходные тексты можно найти в __Lib_Delays.mpas файле, расположенном в папке uses компилятора.

Lo

Прототип

function Lo(Argument: byte..real): byte;

Описание

Функция возвращает младший байт аргумента. Функция не интерпретирует битовые шаблоны аргумента - она просто возвращает 8 бит, найденных в регистре.

Это «встроенная» процедура, код генерируется вместо вызова, поэтому вызов не учитывает ограничениям вложенных вызовов.

Параметры
  • Argument: Входное значение. Может быть 16-битным или 32-битным значением.
Возвращает

Самые младшие 8 бит (байт) Argument, биты 7..0.

Требует

Аргументы должны быть переменными скалярного типа (т. е. Арифметических типов и указателей).

Пример
d := 0x12345678; 	
tmp := Lo(d);  // Equals 0x78

Lo(d) := 0xAA; // d equals 0x123456AA
Примечания

Нет.

Hi

Прототип

function Hi(Argument: word..real): byte;

Описание

Функция возвращает следующий за младшим байт аргумента Argument. Функция не интерпретирует битовые шаблоны Argument она просто возвращает 8 бит, найденные в регистре.

Это “inline” процедура; Код создается в месте вызова, поэтому вызов не противоречитограничениям вложенных вызовов.

Параметры
  • Argument: Входное значение. Может быть 16-битным или 32-битным значением.
Возвращает

Возвращает следующий за младшим байт аргумента Argument, биты 8..15.

Требует

Аргументы должны быть переменными скалярного типа (т. Е. Арифметических типов и указателей).

Пример
d := 0x12345678; 	
tmp := Hi(d);  // Equals 0x56

Hi(d) := 0xAA; // d equals 0x1234AA78
Примечания

Нет.

Higher

Прототип

function Higher(Argument : dword..real) : byte;

Описание

Функция возвращает следующий за старшим байт арумента Argument. Функция не интерпретирует битовые шаблоны Argument она просто возвращает 8 бит, найденные в регистре.

Это “inline” процедура; Код создается в месте вызова, поэтому вызов не противоречит ограничениям вложенных вызовов.

Параметры
  • Argument: Входное значение. Может быть dword, longint или real type.
Возвращает

Возвращает следующий за старшим бай аргумента Argument, биты 16..23.

Требует

Аргументы должны быть переменными скалярного типа (т. е. Арифметических типов и указателей).

Пример
d := 0x12345678; 	
tmp := Higher(d);  // Equals 0x34

Higher(d) := 0xAA; // d equals 0x12AA5678
Примечания

Нет.

Highest

Прототип

function Highest(Argument : dword..real) : byte;

Описание

Функция возвращает самый старший байт Argument. Функция не интерпретирует битовые шаблоны Argument она просто возвращает 8 бит, найденные в регистре.

Это “inline” процедура; Код создается в месте вызова, поэтому вызов не противоречит ограничениям вложенных вызовов.

Параметры
  • Argument:Входное значение. Может быть dword, longint или реального типа.
Возвращает

Возвращает самый старший байт аргумента Argument, биты 24..31.

Требует

Аргументы должны быть переменными скалярного типа (т. Е. Арифметических типов и указателей).

Пример
d := 0x12345678; 	
tmp := Highest(d);  // Equals 0x12

Highest(d) := 0xAA; // d equals 0xAA345678
Примечания

Нет.

LoWord

Прототип

function LoWord(Argument : word..real) : word;

Описание

Функция возвращает младшее слово аргумента Argument. Функция не интерпретирует битовые шаблоны Argument она просто возвращает 16 бит, которые находятся в регистре.

Параметры
  • Argument:Входное значение. Может быть типа word.real.
Возвращает

Младшее слово аргумента Argument, биты 15..0.

Требует

Ничего.

Пример
d := 0x12345678; 	
tmp := LoWord(d);  // Equals 0x5678

LoWord(d) := 0xAAAA; // d equals 0x1234AAAA
Примечания

Нет.

HiWord

Прототип

function HiWord(Argument : dword..real) : word;

Описание

Функция возвращает старшее слово аргумента Argument. Функция не интерпретирует битовые шаблоны Argument она просто возвращает 16 бит, которые находятся в регистре.

Параметры
  • Argument:Входное значение. Может быть dword, longint или реального типа.
Возвращает

Старшее слово аргумента, биты 31..16.

Требует

Ничего.

Пример
d := 0x12345678; 	
tmp := HiWord(d);  // Equals 0x1234

HiWord(d) := 0xAAAA; // d equals 0xAAAA5678
Примечания

Нет.

HigherWord

Прототип

function HigherWord(Argument : uint64..extended) : word;

Описание

Функция возвращает высшее слово аргумента Argument. Функция не интерпретирует битовые шаблоны Argument она просто возвращает 16 бит, которые находятся в регистре.

Параметры
  • Argument:Входное значение. Может быть из int64, uint64 или расширенного типа.
Возвращает

Высшее слово аргумента Argument, биты 47..32.

Требует

Ничего.

Пример
d := 0x1122334455667788;
tmp := HigherWord(d);  // Equals 0x33344

HigherWord(d) := 0xAAAA; // d equals 0x1122AAAA55667788
Примечания

Нет.

HighestWord

Прототип

function HighestWord(Argument : uint64..extended) : word;

Описание

Функция возвращает наивысшее слово аргумента Argument. Функция не интерпретирует битовые шаблоны Argument она просто возвращает 16 бит, которые находятся в регистре.

Параметры
  • Argument: Входное значение. Может быть из int64, uint64 или расширенного типа.
Возвращает

Наивысшее слово аргумента Argument, биты 63..48.

Требует

Ничего.

Пример
d := 0x1122334455667788;
tmp := HighestWord(d);  // Equals 0x1122

HighestWord(d) := 0xAAAA; // d equals 0xAAAA334455667788
Примечания

Нет.

LoDword

Прототип

function LoDword(Argument : dword..extended) : dword;

Описание

Функция возвращает младшее двойное слово аргумента Argument. Функция не интерпретирует битовые шаблоны Argument она просто возвращает 32 бит, которые находятся в регистре.

Параметры
  • Argument:Входное значение. Может быть 32-битного или 64-битного типа.
Возвращает

Младшее двойное слово аргумента Argument, биты 31..0.

Требует

Ничего.

Пример
d := 0x1122334455667788;
tmp := LoDword(d);  // Equals 0x55667788

LoDword(d) := 0xAAAAAAAA; // d equals 0x11223344AAAAAAAA
Примечания

Нет.

HiDword

Прототип

function HiDword(Argument : uint64..extended) : dword;

Описание

Функция возвращает старшее двойное слово аргумента Argument. Функция не интерпретирует битовые шаблоны Argument она просто возвращает 32 бит, которые находятся в регистре.

Параметры
  • Argument: Входное значение. Может быть из int64, uint64 или расширенного типа.
Возвращает

Старшее двойное слово аргумента Argument, биты 63..32.

Требует

Ничего.

Пример
d := 0x1122334455667788;
tmp := HiDword(d);  // Equals 0x11223344

HiDword(d) := 0xAAAAAAAA; // d equals 0xAAAAAAAA55667788
Примечания

Нет.

Inc

Прототип

procedure Inc(var par : longint);

Описание

Увеличивает par параметров на 1.

Параметры
  • par: значение, которое будет увеличено на 1
Возвращает

Ничего.

Требует

Ничего.

Пример
p := 4;
Inc(p);  // p is now 5
Примечания

Нет.

Dec

Прототип

procedure Dec(var par : longint);

Описание

Уменьшает параметр par на 1.

Параметры
  • par: значение, которое будет уменьшено на 1
Возвращает

Ничего.

Требует

Ничего.

Пример
p := 4;
Dec(p);  // p is now 3
Примечания

Нет.

Chr

Прототип

function Chr(code_ : byte) : char;

Описание

Функция dозвращает символ, связанный с указанным символьным кодом code_. Номера от 0 до 31 являются стандартными непечатаемыми кодами ASCII.

Это «inline» процедура; код создается в месте вызова.

Параметры
  • code_: входной символ
Возвращает

Возвращает символ, связанный с указанным символьным кодом code_.

Требует

Ничего.

Пример
c := Chr(10);  // Возвращает the linefeed character
Примечания

Нет.

Ord

Прототип

function Ord(const character : char) : byte;

Описание

Функция dозвращает ASCII-код символа.

Это «inline» процедура; код создается в месте вызова.

Параметры
  • character: входной символ
Возвращает

ASCII-код символа.

Требует

Ничего.

Пример
c := Ord('A');  // Возвращает 65
Примечания

Нет.

SetBit

Прототип

procedure SetBit(var register_ : word; rbit : byte);

Описание

Функция устанавливает бит rbit регистра. Параметр rbit должен быть переменным или литералом со значением 0..15. См. также Предопределенные объекты и константы для получения дополнительной информации о идентификаторах регистров.

Это «inline» процедура; код создается в месте вызова.

Параметры
  • register_: желаемый регистр
  • rbit: желаемый бит
Возвращает

Ничего.

Требует

Ничего.

Пример
SetBit(GPIO_PORTB, 2);  // Set GPIO_PORTB.B2
Примечания

Нет.

ClearBit

Прототип

procedure ClearBit(var register_ : byte; rbit : byte);

Описание

Функция очищает бит rbit регистра. Параметр rbit должен быть переменным или литералом со значением 0..15. См. также Предопределенные объекты и константы для получения дополнительной информации о идентификаторах регистров.

Это “inline” процедура; Код создается в месте вызова, поэтому вызов не противоречит ограничениям вложенных вызовов.

Параметры
  • register_: желаемый регистр
  • rbit: желаемый бит
Возвращает

Ничего.

Требует

Ничего.

Пример
ClearBit(GPIO_PORTC, 7);  // Clear GPIO_PORTC.7
Примечания

Нет.

TestBit

Прототип

function TestBit(register_, rbit : byte) : byte;

Описание

Функциональные тесты, если бит битбит реестра установлен. Если установлено, функция Возвращает 1, в противном случае возвращает 0. Параметр rbit должен быть переменной или литералом со значением 0..15. См. также Предопределенные объекты и константы для получения дополнительной информации о идентификаторах регистров.

Это “inline” процедура; Код создается в месте вызова, поэтому вызов не противоречит ограничениям вложенных вызовов.

Параметры
  • register_: desired register
  • rbit: desired bit
Возвращает

Если бит установлен, возвращается 1, иначе возвращает 0.

Требует

Ничего.

Пример
flag := TestBit(GPIO_PORTE, 2);  // 1 if RE2 is set, otherwise 0
Примечания

Нет.

Delay_us

Прототип

procedure Delay_us(Time_In_us: dword);

Описание

Создает задержку программного обеспечения в течение микросекунд Time_In_us.

Это “inline” процедура; Код создается в месте вызова, поэтому вызов не противоречит ограничениям вложенных вызовов.

Параметры
  • Time_In_us: время задержки в микросекундах. Допустимые значения: постоянные значения, диапазон применимых констант зависит от частоты генератора
Возвращает

Ничего.

Требует

Ничего.

Пример
Delay_us(10);  // Ten microseconds pause 
Примечания

Нет.

Delay_ms

Прототип

procedure Delay_ms(Time_In_ms: dword);

Описание

Создает задержку программного обеспечения в длительности миллисекунд Time_In_ms.

Это “inline” процедура; Код создается в месте вызова, поэтому вызов не противоречит ограничениям вложенных вызовов.

Параметры
  • Time_In_ms:время задержки в миллисекундах. Допустимые значения: постоянные значения, диапазон применимых констант зависит от частоты генератора
Возвращает

Ничего.

Требует

Ничего.

Пример
Delay_ms(1000);  // One second pause 
Примечания

Для генерации задержек с переменной в качестве входных параметров используйте функцию Vdelay_ms.

VDelay_ms

Прототип

procedure VDelay_ms(Time_ms : word);

Описание

Создает задержку программного обеспечения в длительности миллисекунд Time_ms. Сгенерированная задержка не такая точная, как задержка, созданная функцией Delay_ms.

Параметры
  • Time_ms: время задержки в миллисекундах
Возвращает

Ничего.

Требует

Ничего.

Пример
var pause : word;
...
VDelay_ms(pause);  // ~ one second pause
Примечания

    Нет.

VDelay_advanced_ms

Прототип

procedure VDelay_advanced_ms(time_ms, Current_Fosc_kHz: word);

Описание

Создает программную задержку в течение времени_in_ms миллисекунды (переменную) для данной частоты генератора. Сгенерированная задержка не такая точная, как задержка, созданная функцией Delay_ms.

Обратите внимание, что Vdelay_ms - это функция библиотеки, а не встроенная процедура; он представлен в этом разделе для удобства.

Параметры
  • time_ms:время задержки в миллисекундах
  • Current_Fosc_kHz:частота в кГц
Возвращает

Ничего.

Требует

Ничего.

Пример
pause := 1000;
fosc := 10000;

VDelay_advanced_ms(pause, fosc);  // Generates approximately one second pause, for a oscillator frequency of 10 MHz
Примечания

Нет.

Delay_Cyc

Прототип

procedure Delay_Cyc(cycles_div_by_10 : dword);

Описание

Создает задержку на основе часов MCU.

Параметры
  • cycles_div_by_10: количество циклов, деленное на 10
Возвращает

Ничего.

Требует

Ничего.

Пример
Delay_Cyc(10);  // 1 cycles pause
Примечания
  • Delay_Cyc - это библиотечная функция, а не встроенная процедура; он представлен в этом разделе для удобства.
  • Из-за особенностей STM32 F7 фактическая задержка, вычисленная в окне секундомера в программном симуляторе, может быть не такой точной, как та, которая выполняется на аппаратном уровне.

Clock_kHz

Прототип

function Clock_kHz() : longint;

Описание

Возвращает часы устройства в кГц, округленные до ближайшего целого.

Это «встроенная» процедура; код создается в месте вызова.

Параметры

Нет.

Возвращает

Часы устройства в кГц, округленные до ближайшего целого.

Требует

Ничего.

Пример
clk := Clock_kHz();
Примечания

Нет.

Clock_MHz

Прототип

function Clock_MHz() : word;

Описание

Возвращает часы устройства в МГц, округленные до ближайшего целого.

Это «встроенная» процедура; код создается в месте вызова.

Параметры

Нет.

Возвращает

Часы устройства в МГц, округленные до ближайшего целого.

Требует

Ничего.

Пример
clk := Clock_MHz();
Примечания

Нет.

Get_Fosc_kHz

Прототип

function Get_Fosc_kHz() : longint;

Описание

Функция возвращает часы устройства в кГц, округленные до ближайшего целого.

Параметры

Нет.

Возвращает

Часы устройства в кГц.

Требует

Ничего.

Пример
clk := Get_Fosc_kHz();
Примечания

Get_Fosc_kHz - это библиотечная функция, а не встроенная процедура; он представлен в этом разделе для удобства.

Get_Fosc_Per_Cyc

Прототип

function Get_Fosc_Per_Cyc() : word;

Описание

Функция возвращает часы устройства за цикл, округленные до ближайшего целого.

Обратите внимание: Get_Fosc_Per_Cyc - это функция библиотеки, а не встроенная процедура; он представлен в этом разделе для удобства.

Параметры

Нет.

Возвращает

Часы устройства за цикл, округленные до ближайшего целого.

Требует

Ничего.

Пример
var clk_per_cyc : word;
...
clk_per_cyc := Get_Fosc_Per_Cyc();
Примечания

Нет.

SystemReset

Прототип

procedure SystemReset();

Описание

Эта функция выполняет программный сброс всего устройства. Процессор и все периферийные устройства сбрасываются, и все регистры устройств возвращаются к значениям по умолчанию
(за исключением регистра причины сброса, который будет поддерживать текущее значение, но также установлен бит сброса программного обеспечения).

Параметры

Нет.

Возвращает

Ничего.

Требует

Ничего.

Пример
SystemReset();
Примечания

Нет.

DisableContextSaving

Прототип

procedure DisableContextSaving();

Описание

Используйте DisableContextSaving (), чтобы дать команду компилятору не выполнять автоматическую переключение контекста. Это означает, что никакие регистры не будут сохранены / восстановлены компилятором при входе / выходе из процедуры обслуживания прерываний. Это позволяет пользователю вручную записывать код для сохранения регистров при входе и восстанавливать их перед выходом из прерывания.

Параметры

Нет.

Возвращает

Ничего.

Требует

Эта процедура должна вызваться из основного модуля.

Пример
DisableContextSaving(); // instruct the compiler not to automatically perform context-switching
Примечания

Нет.

SetFuncCall

Прототип

procedure SetFuncCall(FuncName: string);

Описание

Если компоновщик встречает косвенный вызов функции (указателем на функцию), он предполагает, что любая подпрограмма, адрес которой был взят в любом месте программы, может быть вызван в этой точке, если это Прототип соответствует объявлению указателя.

Используйте директиву SetFuncCall внутри обычного тела, чтобы проинструктировать компоновщика, какие подпрограммы можно вызвать косвенно из этой процедуры:
SetFunCCall (called_func[, ,...])

Подпрограммы, указанные в списке аргументов SetFunCCall, будут связаны, если подпрограмма, содержащая директиву SetFunCCall, вызывается в коде независимо от того, был ли какой-либо из них явно вызван или нет.

Таким образом, размещение директивы SetFuncCall в главном будет всегда ссылаться на указанные подпрограммы компилятора.

Параметры
  • FuncName: имя функции
Возвращает

Ничего.

Требует

Ничего.

Пример:
procedure first(p, q: byte);
begin
...
  SetFuncCall(second); // let linker know that we will call the routine 'second'
...
end
Примечания Директива SetFuncCall может помочь компоновщику оптимизировать распределение фреймов функций в скомпилированном стеке.

SetOrg

Прототип

procedure SetOrg(RoutineName: string; address: longint);

Описание

Use the SetOrg(); чтобы указать начальный адрес подпрограммы в ПЗУ.

Параметры
  • RoutineName: имя процедуры
  • address: начальный адрес
Возвращает

Ничего.

Требует

Эта процедура должна вызваться из основного модуля.

Пример
SetOrg(UART1_Write, 0x1234);
Примечания

Нет.

GetDateTime

Прототип

function GetDateTime() : string;

Описание

Use the GetDateTime() получить дату и время компиляции как строку в коде.

Параметры

Нет.

Возвращает

Строка с датой и временем, указывающая когда эта подпрограмма была скомпилирована.

Требует

Ничего.

Пример
str := GetDateTime();
Примечания

Нет.

DoGetDateTime

Прототип

function DoGetDateTime() : string;

Описание

Use the DoGetDateTime() получить дату и время компиляции как строку в вашем коде.

Параметры

Нет.

Возвращает

Строка с датой и временем, указывающая когда эта подпрограмма была скомпилирована.

Требует

Ничего.

Пример
str := DoGetDateTime();
Примечания

Нет.

GetVersion

Прототип

function GetVersion() : string;

Описание

Use the GetVersion(); для получения текущей версии компилятора.

Параметры

Нет.

Возвращает

Строка с текущей версией компилятора.

Требует

Ничего.

Пример
str := GetVersion(); // for Пример, str will take the value of '8.2.1.6''
Примечания

Нет.

DoGetVersion

Прототип

function DoGetVersion() : string;

Описание

Use the DoGetVersion(); для получения текущей версии компилятора.

Параметры

Нет.

Возвращает

Строка с текущей версией компилятора.

Требует

Ничего.

Пример
str := DoGetVersion(); // for Пример, str will take the value of '8.2.1.6''
Примечания

Нет.

CPU_REG_GET

Прототип

function CPU_REG_GET(const reg: TCPUREG): dword;

Описание

Функция возвращает значение регистра ядра, основываясь на введенном аргументе.

Параметры

Параметр должен быть константой из списка встроенных констант, который можно найти в верхней части этой страницы.

Возвращает

Значение основного регистра.

Требует

Ничего.

Пример
var register_value : dword;

register_value := CPU_REG_GET(CPU_PRIMASK);
Примечания

Нет.

CPU_REG_SET

Прототип

procedure CPU_REG_SET(const register: TCPUREG; value: dword);

Описание

Функция задает значение регистра ядра, основываясь на аргументе регистра.

Параметры
  • register: Регистр, должен быть константой из списка встроенных констант, который можно найти в верхней части этой страницы.
  • value: Значение регистра.
Возвращает

Ничего.

Требует

Ничего.

Пример
CPU_REG_SET(CPU_PRIMASK, 1);
Примечания

Нет.

RestoreInterrupts

Прототип

procedure RestoreInterrupts(primask : dword);

Описание

Восстанавливает (включает или отключает) прерывания ядра на основе последнего значения регистра PRIMASK, заданного как рутинный параметр.

Параметры

Нет.

Возвращает

Возвращает значение, сохраненное в регистре PRIMASK, до того, как прерывания были включены / отключены.

Требует

Ничего.

Пример
RestoreInterrupts(CPU_PRIMASK);
Примечания

Нет.

EnableInterrupts

Прототип

function EnableInterrupts() : dword;

Описание

Эта функция позволяет прерыванию процессора и позволяет процессору реагировать на прерывания.
Это не влияет на набор прерываний, включенных в контроллере прерываний; он просто блокирует одно прерывание от контроллера к процессору.

Параметры

Нет.

Возвращает

Возвращает значение, сохраненное в регистре PRIMASK.

Требует

Ничего.

Пример
status_value := EnableInterrupts();
Примечания

Нет.

DisableInterrupts

Прототип

function DisableInterrupts() : dword;

Описание

Эта функция отключает прерывание процессора и предотвращает получение процессором прерываний.
Это не влияет на набор прерываний, включенных в контроллере прерываний; он просто блокирует одно прерывание от контроллера к процессору.

Параметры

Возвращает значение, сохраненное в регистре PRIMASK.

Возвращает

Ничего.

Требует

Ничего.

Пример
status_value := DisableInterrupts();
Примечания

Нет.

NVIC_IntEnable

Прототип

procedure NVIC_IntEnable(const ivt: dword);

Описание

Эта процедура позволяет использовать вектор прерывания. Указанный вектор прерывания включен в контроллере прерываний.
Другая возможность прерывания (например, на периферийном уровне) не подвержена этой процедуре.

Параметры
  • ivt: - указывает, что вектор прерывания должен быть включен.
Возвращает

Ничего.

Требует

Ничего.

Пример
NVIC_IntEnable(IVT_INT_TIMER0A);
Примечания

Список доступных векторов прерываний можно увидеть в Code Assistant, набрав IVT и нажав Ctrl + Space,
или в файле определения MCU, который можно открыть, нажав Ctrl + Alt + D.

NVIC_IntDisable

Прототип

procedure NVIC_IntDisable(const ivt: dword);

Описание

Эта процедура отключает вектор прерывания. Указанный вектор прерывания отключен в контроллере прерываний.
Другая возможность прерывания (например, на периферийном уровне) не влияет на эту функцию.

Параметры
  • ivt: - указывает, что вектор прерывания должен быть включен.
Возвращает

Ничего.

Требует

Ничего.

Пример
NVIC_IntDisable(IVT_INT_TIMER0A);
Примечания

Список доступных векторов прерываний можно увидеть в Code Assistant, набрав IVT и нажав Ctrl + Space,
или в файле определения MCU, который можно открыть, нажав Ctrl + Alt + D.

NVIC_SetIntPriority

Прототип

procedure NVIC_SetIntPriority(ivt : byte; priority : byte);

Описание

Эта процедура устанавливает приоритет для данного вектора прерывания.

Параметры
  • ivt: указывает, что вектор прерывания должен быть включен.
  • ivt: указывает приоритет прерывания. Допустимые значения:
    Value Описание
    _NVIC_INT_PRIORITY_LVL0 Уровень приоритета прерывания 0.
    _NVIC_INT_PRIORITY_LVL1 Уровень приоритета прерывания 1.
    _NVIC_INT_PRIORITY_LVL2 Уровень приоритета прерывания 2.
    _NVIC_INT_PRIORITY_LVL3 Уровень приоритета прерывания 3.
    _NVIC_INT_PRIORITY_LVL4 Уровень приоритета прерывания 4.
    _NVIC_INT_PRIORITY_LVL5 Уровень приоритета прерывания 5.
    _NVIC_INT_PRIORITY_LVL6 Уровень приоритета прерывания 6.
    _NVIC_INT_PRIORITY_LVL7 Уровень приоритета прерывания 7.
    _NVIC_INT_PRIORITY_LVL8 Уровень приоритета прерывания 8.
    _NVIC_INT_PRIORITY_LVL9 Уровень приоритета прерывания 9.
    _NVIC_INT_PRIORITY_LVL10 Уровень приоритета прерывания 10.
    _NVIC_INT_PRIORITY_LVL11 Уровень приоритета прерывания 11.
    _NVIC_INT_PRIORITY_LVL12 Уровень приоритета прерывания 12.
    _NVIC_INT_PRIORITY_LVL13 Уровень приоритета прерывания 13.
    _NVIC_INT_PRIORITY_LVL14 Уровень приоритета прерывания 14.
    _NVIC_INT_PRIORITY_LVL15 Уровень приоритета прерывания 15.
Возвращает

Ничего.

Требует

Ничего.

Пример
NVIC_SetIntPriority(IVT_INT_TIMER0A, _NVIC_INT_PRIORITY_LVL1);
Примечания

Список доступных векторов прерываний можно увидеть в Code Assistant, набрав IVT и нажав Ctrl + Space,
или в файле определения MCU, который можно открыть, нажав Ctrl + Alt + D.

New

Прототип

procedure New(var Ptr : pointer);

Описание

Выделяет блок памяти из кучи памяти, заботясь о выравнивании. Рекомендуется использовать эту процедуру вместо GetMem.

Параметры
  • Ptr: переменная любого типа указателя, указывающая на объект, который должен быть выделен.
Возвращает

Возвращает указатель на блок памяти, выделенный функцией; В противном случае 0 (свободные блоки памяти не являются достаточно большими).

Требует

Ничего.

Пример

Примечания

Нет.

Dispose

Прототип

procedure Dispose(var Ptr : pointer);

Описание

Выделяет блок памяти из кучи памяти, на который ссылается Ptr и возвращает свою память в кучу.

Параметры
  • Ptr: переменная любого типа указателя, ранее назначенного процедурой New.
Возвращает

Требует

Ничего.

Пример

Примечания

После вызова этой подпрограммы значение Ptr равно nil (0) (не назначен указатель).

CS_GetClocksFrequency

Прототип

procedure CS_GetClocksFrequency(CS_Clocks : ^CS_ClocksTypeDef);

Описание

Эта функция получает частоты для ACLK, HSCLK, MCLK и SMCLK.

Параметры
  • CS_Clocks: указатель на структуру часов:
    type CS_ClocksTypeDef = record
      ACLK_Frequency : dword;   // ACLK clock frequency   in Hz
      MCLK_Frequency : dword;   // MCLK clock frequency   in Hz
      HSMCLK_Frequency : dword; // HSMCLK clock frequency in Hz
      SMCLK_Frequency : dword;  // SMCLK clock frequency  in Hz
    end;
    
Возвращает

Ничего.

Требует

Ничего.

Примечания

Нет.

CS_RegisterExternalClockFrequency

Прототип

procedure CS_RegisterExternalClockFrequency(lfxtFrequency : dword; hfxtFrequency : dword);

Описание

Эта функция устанавливает внешний источник синхронизации.

Параметры
  • lfxtFrequency: lfxt тактовая частота.
  • hfxtFrequency: hfxt тактовая частота.
Возвращает

Ничего.

Требует

Ничего.

Примечания

Эта функция должна вызываться, если мы хотим использовать внешние часы в качестве источников для ACLK, MCLK, HSMCLK, SMCLK часов.

Core Registers
CPU_APSR CPU_IAPSR CPU_EAPSR CPU_XPSR CPU_IPSR CPU_EPSR CPU_IEPSR
CPU_MSP CPU_PSP CPU_PRIMASK CPU_BASEPRI CPU_BASEPRI CPU_BASEPRI_MAX CPU_CONTROL