Белов, А.В. Микроконтроллеры AVR: от азов программирования до создания практических устройств

190 Микроконтроллеры AVR от азов программирования... ♦ massal + massa2 — сумма двух переменных (massal и massa2); ♦ tkon «2 — циклический сдвиг содержимого переменной tkon на 2 разряда влево; ♦ dat & mask — логическое умножение (операция «И») между двумя переменными (dat и mask). Приведенные примеры — это простейшие выражения, каждое из которых состоит всего их двух членов. Язык СИ допускает выражения практически любой сложности. В языке СИ переменные делятся на типы. Переменная каждого типа может принимать значения из одного определенного диапазона (см. табл. 5.1). Например: ♦ переменная типа char — это только целые числа; ♦ переменная типа float — вещественные числа (десятичная дробь) и т. д. Использование переменных нескольких фиксированных типов — это отличительная особенность любого языка высокого уровня. Разные вер ­ сии языка СИ поддерживают различное количество типов переменных. Версия СИ, используемая в CodeVisionAVR, поддерживает тринадцать типов переменных (см. табл. 5.1). В языке СИ любая переменная, прежде чем она будет использована, должна быть описана. При описании задается ее тип. В дальнейшем диа ­ пазон принимаемых значений должен строго соответствовать выбран ­ ному типу переменной. Описание переменной и задание ее типа необ ­ ходимы потому, что оттранслированная с языка СИ программа выде ­ ляет для хранения значений каждой переменной определенные ресурсы памяти. Листинг 5.2 /**************************************************** This program was produced by the CodeWizardAVR V1.24.4 Standard Automatic Program Generator © Copyright 1998-2004 Pavel Haiduc, HP InfoTech s r 1 http //www hpinfotech com e-mail office@hpinfotech com Project Progl Version 1 Date : 06.01 2006 Author . Belov Company • Home Comments Пример 1 Управление светодиодом Chip type Clock frequency Memory model External SRAM size Data Stack size : ATtiny2313 . 4,000000 MHz Tiny 0 ’ 32 / 1 «include <tiny2313 h> // Declare your global variables here (определение ваших глобальных переменных)

RkJQdWJsaXNoZXIy MTExODQxMg==