Mikropascal Pro For Pic Учебник

Mikropascal Pro For Pic Учебник

Mikropascal Pro For Pic Учебник 3,7/5 1048votes

Особенности языка. На самом деле, о нем достаточно знать это. Введение. При освоении нового компилятора уже знакомого языка, особенно под новую систему, возникает вопрос — а чем оно отличается от уже знакомого? Этот вопрос, применительно к компилятору mikro. Pascal for AVR (m. P) фирмы mikro. Elektronika я и попробую осветить.

Mikropascal Pro For Pic Учебник

Возможности языка. Язык представляет собой вполне обычный паскаль, без поддержки ООП. Из типов данных поддерживаются только базовые, указатели, строки, массивы и записи (они же структуры).

Перечислений, наборов и объединений нет, а жаль — они вполне полезны и на МК. Для указателей поддерживается указательная арифметика, хотя хитрые выражения с ее использованием компилятор часто отказывается компилировать.

Выходом послужил найденный “mikroPascal PRO for ARM” от MikroElektronika. Если честно, я уже работал с “mikroPascal PRO for PIC” . Этот вопрос, применительно к компилятору mikroPascal for AVR (mP) фирмы mikroElektronika я. Скачать MikroC PRO for AVR 1.45: http:// Скачать MikroBasic PRO for PIC 3.2: http://depositfiles.com/ru/files/i4vf8izju. Так или иначе, сделав очередной проект в MikroC, я благополучно забыл про PIC'и и думал, что уже никогда к ним не вернусь.

Также, из- за ограниченной памяти, отсутствует поддержка рекурсии (хотя все функции реентерабельны). Такие файлы расположены в каталоге \\defs и подключаются автоматически ко всем файлам в проекте (примерно как модуль System в Delphi). Из особенностей стоит отметить только префиксы «0x» для 1. Строковые литералы представлены в виде ASCIIZ, пустая строка состоит из одного терминирующего нуля. Синтаксически соответсвует коротким строкам, индексация с нуля, неявно добавляется один элемент для хранения завершающего нуля. Пустая строка хранится как одиночный NULL. При работе со строками требуется определенная осторожность, чтобы не выйти за пределы и не затереть завершающий ноль.

