URC220_Board_Win (Раздаточные материалы), страница 4

PDF-файл URC220_Board_Win (Раздаточные материалы), страница 4 Программное обеспечение управляющих комплексов (ПОУК) (14923): Другое - 9 семестр (1 семестр магистратуры)URC220_Board_Win (Раздаточные материалы) - PDF, страница 4 (14923) - СтудИзба2017-12-25СтудИзба

Описание файла

Файл "URC220_Board_Win" внутри архива находится в следующих папках: Раздаточные материалы, Документация. PDF-файл из архива "Раздаточные материалы", который расположен в категории "". Всё это находится в предмете "программное обеспечение управляющих комплексов (поук)" из 9 семестр (1 семестр магистратуры), которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. Архив можно найти в разделе "остальное", в предмете "поук" в общих файлах.

Просмотр PDF-файла онлайн

Текст 4 страницы из PDF

Во вкладке “Download” установить флаг “Use flash loader(s)”.Если в меню слева выбрать пункт “J-Link/J-Trace”, то справа будут показаны всенастройки отладчика J-Link. Подходят настройки по умолчанию.Теперь можно выбрать пункт меню “Project”->”Debug” (или просто нажать Ctrl+D).Появится окно индикации загрузки программы в контроллер, а далее, послеокончания загрузки, выполнение программы автоматически дойдёт до началафункции “main” и остановится. С этого момента отладка программы происходитаналогично отладке программы под Windows (F10 и F11 – Step over и Step into, F9– установить точку прерывания выполнения программы, F5 – запуск программы) –см. рис.

3.624Рис.3.6 Отладка готовой программы4. Библиотека для работы с платой на компьютереДля многих задач не всегда требуется писать программу именно длямикроконтроллера, иногда достаточно простого управления с компьютера. Дляэтого была реализована программа для микроконтроллера, которая принимаеткоманды от компьютера по USB интерфейсу и управляет всеми периферийнымиустройствами. Для компьютера написана библиотека, которая позволяет легкоуправлять платой из любой программы под Windows.4.1 Алгоритм работыВзаимодействие программы с драйвером устройства происходит через объекткласса CURC220.

Прототип класса находится в заголовочном файле “URC220.h”:#include “URC220.h”CURC220 urc;После того, как плата подключается к компьютеру, программа на компьютередолжна обновить списокподключённыхустройств, вызвав функциюUpdateDeviceList объекта класса. Узнать количество подключённых устройствможно с помощью функции GetDeviceCount. Далее, при необходимости, можноопределить имя каждого устройства с помощью функций GetDeviceNameLen иGetDeviceName.

Для начала работы с платой нужно открыть устройствофункцией Open, а по окончании работы вызвать функцию Close. Если устройство25успешно открыто, то записывать и считывать данные можно при помощи функцийDeviceRead и DeviceWrite. Сначала вызывается функция для чтения(DeviceRead),далеепроизводятсянеобходимыедействия(функцииDeviceGetInput, DeviceSetOutput, DeviceGetOutput, DeviceGetADC и т.д.), а поокончании всех действий вызывается функция для записи (DeviceWrite).

