Примеры программ на ассемблере для pic контроллеров

Здравствуйте. Подскажите, пожалуйста- существует ли современная версия асемблера типа Parallax для PIC18 микроконтроллеров. Раньше такой был для PIC16, я на нем в середине 90х написал свою первую работающую программу для означенных МК. Там, помню, программа писалась в мнемониках, похожих на семейство х51. Не надо было заморачиваться с переключением банков памяти, удобно было работать с таблицами, какие-то еще вкусности.

В электронном оборудовании железнодорожного транспорта востребованы DC/DC-преобразователи, которые соответствуют определенным отраслевым стандартам (EN50155, EN50121, EN45545-2, EN61373). В этих нормативных документах содержатся практически все необходимые требования к компонентам, применяемым в ЖД-оборудовании. Широкий выбор DC/DC-преобразователей для ЖД-транспорта имеется в номенклатуре известного производителя MORNSUN. В настоящий момент продукция этой компании широко представлена на российском рынке и доступна как со склада, так и под заказ с небольшим сроком поставки.

Микроконтроллеры PIC для начинающих. Практика #1

Регистрация: 29.04.2009
Сообщений: 5
Репутация: 11

Ну, и не надо. Сам нашел http://www.tech-tools.com/cv16_main.htm. Хотелось бы знать мнение других по данной теме.

Компания MEAN WELL разработала две серии многофункциональных интеллектуальных источников бесперебойного питания на DIN-рейку – DRS-240 и DRS-480 – с выходной мощностью 240 и 480 Вт. Новые ИБП сочетают в одном корпусе AC/DC-источник питания, контроллер заряда/разряда АКБ и контроллер управления и мониторинга с возможностью программирования. Новые ИБП уже представлены в Компэл и предназначены для охранных и противопожарных систем, оборудования для экстренной связи, аварийного освещения и центральных систем мониторинга.

DmitriyVDN
DmitriyVDN
Регистрация: 08.11.2009
Сообщений: 2,283
Репутация: 613

а чем собственно MPLAB не устраивает?
лежит бесплатно на оф сайте производителя
мнемоника команд описана в даташите на любой МК

Опубликованы материалы вебинара, посвященного подходу компании MEAN WELL к созданию мощных управляемых систем низковольтного и высоковольтного питания и зарядных установок для промышленного, технологического, телекоммуникационного, медицинского, радиопередающего и другого оборудования, а также для систем альтернативной энергетики. На вебинаре мы рассмотрели новинки и серийную продукцию в концепции «3+N», расскажем об этой концепции и о том, как создать из готовых модулей систему питания мощностью до 360 кВт с напряжением до 380…400 В (постоянного тока). Были представлены ИП с рециркуляцией энергии для тестового оборудования и модули управления питанием.

Регистрация: 25.11.2008
Адрес: ДОНЕЦК
Сообщений: 311
Репутация: 57

ассемблер для того и существует, чтоб им пользовались любители
«заморачиваться »
в остальных случаях работают на С

ЯЗЫК АССЕМБЛЕРА за 3 МИНУТЫ


а ежли охота владеть асмом одновременнео сработая с разными семействами — я уже тут «таблички» выкладывал
http://www.rlocman.ru/forum/showthre. 4249#post54249

DmitriyVDN
DmitriyVDN
Регистрация: 08.11.2009
Сообщений: 2,283
Репутация: 613
ассемблер. «заморачиватьс я »
в остальных случаях работают на С

не вижу особых плюсов в использовании С
вот скажем использование памяти программ свыше 2Кбита
вы на Си как решаете?

Регистрация: 25.11.2008
Адрес: ДОНЕЦК
Сообщений: 311
Репутация: 57

а никак — я с С не дружу, поскольку почти все решения на кристаллах с малым объемом ПЗУ, да и переучиваться сейчас накладно (тем более для трех уже освоенных семейств) и время.
база в ближайшие год-два снова скакнет вперед, а «вечный студент» уже не котируется — молодым лучше с более высокотехнологичных языков начинать, ежли есть возможность в какую-нибудь «силиконовую долину» сбежать, иначе — лопата 06.08.2011 в 19:31 . Причина: Грамматическая ошибка
DmitriyVDN
DmitriyVDN
Регистрация: 08.11.2009
Сообщений: 2,283

