Помощь в написании студенческих работ
Антистрессовый сервис

Разработка и описание структурной схемы устройства

РефератПомощь в написанииУзнать стоимостьмоей работы

Рисунок 2.1 Алгоритм программы Для начала использования библиотеки программисту требуется создать небольшой код. Во-первых, в программе должны быть подключены модули библиотеки и драйвер дисплея. Далее нужно выполнить инициализацию дисплея, вызвав функцию InitGraph (), в которой производится сброс дисплея, установка курсора в начало координат (положение 0, 0). Затем вызывается функция… Читать ещё >

Разработка и описание структурной схемы устройства (реферат, курсовая, диплом, контрольная)

Графическая библиотека Microchip написана для работы с 16-и разрядными микроконтроллерами PIC24FJxxx и 32-х разрядными PIC32 с интегрированным параллельным мастер-портом (Parallel Master Port — PMP). Наличие параллельного мастер порта (PMP) позволяет осуществить быстрый обмен данными между микроконтроллером и дисплеем. Большой объем памяти микроконтроллеров (до 512Кб) и широкий набор периферии (по 2 USART, SPI, I2C, часы реального времени, модуль вычисления CRC), делает контроллеры PIC24 и PIC32 идеальными для широкого класса приложений.

В состав библиотеки входят подробные примеры использования. При задействовании всех функций библиотеки требуется примерно 24Кб программной памяти. Каждый объект динамически выделяет от 2 до 24 Байт ОЗУ, таким образом, графическим цветным TFT-индикатором может управлять даже дешевый, 28-и выводный контроллер PIC24FJ32GA002 с 32КБ Flash памятью программ и 4КБ ОЗУ. При необходимости, пользовательские шрифты и картинки могут храниться во внешней энергонезависимой памяти.

Библиотека разработана для легкой интеграции графического интерфейса в разрабатываемое устройство. Использование готовых графических объектов требует от программиста минимального количества строк кода. Библиотека содержит хорошо документированный API, с применением которого, можно создавать и управлять работой графических объектов. Обычно, поведение графического объекта управляется библиотекой. Управление поведением объекта облегчено реализацией механизма передачи сообщений, описанного ранее. Полученные сообщения обрабатываются и состояние объекта изменяется на основании содержания сообщения. Библиотека автоматически меняет вид объекта и перерисовывает его на экране дисплея.

Рассмотрим пример применения графической библиотеки Microchip. На рисунок 2.1 представлен простой алгоритм программы.

Рисунок 2.1 Алгоритм программы Для начала использования библиотеки программисту требуется создать небольшой код. Во-первых, в программе должны быть подключены модули библиотеки и драйвер дисплея. Далее нужно выполнить инициализацию дисплея, вызвав функцию InitGraph (), в которой производится сброс дисплея, установка курсора в начало координат (положение 0, 0). Затем вызывается функция GOLCreateScheme (), с помощью которой задается текущая цветовая схема для используемых графических объектов. Если не предусматривается изменений в используемой цветовой схеме, то можно вместо вызовов функций InitGraph () и GOLCreateScheme () применить вызов только функции GOL_Init (). Если создается новая цветовая схема, то нужно вставить примерно такой код:

GOL_SCHEMEЧ altScheme; // объявляем альтернативную цветовую схему.

altScheme = GOLCreateScheme (); // создаем альтернативную цветовую схему.

altScheme->TextColor0 = BLACK; // устанавливаем цвет для color 0 altScheme;

>TextColor1 = BRIGHTBLUE; // устанавливаем цвет для color 1.

Следующий шаг это создание графических объектов. Функции ObjCreate (, ,) предоставляют возможность создания различных графических объектов. Это может быть одиночный вызов функции BtnCreate (, ,) который создаст объект «Button"или вызов нескольких функций для создания нескольких объектов. Для примера создадим три графических объекта (две кнопки и один слайдер, см. рисунок 2.2):

BtnCreate (ID_BTN1, // Идентификатор кнопки 1.

  • 20, 160, 150, 210, // Размер и положение кнопки
  • 0, // радиус скругления углов

BTN_DRAW, // установить статус объекта:

// отрисовать кнопку.

NULL, // не использовать картинку в качестве изображения.

" LEFT", // написать на кнопке этот текст.

NULL); // использовать цветовую схему по умолчанию.

