Главная страница
Навигация по странице:

  • Объявления переменных и констант

  • Описание массива переменных

  • Структуры и объединения

  • Оператор присваивания значения переменной

  • Управляющие символы

  • Директивы компилятора

  • Параметры строки

  • Стандартные функции Lite

  • Устройства управления роботами, схемотехника и программирование (М. Предко, 2004). Устройства управления роботами, схемотехника и программирование. Устройствауправления роботамисхемотехника и микроконтроллеров picmicro


    Скачать 6.79 Mb.
    НазваниеУстройствауправления роботамисхемотехника и микроконтроллеров picmicro
    АнкорУстройства управления роботами, схемотехника и программирование (М. Предко, 2004).pdf
    Дата29.08.2017
    Размер6.79 Mb.
    Формат файлаpdf
    Имя файлаУстройства управления роботами, схемотехника и программирование .pdf
    ТипРеферат
    #8441
    КатегорияПромышленность. Энергетика
    страница32 из 33
    1   ...   25   26   27   28   29   30   31   32   33
    ПРИЛОЖЕНИЕ 4
    Справочное руководство по языку
    Lite
    констант
    В табл.
    приведены обозначения констант, представленных в различных сис- темах счисления.
    Таблица П4. /. Представление констант в различных системах счисления
    Основание
    2
    8
    10
    16
    Формат PICC
    или ОВчисло
    Очисло или \число число
    Охчисло или ОХчисло
    Формат
    число или
    или
    или
    Охчисло
    Комментарии
    Два способа выделения комментариев:
    Двойной слэш:
    // Все символы до конца строки считаются комментарием.
    2. Слэш со звездочкой:
    /* Все символы здесь считаются комментарием. »/
    Объявления переменных и констант
    Объявление переменной или константы представлено в следующем формате:
    [*
    метка [=
    В квадратных скобках, как обычно, приведены необязательные элементы.
    В табл. П4.2 перечислены допустимые типы данных.

    382 Устройства управления роботами
    Таблица
    Тип
    bit
    char
    char
    unsigned short
    int
    unsigned int
    long
    unsigned long
    float
    double
    Типы данных в
    Разрядность, бит
    1
    8
    8
    16
    16
    16
    16
    32
    32
    24
    24 (по
    Комментарии
    Логическое значение
    Целое со знаком
    Целое без знака
    Целое со знаком
    Целое без знака
    Целое со знаком
    Целое без знака
    Целое со знаком
    Целое без знака
    Вещественное с плавающей
    Вещественное с плавающей точкой
    можно увеличить до 32
    с помощью опции компилятора -D32J
    Для явного приведения типа используется конструкция вида
    (unsigned long)
    = 0x012345678;
    Описание массива переменных:
    [=
    значение2,
    Строковые переменные объявляются как массивы символов и хранятся в фор- мате ASCIIZ:
    char
    = "Это строка";
    Последний символ NUL с кодом при объявлении строки вставляется ав- томатически, но программисту приходится помнить о нем, если создание и обра- ботка строк происходят в самой программе.
    Для обращения к отдельному символу строковой переменной предусмотрена та же нотация, что и для элементов массива:
    b =
    // Выбрали символ строки.
    Для объявления указателя используется символ * (звездочка):
    char » String = "Это строка";
    В микроконтроллере PIC16F84 переменные могут располагаться в первом бан- ке памяти по адресам с ОхОС до Ox4F, что соответствует абсолютным адресам с
    до OxOCF; они могут быть отображены в нулевой банк памяти. В мик- роконтроллере переменные хранятся как в нулевом, так и в первом банке памяти; отображение адресов между банками невозможно.
    В языке
    Lite, в отличие от стандартного С, нельзя использовать символ
    & для того, чтобы присвоить указателю адрес другой переменной.
    Обращение к конкретным адресам регистров в языке PICC Lite представлено в следующем формате:
    static unsigned char
    @

    Приложение 4 383
    Для обращения к отдельным битам регистра служит запись вида static bit
    8 +
    Если подключить к программе заголовочный файл pic.h, то можно использо- вать стандартные имена регистров и битов.
    Чтобы сообщить компилятору, что другая программа (скажем, процедура об- работки прерываний) может в любой момент изменить значение некоторой пере- менной, при ее описании надо указать volatile, например:
    volatile unsigned
    @
    Для описания констант используется квалификатор const, например:
    const int Label =
    В результате переменная
    1 будет размещена компилятором в ПЗУ, и ее значение нельзя будет изменить.
    Объявление вида const char ptr;
    создает указатель ptr на символ. Значение указателя может быть изменено, но сам символ - нет.
    Наоборот, если записать char » const ptr;
    то можно будет изменить значение символьной переменной, но не указателя.
    При использовании микроконтроллера все объявленные в про- грамме переменные размещаются в нулевом банке памяти, но можно использо- вать квалификатор если требуется хранить переменную в первом банке.
    Эта возможность недоступна для микроконтроллера PIC16F84.
    Структуры и объединения
    Формат описания структуры или объединения:
    struct | union {
    type type
    '
    }
    Для доступа к полям структуры используется оператор ->. Для примера рас- смотрим следующее определение:
    struct <
    int dividend; ' // Частное.
    int remainder; // Остаток.
    }
    result; , // Результат деления.
    Тогда можно записать:
    result -> dividend = x / у;
    result -> remainder = x % у;

    Устройства управления роботами
    Приведем пример описания битовой структуры:
    struct {
    unsigned : 3;
    PageSel : 2;
    : 3;
    } PCLATH 9
    // Старшие три бита не будут использоваться.
    // Выбор номера страницы.
    // Смещение внутри страницы.
    Функции
    Главная программа оформляется следующим образом:
    void
    {
    // Текст программы.
    > // Конец программы.
    Формат описания функции:
    ТипРезультата
    ( [
    ] )
    // Текст функции.
    return value; //
    значение.
    } // Конец функции.
    Для описания обработчика прерываний в заголовке функции надо указать модификатор interrupt:
    void interrupt ИмяФункции (void) {
    Операторы
    виде формат оператора языка
    Lite выглядит следующим обра- зом:
    Переменная \ Константа [ Операция [
    ] Переменная \ Константа ]
    ]
    Оператор присваивания значения переменной:
    Переменная -
    К управляющим конструкциям относятся следующие: if, while, do, for,
    switch.
    Формат оператора if:
    if (
    )
    [ Оператор ]; | { Оператор;
    [ else [ Оператор ]; | {
    } ]
    Формат цикла while:
    while ( Выражение ) [ Оператор ]; | { Оператор; ... }

    Приложение 4 385
    Цикл описывается так:
    for ( [
    [ Условие
    Условие ]];
    [ Выражение
    Оператор \ { Оператор;
    }
    // Инициализация параметра цикла.
    // Условие продолжения цикла.
    // Изменение параметра цикла.
    // Тело цикла.
    Для немедленного выхода из цикла можно использовать оператор break.
    Команда пропускает ту часть тела цикла, которая расположена пос- ле нее, и переходит к следующему шагу. Эту команду можно указывать в циклах while и do/while.
    Формат цикла с постусловием (он выполняется, пока условие истинно):
    do Оператор; [ { Оператор;
    } while ( Условие );
    Оператор выбора:
    Выражение ) {
    case
    Оператор;
    ] [ break; ]
    case
    [ Оператор;
    ] [ break; ]
    [ Оператор;
    ]
    >
    Инструкция goto используется для перехода на указанный оператор (метка не может быть распо- ложена вне тела функции). Формат описания метки:
    Метка: Оператор;
    Для возвращения результата выполнения функции используется оператор return Выражение;
    Операции
    В табл. П4.3 приведены одноместные (унарные), в табл. П4.4 - двуместные (би- нарные), а в табл. П4.5 - составные операции.
    Таблица П4.3. Унарные операции
    Обозначение
    Операция
    Поразрядная инверсия
    Инкремент (увеличение на 1)
    Изменение знака числа
    Декремент (уменьшение на 1)
    13-2101

    386 Устройства управления роботами
    Таблица
    операции
    Обозначение
    &
    Л
    +
    -
    *
    /
    %
    ==
    ! =
    <
    >
    < =
    > =
    Таблица
    \f

    \ t
    \v

    \ \
    \xddd
    операции
    Код ASCII
    0x0 ОА
    ОхООС
    0x008 0x009
    ОхООВ
    0x007 0x027 0x022
    -
    OxOdd
    Операция
    Логическое отрицание
    Логическое И
    Поразрядное И (AND) или
    Логическое ИЛИ (OR)
    Поразрядное ИЛИ (OR)
    Исключающее ИЛИ (XOR)
    Сложение
    Вычитание
    Умножение
    Деление
    от деления
    Сравнение на равенство
    Сравнение на неравенство
    Меньше
    Больше
    Меньше или равно
    или равно
    Сдвиг влево
    Сдвиг вправо
    Описание
    Возврат
    (CR)
    Перевод строки
    Перевод страницы
    Забой
    Горизонтальная табуляция
    Вертикальная табуляция
    Звонок (BEL)
    Апостроф (')
    Двойная кавычка
    Обратный слэш (\/
    Восьмеричный код
    код

    Приложение 4 387
    слова
    Ниже приведен список зарезервированных слов, которые не могут быть исполь- зованы в качестве имен переменных, констант или меток:
    auto break case char const continue default do else extern fastcall for goto if int interrupt persistent return signed static struct switch union unsigned void volatile while
    Управляющие символы
    В табл. П4.6 приведены специальные символы для управления экраном и по- ложением курсора.
    Таблица
    Управляющие символы
    Символ
    \п
    \f

    \t
    \v

    V
    \ \
    \ddd
    \xddd
    Код ASCII
    OxOOD
    ОхООА
    ОхООС
    0x008 0x009
    ОхООВ
    0x007 0x027 0x022
    Ох05С
    -
    OxOdd
    Возврат каретки
    Перевод строки (LF)
    Перевод страницы
    Забой
    Горизонтальная табуляция
    Вертикальная табуляция
    Звонок (BEL)
    Двойная кавычка
    Обратный слэш
    Восьмеричный код
    код

    388 Устройства управления роботами
    Директивы компилятора
    В табл. П4.7 приведены директивы управления компиляцией. Все директивы начинаются с символа # и выполняются при компиляции программы.
    Таблица
    Директивы компилятора
    Функция
    Пустая директива
    Ассемблерная вставка
    Условие
    Генерация ошибки, если условие ложно
    Имя
    Текст
    Определение идентификатора
    каждое вхождение
    которого в текст программы компилятор заменит указанным
    текстом
    "Файл"
    Сообщение
    Включение в текст программы содержимого указанного файла.
    Если имя файла приведено в кавычках, то он ищется в текущем
    каталоге и во всех каталогах, которые указаны в переменной
    окружения
    о если в угловых скобках, то файл ищется
    в каталогах, указанных в переменной окружения INCLUDE
    Генерация ошибки времени компиляции с выводом на экран
    указанного сообщения
    или #endif.
    условие истинно, компилируется
    следующий до директивы
    Если условие ложно,
    до
    #else или
    игнорируется
    Имя
    Если указанное имя определено в программе с помощью директивы
    ine, то
    следующий до директивы
    или
    Имя
    Если указанное имя не определено в программе с помощью
    директивы
    следующий до директивы
    или
    компилируется
    Условие
    Эта директива работает как #else
    и позволяет избежать
    вложенных директив
    Используется совместно с директивами
    #ifdef
    Используется для завершения директив
    или
    Номер ИмяФайла
    Определяет номер строки и имя файла листинга
    Определяет
    строки файла листинга
    «pragma
    Следующая функция обработки прерываний будет вызывать
    другую функцию. Позволяет подавить сообщение об ошибке,
    которое в этом случае генерируется по умолчанию
    Разрешает строки JIS
    национальный набор символов)
    #pragma
    Запрещает строки
    тип
    Определяет, что следующая
    должна принимать строковые
    данные в формате
    f psect
    = Имя
    Определяет, что данные будут помещены в определенный
    сегмент памяти
    regused
    Регистр
    Определяет регистры, которые будут сохранены в процедуре
    обработки прерывания
    Имя
    Отменяет определение указанного имени
    Сообщение
    Выводит предупреждающее сообщение во время компиляции

    Приложение 4 389
    Параметры
    строки
    В табл. П4.8 приведены параметры, которые можно указывать в командной стро- ке при вызове компилятора
    Lite.
    Таблица
    Параметры командной строки компилятора
    Параметр
    -processor
    -ААНЕХ
    -BIN

    -D24
    -D32

    -Ефайл
    -Е+файл
    -HELP
    -ICD
    -Мфайл
    -МОТ
    -NORT
    -0
    -Офайл

    -PRE
    -PROTO
    -Q
    Значение
    Определяет тип процессора (можно указывать только 16С84, 16F84, 16F84A или
    J6F627)
    параметр -опция ассемблеру
    Генерирует
    в символьном формате American
    файл
    Генерируется
    выходной файл
    Компиляция будет закончена созданием
    файлов
    Генерирует файл перекрестных ссылок
    Использует усеченный, 24-разрядный формат вещественных чисел
    Использует полный (стандарт IEEE 754), 32-разрядный формат вещественных чисел
    Определяет макрокоманду препроцессора (как директива
    Определяет расширенный
    формат для ошибок компилятора
    Перенаправляет сообщения об ошибках компилятора в указанный файл
    Сообщения об ошибках дописываются в конец существующего файла
    Задает формат
    для отладочной информации
    Разрешает использовать функции специальной библиотеки для работы с 32-разрядными
    вещественными числами
    Генерирует
    таблицу имен
    Выводит подсказку по
    командной строки
    Генерирует код для внутрисхемного отладчика
    Определяет путь к
    с подключаемыми файлами
    Генерирует выходной файл в
    формате Intel (по умолчанию)
    Определяет библиотеку, которая будет использоваться компоновщиком
    Определяет параметр
    который будет использоваться компоновщиком
    Запрашивает создание MAP файла
    Генерирует выходной файл в шестнадцатеричном формате Motorola
    Определяет размер идентификаторов (по умолчанию — 31
    Запрещает компоновщику подключать к приложению стандартные модули времени
    выполнения
    Разрешает оптимизацию кода
    Определяет имя выходного файла
    Запускает препроцессор для обработки исходного текста программы
    Создает файлы с результатом работы препроцессора
    Генерирует информацию о прототипах функций
    После компоновки показывает карту памяти
    Определяет режим без вывода сообщений компиляции (данный параметр должен
    указываться первым)

    390 Устройства управления роботами
    Таблица
    Параметры командной строки компилятора (окончание)
    Параметр
    -S
    -STRICT
    -ТЕК
    -V
    _ V
    Значение
    Резервирует диапазон указанных адресов ОЗУ
    Резервирует диапазон указанных адресов ПЗУ
    Определяет адресный диапазон для внешнего ПЗУ
    Останавливает компиляцию после получения исходных ассемблерных файлов
    Определяет для символьных переменных формат «целое со знаком»
    (если при описании переменной явно не указан другой квалификатор)
    Разрешает компилятору использовать строгие соглашения ANSI. В этом
    случае в программе нельзя использовать битовые переменные
    Генерирует выходной файл в
    формате Tektronix
    Отменяет определение указанного идентификатора
    выходной файл в формате
    Показывает в листинге параметры командной строки, заданные при
    вызове компилятора
    Устанавливает уровень предупреждающих сообщений компилятора
    Исключает локальные символы из таблицы имен
    Определяет уровень оптимизации (максимум 3)
    Стандартные функции
    Lite
    В табл. П4.9 приведен список встроенных функций PICC Lite.
    Стандартные функции PICC Lite
    Функция Заголовочный файл
    int double double double atari (double)
    double atan2
    (double, double)
    double atof (const char *)
    int char int char *)
    double char
    *)
    double double void
    *)
    void char, unsigned char)
    unsigned char
    (unsigned char)
    math.h
    math.h
    math.h
    stdlib.h
    stdlib.h
    math.h
    math.h
    math.h
    Комм
    Вычисляет абсолютное значение числа
    Вычисляет арккосинус (ответ в
    Вычисляет арксинус (ответ в
    Вычисляет арктангенс (ответ в
    Вычисляет арккотангенс (ответ в
    Преобразует строку ASCII в вещественное число
    Преобразует строку ASCII в целое число
    Преобразует строку ASCII в длинное целое число
    Округляет число с плавающей запятой
    до ближайшего целого (в большую
    Получает строку из стандартного потока ввода
    Вычисляет косинус угла радианах)
    Вычисляет гиперболический косинус
    Выводит строку символов на экран
    Записывает байт в СППЗУ
    Считывает байт из СППЗУ

    Приложение 4 391
    Таблица
    Стандартные функции
    Lite
    Функция Заголовочный файл Комментарии
    double double double double int *)
    char char void
    Bit
    Bit bit bit bit bit bit bit bit bit bit char double int)
    double double const void*
    void unsigned int)
    int const void *, unsigned int)
    void
    *,
    const void unsigned int)
    void
    (void *, const void unsigned int)
    void
    *,
    int, unsigned int)
    math.h
    math.h
    math.h
    conio.h
    ctype.h
    ctype.h
    ctype.h
    ctype.h
    ctype.h
    ctype.h
    ctype.h
    ctype.h
    ctype.h
    ctype.h
    conio.h
    math.h
    math.h
    math.h
    h
    Вычисляет экспоненту
    Вычисляет абсолютное значение числа
    Округляет число с плавающей запятой
    до ближайшего целого (в меньшую сторону)
    Вычисляет целую степень вещественного числа
    Получает один символ из стандарта потока
    ввода. Если входной поток пуст, ожидает
    появления символа
    двухбайтовый символ из
    потока ввода
    получения старшего байта
    требуется повторный вызов этой функции)
    Инициализирует UART
    Возвращает
    если символ является
    буквенно-цифровым
    Возвращает
    если символ является буквой
    Возвращает TRUE, если символ управляющий
    -
    или
    Возвращает
    если символ является цифрой
    Возвращает TRUE, если символ является печатным,
    но не пробелом (то есть его код лежит в диапазоне
    0x021
    Возвращает TRUE, если символ — буква нижнего
    регистра
    Возвращает
    если символ является знаком
    пунктуации
    Возвращает TRUE, если символ является печатным
    Возвращает TRUE, если код символа лежит
    в диапазоне 0x09
    или является пробелом
    Возвращает TRUE, если символ — буква верхнего
    регистра
    Возвращает
    если символ -
    цифра
    Возвращает код нажатой клавиши
    Вычисляет целую степень целого числа
    Вычисляет натуральный логарифм
    Вычисляет десятичный логарифм
    Ищет первое вхождение символа
    Сравнивает две строки
    Копирует заданное число байтов
    Копирует заданное число байтов
    адресов источника и адресата могут
    перекрываться)
    Заполняет заданное число ячеек памяти одним
    и тем же символом

    392 Устройства управления роботами
    Таблица
    Стандартные функции
    Lite (продолжение)
    1   ...   25   26   27   28   29   30   31   32   33


    написать администратору сайта