Репутация: 613

По поводу С- я сравнивал языки С, Паскаль и Бейсик . Разницы в объеме откомпилированных программ не заметил .

. но программа на С так же сложна(для меня, по крайней мере) как и программа на ассемблере для ПИКов.

кажется пошел бред

Zahar вы понимаете что эти фразы взаимоисключают друг друга
а ассемблер МРLAB-а поддерживает очень много всего включая и макросы

Регистрация: 29.04.2009
Сообщений: 5
Репутация: 11

кажется пошел бред

Zahar вы понимаете что эти фразы взаимоисключают друг друга
а ассемблер МРLAB-а поддерживает очень много всего включая и макросы

1. Я сравнивал примеры, прилавгаемые Микроэлектроникой к своим МикроСи, МикроПаскалю и Микробейсику- одинаковые задачи, одинаковые алгориммы решения. Примерно одинаковый объем откомпилированой программы. Для этого не надо быть знатоком, чтобы понять, что делает готовая программа (ели Вы это имеете в виду)
2. Так я и хочу узнать, КАК создать макрос, например, DJNZ или CSNZ в MPLAB!

Регистрация: 11.08.2009
Сообщений: 155
Репутация: 28

Источник: www.rlocman.ru

Разработка программного обеспечения для PIC-микроконтроллеров

Аннотация: В этой лекции рассказывается об основных этапах проектирования и разработки цифровых устройств и систем на основе микроконтроллеров, а также приводится обзор методов совместной отладки аппаратных и программных средств.

6.2. Разработка программного обеспечения для PIC-микроконтроллеров

Разработка программного обеспечения является центральным моментом общего процесса проектирования. Центр тяжести функциональных свойств современных цифровых систем находится именно в программных средствах.

Основным инструментом для профессиональной разработки программ является ассемблер , предполагающий детализацию на уровне команд МК. Только ассемблер позволяет максимально использовать ресурсы кристалла.

Для микроконтроллеров PIC выпущено большое количество различных средств разработки . В данной главе речь пойдет о средствах, предоставляемых фирмой Microchip , которые весьма эффективны и широко используются на практике.

6.2.1. Ассемблер MPASM

Ассемблер MPASM представляет собой интегрированную программную среду для разработки программных кодов PIC микроконтроллеров всех семейств. Выпускается фирмой Microchip в двух вариантах: для работы под DOS и для работы под Windows 95/98/NT. Ассемблер MPASM может использоваться как самостоятельно, так и в составе интегрированной среды разработки MPLAB. Он включает несколько программ: собственно MPASM, MPLINK и MPLIB, причем каждая из них обладает собственным интерфейсом.

Читайте также:
Какие составные знаки можно использовать в программе паскаль

Программа MPASM может использоваться для двух целей:

  • генерации исполняемого (абсолютного) кода, предназначенного для записи в МК с помощью программатора ;
  • генерации перемещаемого объектного кода, который затем будет связан с другими ассемблированными или компилированными модулями.

Исполняемый код является для MPASM выходным кодом по умолчанию. При этом все переменные источника должны быть явно описаны в тексте программы или в файле, подключаемом с помощью директивы INCLUDE . Если при ассемблировании не выявляется ошибок, то генерируется выходной . hex -файл, который может быть загружен в МК с помощью программатора .

При использовании ассемблера MPASM в режиме генерации перемещаемого объектного кода формируются объектные модули, которые могут быть впоследствии объединены с другими модулями при помощи компоновщика MPLINK. Программа-компоновщик MPLINK преобразует перемещаемые объектные коды в исполняемый бинарный код, привязанный к абсолютным адресам МК. Библиотечная утилита MPLIB позволяет для удобства работы сгруппировать перемещаемые объекты в один файл или библиотеку. Эти библиотеки могут быть связаны компоновщиком MPLINK в файл выходного объектного кода ассемблера MPASM.

Программы MPASM и MPLINK доступны через оболочку MPASM, тогда как MPLIB доступна только со своей командной строки.

Исходным файлом для ассемблера MPASM по умолчанию является файл с расширением . ASM . Текст исходного файла должен соответствовать требованиям синтаксиса, приведенным далее.

Ассемблер MPASM может быть вызван командной строкой

MPASM [/[ /. ]]