BtnCreate (ID_BTN2, // Идентификатор кнопки 2.

  • 170, 160, 300, 210,
  • 0, //

BTN_DRAW,.

NULL,.

" RIGHT" ,.

NULL);

SldCreate (ID_SLD1, // Идентификатор слайдера.

20, 105, 300, 150, // Размер и положение слайдера.

SLD_DRAW, // установить статус объекта:

// отрисовать слайдер

  • 100, // диапазон значений
  • 5, // приращение значения
  • 30, // установить ползунок в это значение

NULL); // использовать цветовую схему по умолчанию.

Все эти вызовы функций отображены на рисунке 2.1 как ObjCreate (), где Obj заменяется на Btn для кнопок и на Sld для слайдера. Каждый объект библиотеки имеет свою функцию ObjCreate (), которые возвращают указатель на новый созданный объект. Если объект успешно создан, то он автоматически добавляется в активный список объектов.

Графические объекты созданные в примере программы.

Рисунок 2.2 Графические объекты созданные в примере программы После того как графические объекты созданы, их нужно прорисовать на экране, для этого служит функция GOLDraw (). Эта функция анализирует состояние объектов. Если объект требует отрисовки, то этот объект будет перерисован. В приведенном примере задано состояние кнопок BTN_DRAW, а слайдера SLD_DRAW, т. е. данные объекты требуют прорисовки. После вызова функции GOLDraw () объекты будут отображены на дисплее, а запрос на прорисовку объектов будет сброшен. Состояние объекта может быть изменено программно или с помощью запросов от устройств ввода, таких как клавиатура, сенсорный экран и т. п. Для данного примера используем индикатор с сенсорным экраном. Сенсорный экран заполняет структуру сообщений, если произошло касание экрана (рисунок 2.3, шаг 5). Это сообщение будет обработано библиотекой при вызове функции GOLMsg (), в которой происходит анализ того, какой из объектов создал сообщение. Состояние объекта будет изменено в соответствии с сообщением и при следующем вызове функции GOLDraw () этот объект будет перерисован на экране. Кнопка будет отображена нажатой при касании экрана в ее области, а движок слайдера будет перемещен при «перетаскивании» его по экрану (см. рисунок 2.3). Приведенный пример выполняет стандартные функции присущие созданным графическим объектам: с помощью сенсорного экрана можно нажать на кнопки и передвинуть движок слайдера. Попробуем изменить стандартное поведение. Пусть нажатие на кнопку LEFT или RIGHT будет сдвигать положениеидвижка слайдера соответственно влево или вправо.

Изменение состояния кнопки при касании сенсорного экрана.

Рисунок 2.3 Изменение состояния кнопки при касании сенсорного экрана Для добавления пользовательских действий над объектами используется функция GOLMsgCallback (). Эта функция вызывается в функции GOLMsg () каждый раз, когда графический объект получает новое сообщение.

Для реализации управления положением движка слайдера с помощью кнопок, добавим код в функцию GOLMsgCallback ().

WORD GOLMsgCallback (WORD objMsg, OBJ_HEADER· pObj, GOL_MSG· pMsg){WORD objectID;

SLIDER· pSldObj; // получение идентификатора объекта, который создал сообщение objectID = GetObjID (pObj);

if (objectID == ID_BTN1) { // проверяем что сообщение от 1-й кнопки.

// и кнопка нажата.

if (objMsg == BTN_MSG_PRESSED) {.

// устанавливаем указатель на слайдер с именем ID_SLD1.

pSldObj = (SLIDER*)GOLFindObject (ID_SLD1);

// уменьшение значения положения движка слайдера.

SldDecPos (pSldObj);

// установить перерисовку движка слайдера.

SetState (pSldObj, SLD_DRAW_THUMB);

}.

}.

if (objectID == ID_BTN2) { // проверяем что сообщение от 2-й кнопки.

// и кнопка нажата.

if (objMsg == BTN_MSG_PRESSED) {.

// устанавливаем указатель на слайдер с именем ID_SLD1.

pSldObj = (SLIDER*)GOLFindObject (ID_SLD1);

// увеличение значения положения движка слайдера.

SldIncPos (pSldObj);

// установить перерисовку движка слайдера.

SetState (pSldObj, SLD_DRAW_THUMB);

}.

}.

// мы должны возвратить 1 для обновления кнопок (эффекты нажатия и отпускания).

return 1;

}.