Кстати, вышла 5-ая версия, демка выдает 4 кБ кода, однако. Программа mikroPascal - мощная среда разработки приложений на. Приложение поддерживает шесть архитектур контроллеров: PIC (более 485 . Современная среда разработки mikroC для программирования. CAD-софт PCB-софт Черчение схем Микроконтроллеры Расчёты Измерения Полезный софт. Справочник МК. Справочник МК PIC Справочник МК AVR .

Mikropascal Pro For Pic Учебник

S: string? Многомерные массивы не поддерживаются, но могут быть объявлены как массивы массивов. Записи могут объявляться только как описания типов. A = array. Вообще, кроме перечисленных есть еще EEPROM, но в m.

P к нему нет прямого доступа, только через библиотечные функции (встроенные или собственные). Для размещения данных доступны пространства РОН и ОЗУ. Здесь можно располагать только константы. ОЗУ. По умолчанию все переменные располагаются в ней. РОН. К этой области памяти наиболее быстрый доступ, но она ограничена, поэтому при нехватке регистров переменная со спецификатором rx может оказаться в ОЗУ.

Нужны, как правило, для объявления регистров. Например: DDRA: byte; absolute 0x. A; io; sfr; sfr: Используется в сочетании с спецификаторами rx, io, data для доступа к регистрам специального назначения. Про отличие — ниже. Программа Для Создания Флеш Анимации Для Сайта здесь.

У спецификаторов sfr и register есть одна особенность. Компилятор m. P компилирует не непосредственно в машинный код, а в ассемблерный листинг, который затем транслируется ассемблером в машинный код. Поскольку в ассемблере все имена переменных глобальны, то для различения переменных с одинаковыми именами, но в разных модулях компилятор их переименовывает. Так, например, переменная Recv.

Count, объявленная в модуле UART, в ассемблерном листинге будет называться UART. Но переменные, объявленные со спецификаторами sfr и register не переименовываются. В результате, для ассемблера одноименные переменные в разных модулях будут одной переменной. Кроме спецификаторов, к переменным можно применять квалификаторы, изменяющие поведение компилятора при работе с ними.

Позволяет двум и более модулям иметь общую переменную. Также применим к функциям, хотя и редко нужен. Запрещает компилятору оптимизировать работу с ней (выкидывать лишние, на его взгляд, присвоения или кэшировать в РОН прочитаное оттуда значение). В частности, именно с этим квалификатором объявлены регистры для чтения данных извне — PIN*, UDR и т. Например: DDRA: byte; absolute 0x.

A; io; sfr; at < variable> : позволяет создать алиас на переменную (т. Например: var LEDPort: Byte at PORTD; Кучу примеров по применению всех этих спецификаторов и квалификаторов можно посмотреть в заголовочных файлах микроконтроллеров, в папке \\defs. В принципе, многие из них только там и нужны : ). Для програмистов же из всего этого чаще всего нужны несколько возможностей.

Запихнуть часто используемую переменную в РОН, чтобы программа быстрее работала. Byte; rx. for i: =0 to 1. Something(i). Объявить алиасы для используемого GPIO. Часто используется встроенными библиотеками для работы с железом (например, LCD).

Несмотря на const сам указатель не константен - это старый синтаксис объявления указателей на константы. Из указательной арифметики доступны следущие операции: присвоение одного указателя другомусравнение указателей друг с другом и с нулемсложение/вычитание указателя и целого числавычитание двух указателей. Сложение и вычитание указателя и целого числа аналогично Си — т. При вычитании указателей в результате получается расстояние между ними, также в размерах данных, на которые указатели указывают. Указатели на функции. TMy. Function. Type = function (param. Сперва объявляем процедурный тип.

My. Func. Ptr: ^TMy. Function. Type; // Указатель на функцию. My. Func. Prt: =@Func. X: =My. Func. Ptr^(1, 2, 3). При вызове функций по указателю следует сообщить об этом линкеру, вызовом встроенной функции Set. Func. Call в вызывающей функции. Called. By. Ptr. 1.

Среди них задержки (Delay. Подробней — в справке, раздел AVR Specifics\Built- In Routines. Полезна для малых задержек или замены пустого оператора, не поддерживаемого компилятором.

My. Flag=0 do; //фиг там, хотя стандарт языка допускает. My. Flag=0 do NOP; //ожидание флага. Upd: новые версии компилятора пустой оператор понимают. Ассемблерные вставки.

При необходимости вставить код на ассемблере можно применить блок asm. Но не стоит забывать, что это негативно отражается на портируемости. Например, упомянутый выше проект «ИК дистанционное управление» (в оригинале под тини.

ATmega. 16 компилируется (после комментирования работы с EEPROM), но нифига не работает. На этом, пожалуй, все. Суховато, но уж как умею : ) Зато, при знании языка, этого вполне достаточно для работы с m.

P. P. S. Как обычно, отложил на потом и забыл. Кусочек из хелпа, примечания разработчиков касательно особенностей языка. Directive absolute in Rx memory space guarantees only that defined variable will be overlapped with the given memory address. Пространство RAM — непрерывный регион памяти, включающий все пространства оперативной памяти AVR (пространство RAM = пространство РОН + пространство ВВ + пространство ОЗУ). При использовании инструкций, предназначенных для работы с пространством ВВ в ассемблерных вставках, доступ к регистрам ВВ должен осуществляться по их адресам в пространстве RAM. Регистры общего назначения, не используемые компилятором, можно использовать для своих переменных.

Размер доступного для них пространства rx не фиксирован и зависит от потребностей проекта в памяти. Компилятор использует не менее 7 РОН. Статическая растет вверх (от нижних адресов к верхним). Динамическая растет вниз (от верхних адресов к нижним). Комментарий: статическая память используется для хранения глобальных переменных, которые существуют все время работы программы, динамическая — это стек, помимо адресов возврата и сохранения регистров там выделяется память под локальные переменные, что позволяет экономить память. В случае большой глубины вызовов (активное использование перекрестных вызовов, рекурсий и т. В этом случае динамическая память перекроется со статической, переписав ее.

Mikropascal Pro For Pic Учебник
© 2017