где / означает выбор режима работы ассемблера в командной строке; – имя файла на ассемблирование.

Режимы работы ассемблера , выбранные по умолчанию, приведены в табл. 6.1.

Определяет уровень диагностических сообщений в файле листинга /w , где может быть:

0 – сообщать все,

1 – сообщать о предупреждениях и ошибках,

2 – сообщать только об ошибках.

Здесь и далее используются следующие соглашения по использованию символов:

  • [ ] – для аргументов по выбору;
  • < >– для выделения специальных ключей , или дополнительного выбора;
  • | – для взаимоисключающих аргументов (выбор ИЛИ);
  • строчные символы – для обозначения типа данных.

Выбор по умолчанию, приведенный в табл. 6.1, может быть изменен командной строкой:

  • / разрешает выбор;
  • /+ разрешает выбор;
  • / – запрещает выбор.

Исходный ассемблерный файл создается с использованием любого ASCII текстового редактора. Каждая строка исходного файла может содержать до четырех типов информации :

  • метки (labels)
  • мнемоника ( mnemonics )
  • операнды ( operands )
  • комментарий ( comments )

Порядок и положение каждого типа имеет значение. Метка должна начинаться в колонке номер один. Мнемоника может начинаться в колонке два или далее. Операнды идут за мнемоникой. Комментарий может следовать за операндом, мнемоникой или меткой или может начинаться в любом столбце, если в качестве первого не пустого символа используется * или ; .

Максимальная длина строки 255 символов.

Один или несколько пробелов должны отделять метку и мнемонику или мнемонику и операнд(ы). Операнды могут отделяться запятой. Например:

List p=16C54, r=HEX ORG 0x1FF ;Вектор сброса GOTO START ;Возврат на начало ORG 0x000 ;Адрес начала исполнения ;программы START MOVLW 0x0A ;Выполнение программы ;PIC МК MOVLW 0x0B ;Выполнять всегда GOTO START END

Метки

В поле метки размещается символическое имя ячейки памяти, в которой хранится отмеченный операнд. Все метки должны начинаться в колонке 1. За ними может следовать двоеточие ( :), пробел, табуляция или конец строки. Комментарий может также начинаться в колонке 1, если используется одно из обозначений комментария.

Метка может начинаться с символа или нижнего тире ( _ ) и содержать буквенные символы, числа, нижние тире и знак вопроса. Длина метки может быть до 32 символов.

Мнемоники

Мнемоники представляют собой мнемонические обозначения команды, которые непосредственно транслируются в машинный код. Мнемоники ассемблерных инструкций, директивы ассемблера и макровызовы должны начинаться, по крайней мере, в колонке 2. Если есть метка на той же линии, она должна быть отделена от этой метки двоеточием или одним или более пробелами или табуляцией.

Операнды

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

Если мнемоники позволяют использовать различное число операндов, конец списка операндов определяется концом строки или комментарием.

Выражения используются в поле операнда и могут содержать константы, символы или любые комбинации констант и символов, разделенных арифметическими операторами. Перед каждой константой или символом может стоять + или – , что указывает на положительное или отрицательное выражение.

В ассемблере MPASM используются следующие форматы выражений:

  • текстовая строка;
  • числовые константы и Radix ;
  • арифметические операторы и приоритеты;
  • High / Low операторы.

Текстовая строка – это последовательность любых допустимых ASCII символов (в десятичном диапазоне от 0 до 127), заключенная в двойные кавычки. Строка может иметь любую длину в пределах 132 колонок. При отсутствии ограничения строки она считается до конца линии. Если строка используется как буквенный операнд, она должна иметь длину в один символ, иначе будет ошибка.

Числовая константа представляет собой число, выраженное в некоторой системе счисления. Перед константой может стоять + или – . Непосредственные величины в константах рассматриваются как 32-разрядные целые без знака.

MPASM поддерживает следующие системы счисления (представления значений или Radix ): шестнадцатиричную, десятичную, восьмиричную, двоичную и символьную. По умолчанию принимается шестнадцатиричная система. Табл. 6.2 представляет различные системы счисления.

Операторы – это арифметические символы, подобные + и – , которые используются при формировании выражений. Каждый оператор имеет свой приоритет. В общем случае приоритет устанавливается слева направо, а выражения в скобках вычисляются первыми. В табл. 6.3 приведены обозначения, описания и примеры применения основных операторов MPASM.