Приведенный код изменяет положение движка слайдера при касании сенсо рного экрана в области одной из графических кнопок. Кнопка LEFT сдвигает движок влево, кнопка RIGHT — вправо. Функция GOLMsgCallback () должна возвращать 1 для разрешения действий графических объектов, присущих им по умолчанию, т. е. кнопки будут прорисовываться в нажатом или нормальном состоянии, а движок слайдера будет иметь возможность передвигаться с помощью сенсорного экрана.

Как видим, нам потребовалось написать минимум кода для создания трех графических объектов и осуществления взаимодействия между ними с помощью сенсорного экрана дисплея.

Графическая библиотека Microchip предоставляет широкое поле деятельности для разработчика и позволяет осуществлять различные действия с целыми графическими объектами или с дисплеем на уровне драйверов. Так, например, иллюстрации отображаемых графических объектов в этой статье получены путем получения цвета отдельных пикселей, формирования bmp-файла и передачи копии экрана дисплея через COM-порт в компьютер.

Для начала работы с графической библиотекой, компания Microchip предлагает дочернюю плату Graphics PICtail™ Plus (номер для заказа AC164127). Плата Graphics PICtail™ Plus это демонстрационная плата для изучения графической библиотеки и для освоения работы с цветными ЖКИ дисплеями. Плата содержит графический (65К цветов) QVGA модуль с разрешением 320×240 точек и с резистивной touch-панелью. Модуль поддерживает портретную и ландшафтную ориентацию, содержит встроенную 4 Мбит Flash память для возможности хранения графических элементов, звуковой излучатель и разъем для подключения к плате Explorer 16. Дочерняя плата подключается к демонстрационной плате Explorer 16.

Демонстрационная плата Explorer 16 (номер для заказа DM240001) это дешевое средство отладки для ознакомления и начала работы с высокопроизводительными семействами 16-и разрядных микроконтроллеров Microchip PIC24 и контроллерами цифровой обработки сигналов dsPIC33 °F. Плата имеет возможность работы с внутрисхемным отладчиком ICD-2 и внутрисхемным эмулятором REAL-ICE для быстрой отладки приложений. Комплект содержит 2 дочерние платы с контроллерами PIC24FJ128GA010 и dsPIC33FJ256GP710, возможно подключение процессорных модулей с 32-х разрядным контроллером PIC32. К плате предусмотрено подключение дополнительных интерфейсных модулей расширения, таких как модули IrDA, Ethernet интерфейсов, SD и MMC карт памяти, плат для работы со звуком, и, конечно же, плату с графическим индикатором.

Сенсорные клавиши (клавиатуры) по функциональному назначению аналогичны механическим. Однако они не имеют механических подвижных частей. Сенсорная клавиша представляет собой металлическую площадку на печатной плате, покрытую специальным защитным слоем. При касании около площадки ее емкость изменяется (увеличивается), что фиксируется контроллером. Механическое замыкание каких-либо контактов в таких датчиках отсутствует. На рисунке 2.5 представлена демонстрационная плата STEVAL-ICB001V1 на базе микросхемы STMPE1208. Большинство контроллеров сенсорных клавиш поддерживает, непосредственно, кнопки (button), линейные и круговые полосы прокрутки (slider и wheel, соответственно).

Дочерняя плата Graphics PICtail™ Plus.

Рисунок 2.4 Дочерняя плата Graphics PICtail™ Plus.

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

Сенсорные панели позволяют определять координаты точки прикосновения в любой области экрана. В зависимости от этих координат компьютер принимает решение об активации какого-либо органа управления, изображенного на экране (принцип, аналогичный действию компьютерной мыши).

Отладочная плата сенсорной клавиатуры STEVAL-ICB001V1.

Рисунок 2.5 — Отладочная плата сенсорной клавиатуры STEVAL-ICB001V1.

Показать весь текст
Заполнить форму текущей работой