ORFA Port driver — различия между версиями
=DeaD= (обсуждение | вклад) (Новая страница: «Категория:Open Robotics == Драйвер портов == Драйвер позволяющий управлять состоянием портов к...») |
=DeaD= (обсуждение | вклад) (→Примеры) |
||
(не показаны 3 промежуточные версии этого же участника) | |||
Строка 4: | Строка 4: | ||
Драйвер позволяющий управлять состоянием портов контроллера в режимах цифровой логический вход или цифровой логический выход. | Драйвер позволяющий управлять состоянием портов контроллера в режимах цифровой логический вход или цифровой логический выход. | ||
− | Количество управляемых портов | + | Количество управляемых портов N: N=4 для драйвера с UID=0x20, N=2 для драйвера с UID=0x21. |
− | = | + | Количество регистров, используемых драйвером = N*2. Далее будем считать, что {rr} - начальный регистр драйвера, {rr+n} - (n+1)-й регистр. |
+ | |||
+ | Первые N регистров, это чтение\запись значения, оставшиеся N регистров - чтение\запись режима порта. Каждой из 8 линий порта соответствует 1 бит. То есть если у контроллера 2 порта PORTA, PORTF, тогда для задания 2-му и 3-му линиям порта PORTF режима работы "цифровой вход", а остальным битам этого порта режим "цифровой выход" нужно в последний регистр драйвера {rr+3} отправить 0xF3 (т.е. 11110011 в двоичном представлении - 2-й и 3-й биты выставлены в 0). При работе в режиме входа запись в значение порта включает или выключает подтягивающие резисторы контроллера на соответствующих линиях. | ||
==Примеры== | ==Примеры== | ||
+ | '''ВНИМАНИЕ! Все команды должны оканчиваться переводом строки, который означает окончание команды и передачу её на исполнение!''' | ||
===Установить порт A0 контроллера OR-AVR-M32-D в логический выход и выставить на нём значение 1=== | ===Установить порт A0 контроллера OR-AVR-M32-D в логический выход и выставить на нём значение 1=== | ||
Строка 14: | Строка 17: | ||
Запрос: | Запрос: | ||
L40 | L40 | ||
− | S40 | + | S40 06 01 S40 02 01 P |
Ответ: | Ответ: | ||
L40 | L40 | ||
− | + | SWAASWAAP | |
Разбор: | Разбор: | ||
* Первый запрос - L40 - установить адрес локального устройства в 0x40. Ответ - L40 - адрес установлен. (Можно не делать, если вы уже установили адрес локального устройства ранее). | * Первый запрос - L40 - установить адрес локального устройства в 0x40. Ответ - L40 - адрес установлен. (Можно не делать, если вы уже установили адрес локального устройства ранее). | ||
− | * Второй запрос - S40 | + | * Второй запрос - S40 06 01 - отправим в устройство 0x40 номер регистра 06 (это регистр контроля режима работы порта PORTA) и маску порта 01 - установить как цифровой логический выход 0-ю линию порта PORTA, S40 02 01 - отправим в устройство 0x40 номер регистра 02 (это регистр значения линий порта PORTA) и маску порта 01 - установить как на линии 0 значение 1, P - конец запроса. Ответ: SW - начали запись в устройство, AA - подтверждения записи 2 байт в устройство, SW - начали запись в устройство, AA - подтверждения записи 2 байт в устройство, P - конец ответа. |
===Установить порт A0 контроллера OR-AVR-M32-D в логический вход и прочитать его значение=== | ===Установить порт A0 контроллера OR-AVR-M32-D в логический вход и прочитать его значение=== | ||
− | |||
Запрос: | Запрос: | ||
L40 | L40 | ||
− | S40 | + | S40 06 00 S40 02 S41 01 P |
Ответ: | Ответ: | ||
L40 | L40 | ||
− | + | SWAASWASR01P | |
Разбор: | Разбор: | ||
− | * Первый запрос - L40 - установить адрес локального устройства в 0x40. Ответ - L40 - адрес установлен. (Можно не делать, если вы уже установили адрес локального устройства ранее). | + | * Первый запрос - L40 - установить адрес локального устройства в 0x40. Ответ - L40 - адрес установлен. (Можно не делать, если вы уже установили адрес локального устройства ранее). |
− | * Второй запрос - S40 00 | + | * Второй запрос - S40 06 00 - отправим в устройство 0x40 номер регистра 06 (это регистр контроля режима работы порта PORTA) и маску порта 00 - установить как цифровой логический вход все линии порта PORTA, S40 02 - отправим в устройство 0x40 номер регистра 02 (это регистр значения линий порта PORTA), S41 01 - прочитаем из устройства 0x40 нужные нам 1 байт ответа, P - конец запроса. Ответ: SW - начали запись в устройство, AA - подтверждения записи 2 байт в устройство, SW - начали запись в устройство, A - подтверждения записи 1 байта в устройство, SR - начали получать ответ, 01 - байт ответа (на всех линиях, кроме 0-вой логические нули, только на линии 0 логическая единица), P - конец ответа. |
Текущая версия на 07:19, 4 ноября 2009
Содержание
Драйвер портов
Драйвер позволяющий управлять состоянием портов контроллера в режимах цифровой логический вход или цифровой логический выход.
Количество управляемых портов N: N=4 для драйвера с UID=0x20, N=2 для драйвера с UID=0x21.
Количество регистров, используемых драйвером = N*2. Далее будем считать, что {rr} - начальный регистр драйвера, {rr+n} - (n+1)-й регистр.
Первые N регистров, это чтение\запись значения, оставшиеся N регистров - чтение\запись режима порта. Каждой из 8 линий порта соответствует 1 бит. То есть если у контроллера 2 порта PORTA, PORTF, тогда для задания 2-му и 3-му линиям порта PORTF режима работы "цифровой вход", а остальным битам этого порта режим "цифровой выход" нужно в последний регистр драйвера {rr+3} отправить 0xF3 (т.е. 11110011 в двоичном представлении - 2-й и 3-й биты выставлены в 0). При работе в режиме входа запись в значение порта включает или выключает подтягивающие резисторы контроллера на соответствующих линиях.
Примеры
ВНИМАНИЕ! Все команды должны оканчиваться переводом строки, который означает окончание команды и передачу её на исполнение!
Установить порт A0 контроллера OR-AVR-M32-D в логический выход и выставить на нём значение 1
Запрос:
L40 S40 06 01 S40 02 01 P
Ответ:
L40 SWAASWAAP
Разбор:
- Первый запрос - L40 - установить адрес локального устройства в 0x40. Ответ - L40 - адрес установлен. (Можно не делать, если вы уже установили адрес локального устройства ранее).
- Второй запрос - S40 06 01 - отправим в устройство 0x40 номер регистра 06 (это регистр контроля режима работы порта PORTA) и маску порта 01 - установить как цифровой логический выход 0-ю линию порта PORTA, S40 02 01 - отправим в устройство 0x40 номер регистра 02 (это регистр значения линий порта PORTA) и маску порта 01 - установить как на линии 0 значение 1, P - конец запроса. Ответ: SW - начали запись в устройство, AA - подтверждения записи 2 байт в устройство, SW - начали запись в устройство, AA - подтверждения записи 2 байт в устройство, P - конец ответа.
Установить порт A0 контроллера OR-AVR-M32-D в логический вход и прочитать его значение
Запрос:
L40 S40 06 00 S40 02 S41 01 P
Ответ:
L40 SWAASWASR01P
Разбор:
- Первый запрос - L40 - установить адрес локального устройства в 0x40. Ответ - L40 - адрес установлен. (Можно не делать, если вы уже установили адрес локального устройства ранее).
- Второй запрос - S40 06 00 - отправим в устройство 0x40 номер регистра 06 (это регистр контроля режима работы порта PORTA) и маску порта 00 - установить как цифровой логический вход все линии порта PORTA, S40 02 - отправим в устройство 0x40 номер регистра 02 (это регистр значения линий порта PORTA), S41 01 - прочитаем из устройства 0x40 нужные нам 1 байт ответа, P - конец запроса. Ответ: SW - начали запись в устройство, AA - подтверждения записи 2 байт в устройство, SW - начали запись в устройство, A - подтверждения записи 1 байта в устройство, SR - начали получать ответ, 01 - байт ответа (на всех линиях, кроме 0-вой логические нули, только на линии 0 логическая единица), P - конец ответа.