Читайте также:
Программа для резки лекал автомобилей
Таблица 6.2. Системы счисления ( Radix ). Тип Синтаксис Пример
Десятичная D» или . D’100′ или .100
16-ричная H» или 0x H’9f’ или 0x9f
Восьмиричная O’777′
Двоичная B’00111001′
Символьная » или A» ‘C’ или A’C’
Таблица 6.3. Основные арифметические операторы MPASM Оператор Описание Пример
$ Текущий счетчик команд goto $ + 3
( левая скобка 1 + ( d * 4 )
) правая скобка ( lenght + 1 ) * 255
! операция «НЕ» (логическая инверсия) if ! ( a — b )
~ дополнение flags = ~ flags
инверсия (двоичное дополнение) – 1 * lenght
High выделить старший байт слова movlw high llasid
Low выделить младший байт слова movlw low (llasid + .251)
upper выделить наибольший байт слова movlw upper (llasid + .251)
* Умножение a = c * b
/ Деление a = b / c
% Модуль lenght = totall % 16
+ Сложение Tot_len = lenght * 8 + 1
Вычитание Entry_Son = ( Tot – 1 ) / 8
сдвиг влево Val = flags
>> сдвиг вправо Val = flags >> 1
>= больше либо равно if ent >= num
> больше if ent > num
меньше if ent < num
меньше либо равно if ent
== равно if ent == num
!= не равно if ent != num
И» flags = flags ИСКЛЮЧАЮЩЕЕ ИЛИ» flags = flags ^ err_bit
| поразрядное «ИЛИ» flags = flags | err_bit
логическое «И» if ( len == 512)( b == c )
|| логическое «ИЛИ» if ( len == 512 ) || ( b == c )
= установить равным. entry_index = 0
++ увеличить на 1 (инкремент) i ++
уменьшить на 1 (декремент) i —

Операторы high , low и upper используются для получения одного байта из многобайтного значения, соответствующего метке. Применяются для управления расчетом точек динамического перехода при чтении таблиц и записи программ.

Операторы инкремента и декремента могут применяться к переменной только в качестве единственного оператора в строке. Они не могут быть встроенным фрагментом более сложного выражения.

Источник: intuit.ru

Микроконтроллеры PIC: команды, операции, примеры

PIC16C5X

Общие сведения.

Система команд контроллеров PIC16C5X состоит из 33 ин­струкций. Использование RISC архитектуры обеспечивает выполнение:

● 26 команд за один цикл;

● 4 условных команд (DECFSZ, INCFSZ, BTFSC, BTFSS) за один цикл, если резуль­тат проверки условия не равен нулю, и за два цикла в противном случае;

● 3 команд (CALL, GOTO, RETLW) за два цикла.

Каждая команда представляет собой 12–разрядный двоичный код (слово). В коде команды выделяются поля (разряды), в которых указываются выполняемая операция, адреса ячеек памяти операндов–источников и приемника (результата). Совокупность полей образует формат команды. В за­висимости от количества полей в формате команды можно выделить три группы команд (рис. 6.4.1):

● команды, формат которых содержит три поля:

• OPCODE— код операции;

• f— адрес регистра с требуемым операндом (или битом). Другой операнд в двуместных операциях всегда находится в регистре W;

• d— регистр назначения (destination): при d= 0 результат операции поме­щается в рабочий регистр W, при d= 1 — в регистр f, заданный в команде;

• b— номер бита, участвующего в операции;

● команды, формат которых содержит два поля:

• OPCODE— код операции;

• f— адрес регистра общего назначения (в операциях загрузки);

• к — 8– или 9–битная константа (в операциях с константами и передачи уп­равления);

рис. 6.4.1

● безадресные команды, формат которых состоит из одного поля — кода опе­рации OPCODE.

Описание команд

Для компактного изложения выделим и рассмотрим четы­ре группы команд и представим материал в табличной форме.

Операции с байтами

табл. 6.4.1

В эту группу включено 18 операций (табл. 6.4.1), при этом назначению dest при d= 0 соответствует рабочий регистр W, а при d= 1 — адресуемый регистр f. Во всех командах за исключением TRIS f значение f в десятичных числах лежит в пределах 0 ≤ f ≤ 31.