Затемцикл повторяется.4.2 Описание функций классаФункция DeleteDeviceListПрототип:void CURC220::DeleteDeviceList();Описание:Функция удаляет список подключенных устройствПринимаемые параметры: нетВозвращаемое значение: нетФункция UpdateDeviceListПрототип:int CURC220::UpdateDeviceList();Описание:Функция обновляет список подключенныхколичество и именаПринимаемые параметры: нетВозвращаемое значение:Функция возвращает 0 в случае ошибкиустройств:Функция GetDeviceCountПрототип:int CURC220::GetDeviceCount(ULONG *Count);Описание:Функция возвращает количество подключенных устройствПринимаемые параметры:Count - указатель на число для записиВозвращаемое значение:Функция возвращает 0 в случае ошибкиФункция GetDeviceNameLenПрототип:int CURC220::GetDeviceNameLen(ULONG Index, ULONG *Len);Описание:Функция возвращает длину имени устройстваПринимаемые параметры:Index - номер устройства в списке (начиная с 0)Len - указатель на число для записи длины имениВозвращаемое значение:Функция возвращает 0 в случае ошибкиФункция GetDeviceName26определяетихПрототип:int CURC220::GetDeviceName(ULONG Index, char *pBuffer, ULONG BufferSize);Описание:Функция для определения имени устройства по номеруПринимаемые параметры:Index - номер устройства в списке (начиная с 0)pBuffer - буфер для записи имениBufferSize - максимальное число байт, которое можно записать в буферВозвращаемое значение:Функция возвращает 0 в случае ошибкиФункция GetPipeObjectПрототип:CURCPIPE* CURC220::GetPipeObject();Описание:Функция возвращает указатель на объект CURCPIPEПринимаемые параметры: нетВозвращаемое значение:Указатель на объект CURCPIPEФункция CloseПрототип:void CURC220::Close();Описание:Функция закрывает устройствоПринимаемые параметры: нетВозвращаемое значение: нетФункция OpenПрототип:int CURC220::Open(ULONG Index);Описание:Функция открывает устройствоПринимаемые параметры:Index - номер устройства в списке (начиная с 0)Возвращаемое значение:Функция возвращает 0 в случае ошибкиФункция DeviceReadПрототип:int CURC220::DeviceRead();Описание:Считывает текущее состояние устройстваПринимаемые параметры: нетВозвращаемое значение:Функция возвращает 0 в случае ошибкиФункция DeviceWriteПрототип:int CURC220::DeviceWrite();27Описание:Записывает внесенные изменения параметров в устройствоПринимаемые параметры: нетВозвращаемое значение:Функция возвращает 0 в случае ошибкиФункция DeviceGetInputПрототип:int CURC220::DeviceGetInput(ULONG Index, UCHAR *Value);Описание:Считывает значение на порту вводаПринимаемые параметры:Index - номер порта: 0..3Value - указатель на число для записи значения: 0 или !0Возвращаемое значение:Функция возвращает 0 в случае ошибкиФункция DeviceSetOutputПрототип:int CURC220::DeviceSetOutput(ULONG Index, UCHAR Value);Описание:Записывает значение в порт выводаПринимаемые параметры:Index - номер порта: 0..7Value - число для записи в порт: 0 или !0Возвращаемое значение:Функция возвращает 0 в случае ошибкиФункция DeviceGetOutputПрототип:int CURC220::DeviceGetOutput(ULONG Index, UCHAR *Value);Описание:Возвращает значение, которое сейчас установлено на порту выводаПринимаемые параметры:Index - номер порта: 0..7Value - указатель на число для записи значения: 0 или !0Возвращаемое значение:Функция возвращает 0 в случае ошибкиФункция DeviceGetADCПрототип:int CURC220::DeviceGetADC(ULONG Channel, USHORT *Value);Описание:Считывает значение АЦППринимаемые параметры:Channel - номер канала: 0..3Value - указатель на число для записи значения: 0..1023Возвращаемое значение:Функция возвращает 0 в случае ошибки28Функция DeviceSetPWMПрототип:int CURC220::DeviceSetPWM(ULONG Channel, SHORT Value);Описание:Устанавливает значение ШИМПринимаемые параметры:Channel - номер канала: 0..3Value - новое значение ШИМ: -1000...+1000Возвращаемое значение:Функция возвращает 0 в случае ошибкиФункция DeviceGetPWMПрототип:int CURC220:: DeviceGetPWM(ULONG Channel, SHORT *Value);Описание:Возвращает установленое значение ШИМПринимаемые параметры:Channel - номер канала: 0..3Value - указатель на число для записи значения: -1000...+1000Возвращаемое значение:Функция возвращает 0 в случае ошибкиФункция DeviceGetEncПрототип:int CURC220::DeviceGetEnc(ULONG Index, LONG *Value);Описание:Считывает значение энкодеровПринимаемые параметры:Index - номер энкодера: 0..1Value - указатель на число для записи значенияВозвращаемое значение:Функция возвращает 0 в случае ошибки5.

Применение библиотеки5.1 Создание нового проекта в Microsoft Visual Studio 20031. Для начала нужно открыть Microsoft Visual Studio 2003. После этого необходимосоздать новый проект File–>New–>Project (рис 5.1.1).29Рис. 5.1.12. Далее следует указать тип проекта (Visual Studio C++ –> Win32)и в соседнемполе выбрать Win32 Console Project. В соответствующих текстовых полях указатьназвание проекта (в данном случае «Test») и директорию, в которой будет созданпроект. После нажатия на Ok появиться новое окошко (Рис.5.1.2).Рис. 5.1.23. В этом окне (Рис.

5.1.2) выбрать закладку Application Settings (находится подOverview). Установить галочку напротив пункта Empty project (Рис. 5.1.3) и нажатьFinish.30Рис. 5.1.3.4. После этих операций будет создан пустой проект. На рисунке 5.1.4 показано какон выглядит.Рис. 5.1.4.315. В проект необходимо добавить .cpp файл, в котором будет написан исходныйкод программы. Для этого надо воспользоваться меню Project–>Add New Item. НаРисунке 5.1.5 показана структура меню.Рис.

5.1.5.6. Далее необходимо ввести имя создаваемого файла, например, «main.cpp». Дляэтого следует выбрать категорию файла «Code» в левой половине окна и типфайла «С++ File (.cpp)». В текстовом поле «Name:» ввести имя создаваемогофайла и нажать «Open». Рисунок 5.1.6 иллюстрирует это.Рис. 5.1.6.327. После этих операций будет создан файл main.cpp и добавлен к текущемупроекту. В этом файле можно написать код простой программ, которая выводит вконсоль строчку (Рис. 5.1.7).Рис. 5.1.7.Привожу код, чтобы можно было скопировать.// подключение необходимых библиотек#include <stdio.h>#include <conio.h>void main (){// Печатает строкуprintf ("Hello world!\n");// ждёт нажатия любой кнопки на клавиатуре_getch ();}5.2 Пример простой программыДля работы с контроллером URC220 требуется скопировать в папку с проектом 4файла: «URC220.h», «URC220.lib», «URCPIPE.h» и «URCPIPE.lib».

В этих файлахнаходятся прототипы функций необходимых для работы контроллером. Сами жефункции находятся в файлах «URC220.dll» и «URCPIPE.dll». При установкедрайвера эти два .dll файла автоматически копируются в системный каталогWindow. Рассмотрим работу с платой на примере. Программа будет гасить наплате светодиод OUT1 и зажигать OUT2, при этом состояние остальныхсветодиодов не изменяется.// Подключение стандартных библиотек33#include <windows.h>#include <conio.h>#include <stdio.h>// Подключение библиотеки для работы с платой#include "URC220.h"// Начало выполнения программыvoid main (){// Создаю объект платы// (CURC220 - тип; board - имя переменной);CURC220 board;// Узнаю, есть ли вообще платыboard.UpdateDeviceList ();// в этой переменной будет храниться количество плат// подключённых к компьютеруunsigned long int deviceNum = 0;// Узнаю чило платboard.GetDeviceCount (&deviceNum);if (deviceNum == 0) //если плат нет{printf ("Board not connected :(\n");}else // если платы есть{// соединяюсь с платой под номером 0board.Open (0);// Записываю новое значение в буферboard.DeviceSetOutput (1, 0);board.DeviceSetOutput (2, 1);// Применяю изменения к платеboard.DeviceWrite ();// отсоединяюсь от устройстваboard.Close ();}}5.2.1 Инициализация контроллераПервое действие - это создание объекта класса CURC220.

В примере объектназывается «board». Далее необходимо вызвать функцию этого классаboard.UpdateDeviceList (). Функция опрашивает драйвер USB порта и составляетсписок устройств, подключённых к USB на данном компьютере. Функцияboard.GetDeviceCount (&deviceNum) определяет сколько контроллеров URC220подключено к ПК. Функция board.Open (i) соединяется с контроллером подномером i. Естественно, что если указать i >= deviceNum, то подключения кконтроллеру не произойдёт, так как контроллер не подключен. После успешногозавершения board.Open (i) можно переходить к работе с контроллером.5.2.2 Обмен данными с контроллеромДля ускорения работы в «URC220.dll» реализована работа с контроллером черезбуфер.

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5173
Авторов
на СтудИзбе
436
Средний доход
с одного платного файла
Обучение Подробнее