Операции с битами

табл. 6.4.2

Во всех командах этой группы (табл. 6.4.2) значения адреса регистра f и номера бита b должны лежать в следующих пределах: 0 ≤ f≤ 31, 0 ≤ b≤ 7.

Операции с константами и команды передачи управления

Кон­станты должны быть расположены в памяти программ. Для работы с ними ис­пользуется непосредственная адресация (IMM). Контроллер оперирует с констан­тами двух форматов, для которых в мнемонике команды используется общая абб­ревиатура константы k (рис. 6.4.1).

табл. 6.4.3

В командах загрузки и логических операций используются 8–разрядные кон­станты (табл. 6.4.3), поскольку их разрядность должна совпадать с разрядностью второго операнда и регистра результата. Значение константы лежит в пределах 0 ≤ k≤ 255. Кроме того, 8–разрядная константа k используется как адрес вызыва­емой подпрограммы и возврата в коде команд CALL и RETLW. Единственной ко­мандой, которая использует 9–разрядную константу в качестве абсолютного ад­реса первой команды вызываемой подпрограммы, является команда безусловно­го перехода GOTO k.

Безадресные команды

В командах этой группы (табл. 6.4.4) адресуемый объект и выполняемое действие задается мнемоникой, например, CLRW— CLR (clearing— очистка) регистра W. табл. 6.4.4
В табл. 6.4.5 приведено распределение команд по функциональному признаку. табл. 6.4.5

В командах с байтами (табл. 6.4.1) и битами (табл. 6.4.2) для обращения к регистрам специальных функций и об­щего назначения используется прямая (DIR) и косвенная (INDIR) адресация (рис. 6.3.1).

В мнемонике команд с прямой адресацией OPCODE f, d эти регистры обознача­ются символом f, в качестве которого может фигурировать 16–ричный адресный код или обозначение регистра, например:

ADDWF 04h, d или ADDWF FSR, d.

При косвенной адресации используется дополнительный регистр FSR, в кото­ром хранится адрес вызываемых данных. Биты 6 и 5 FSR служат для выбора банка, а пять младших бит (4–0) адресуют ячейку памяти в пределах банка (адреса ячеек 00h… 1Fh). Обращение к требуемому байту данных осуществляется через псевдо–регистр INDF, для чего в мнемонике команды указывается наименование (INDF) или адрес (00h) псевдорегистра, например, ADDWF
INDF, d или ADDWF0, d. Отме­тим, что чтение косвенным способом самого регистра INDF даст результат 00h (т е. FSR= 0), а запись в регистр INDF не приведет к изменению его содержимого (хотя биты состояния в регистре
STATUS могут быть изменены).

Читайте также:
Где в программе 1с управление нашей фирмой посмотреть сводную информацию о движении по складам

При написании программ необходимо иметь в виду, что разряды 6 и 5 регист­ра косвенной адресации FSR определяет адрес ячейки памяти не только при использовании косвенной адресации, но и при прямой адресации, так как непо­средственно в коде команды с прямой адресацией указывается лишь 5–разряд­ный адрес ячейки.

Регистры W, OPTION и TRIS не имеют собственных адресов в карте памяти, по­этому для работы с ними используются специальные команды с неявной адреса­цией (команды MOVWF f, MOVLW k, OPTION и TRIS f). Для очистки регистров так­же используется команда CLRF f с неявной адресацией.

Для работы с константами (табл. 6.4.3) используется непосредственная адре­сация (IMM), так как константа k представляет собой непосредственный операнд, участвующий в логической операции или предназначенный для загрузки в ре­гистр–приемник. Все команды используют 8–разрядные константы, кроме коман­ды безусловного перехода GOTO к, в которой (0 ≤ k≤ 511).

Особенности выполнения команд

Организация циклов. Из входных импульсов с частотой fOSC= 1/TOSC. поступающих с вывода OSC1/CLKIN микроконт­роллера на внутренний преобразователь, формируются четыре циклические не­перекрывающиеся тактовые последовательности Q1, Q2, Q3 и Q4 с частотой следования fOSC/4. Процесс выполнения команды включает два цикла: цикл выборки и цикл выполнения команды. Цикл состоит из четырех тактов Q1…Q4 длительностью TOSC каждый.

В такте Q 1 цикла выборки происходит увеличение содержимого счетчика, в последующих тактах — считывание команды из памяти программ, в такте Q4 — ее запись в регистр команд. Декодирование и выполнение команды осуществля­ется в тактах Q1 …Q4,последующего цикла выполнения.

рис. 6.4.2

Использование двухступенчатого конвейера позволяет совместить во времени оба цикла, поэтому эффективное время выполнения для большинства команд со­ставляет один цикл (рис. 6.4.2).

Если команда изменяет содержимое счетчика команд (например, команда GOTO), то для ее выполнения потребуется два цикла. В цикле выборки новый ад­рес заносится в счетчик команд.

В такте Q1 цикла выполнения команды выбранная команда защелкивается в регистр команд. В течение тактов Q2, Q3 и Q4 происходит декодирование и вы­полнение команды (в такте Q2 чтение операнда из памяти данных, в такте

Q4 за­пись результата в память). Команды, изменяющие содержимое PC. К таким командам, помимо команд CALL, GOTO, относятся все команды, в которых регистром f является счетчик команд PC. При выполнении команд модификации счетчика, например, MOVWF PC (рис. 6.3.2):

● в младший байт PCL счетчика команд загружается содержимое рабочего ре­гистра W;

● бит 8 сбрасывается в 0;

● в разряды 9, 10 записываются значения бит РА0, РА1 из регистра состояния STATUS.

Наличие 0 в разряде 8 свидетельствует о том, что доступны только первые 256 адресов каждой страницы памяти программ.

Так как команда CALL k(k = 0…255) предписывает использование только 8–разрядного адреса, начальный адрес вызываемой подпрограммы также распо­лагается в первых 256 ячейках памяти программ текущей страницы. Команда
GOTO k(k= 0…511) может передать управление только в пределах текущей стра­ницы памяти программ.

При достижении границы страницы счетчик команд автоматически переходит на начало следующей страницы. Однако биты выбора страницы в регистре состо­яния STATUS не изменяются автоматически. Поэтому, если биты РА1, РА0 не бу­дут изменены программно, последующие команды MOVWF PC, CALL, GOTO воз­вратят управление к предыдущей странице.

После сброса контроллера:

● регистр STATUS находится в состоянии 0001 1ФФФ (Ф = 0 или 1), поэтому биты РА1, РА0 выбора страницы указывают на страницу 0;

● старший байт PCL счетчика команд находится в состоянии 1111 1111.

Следовательно, после сброса счетчик команд PC содержит код 001 1111 1111, что соответствует странице 0 (00) и последней ячейке памяти последней страни­цы (для PIC16C54 состояние после сброса равно 1FFh = 1 1111 1111). Поэтому, если по стартовому адресу будет расположена команда GOTO к, управление бу­дет передано на следующую нулевую страницу.

Команды BCF и BSF

Команды сброса (BCF) и установки (BSF) бита в реги­стре f считывают байт целиком, модифицируют один бит и выводят результат в приемник, т. е. выполняются в режиме чтение–модификация–запись. При обра­щениях к портам команды BCF и BSF могут вызвать ошибочный результат, так как с помощью команды TPIS одни выводы порта запрограммированы как входы, дру­гие — как выходы.

Пусть к биту 3 регистра PORTB обращается команда BSF, которая сна­чала считывает все восемь бит, затем выполняет установку бита 3 в 1, после чего модифицированный байт целиком записывается в выходную защелку порта. Если другой бит (например, бит 4) регистра PORTB в данный момент определен как вход, входной сигнал на этом выводе будет считан и записан обратно в выходную защелку этого же вывода, затирая ее предыдущее состояние. Если позднее линия 4 переключится в режим выхода, ее состояние может оказаться оши­бочным.

Возможность такой ситуации должна быть учтена при программировании порта. Другая особенность, которая должна учитываться при программировании: запись в порт вывода происходит в конце цикла выполнения команды, а чтение в начале.

При чтении данные должны быть стабильны в начале цикла выполнения коман­ды. Поэтому при операциях чтения, следующих сразу же за записью в тот же порт необходимо учитывать инерционность установления напряжения на выводах. Мо­жет потребоваться программная задержка (команда NOP), чтобы напряжение на выводе успело стабилизироваться до начала исполнения следующей команды чтения.

Источник: pue8.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru