Можно ли вывести несколько ASCII символов в последовательный порт МК-161?

Можно ли вывести несколько ASCII символов в последовательный порт МК-161?

Вернее, вопрос лучше поставить так: как вывести несколько ASCII символов в последовательный порт? /потому что можно наверняка/

RTFM а именно Д1, глава 9

Вроде, почти понял, как (+) 1)Записываем "1" в регистр Разрешение универсального последовательного порта (R9070) /разрешаем доступ к посл.порту

2)Записываем "12" в регистр Скорость обмена (R9071) /38400 бод

3)Записываем Режим обмена (R9072) /8-битовый обмен

4)Тут вопрос: надо ли использовать регистры Запись и чтение данных в буфер передачи (R9081-R9084) или можно сразу писать в регистр Передача данных (R9077)?
Передача данных по последовательному порту начинается после выполнения операции записи в регистр памяти с адресом 9077. При выполнении команды значение регистра X стека преобразуется в целое число, ограничивается до 255 и заносится в регистр передачи. Если число не равно нулю, то счетчик посылок (см. п. 9.3.3) обнуляется, число из буфера передачи заносится в устройство ввода-вывода ЭВМ и передаётся в последовательный порт. При этом смещением для загрузки числа из буфера передачи в порт служит счетчик посылок.

Перечитал написанное, подумал, и снова не понял. Похоже, надо сначала записать символ или строку в буфер передачи

Все, Михаил Борисович пояснил, как. Теперь понятно.

А никто из владельцев МК-1хх не пробовал просто посылать байты
из последовательного порта в тот же виндовый терминал.

В частности, строку символов типа "-sw090" :)

Проверка. Если напишете тестовую программу, выводящую одну ASCII-строчку в COM-порт, могу проверить её работоспособность на своём МК-161.

Также где-то COM'овские мышки валялись. ;-)

Если прозой, а не в стихах (не на чем) :), то (+) фрагмент передачи может выглядеть типа так:

1   РР П 9070  ; Разрешаем доступ к посл. порту
12  РР П 9071  ; Скорость передачи 38400 бод
0   РР П 9072  ; 8-битовый обмен
Сх  РР П 9080  ; Сброс индексного регистра буфера передачи
45  РР П 9082  ; ASCII '-'
115 РР П 9082  ; ASCII 's'
119 РР П 9082  ; ASCII 'w'
48  РР П 9082  ; ASCII '0'
57  РР П 9082  ; ASCII '9'
48  РР П 9082  ; ASCII '0'
6   РР П 9077  ; Передача в порт шести байт

Работает. Да, всё заработало и передало нужную строчку в Гипертерминал на 38400 8-N-1 без хэндшейка.

На всякий случай передал программу в комп и декомпилировал. Вот, что получилось:

.CHARSET 1251

; Файл comtest
.ORG 0
	CX
	1	PP M 9070	; Разрешение порта (Последовательный порт)
	12	PP M 9071	; Скорость обмена (Последовательный порт)
	0	PP M 9072	; Режим обмена (Последовательный порт)
	CX	PP M 9080	; Индесный регистр буфера передачи (Последовательный порт)
	45	PP M 9082	; Байт буфера передачи, автоинкремент (Последовательный порт)
	115	PP M 9082	; Байт буфера передачи, автоинкремент (Последовательный порт)
	119	PP M 9082	; Байт буфера передачи, автоинкремент (Последовательный порт)
	48	PP M 9082	; Байт буфера передачи, автоинкремент (Последовательный порт)
	57	PP M 9082	; Байт буфера передачи, автоинкремент (Последовательный порт)
	48	PP M 9082	; Байт буфера передачи, автоинкремент (Последовательный порт)
	57	PP M 9082	; Байт буфера передачи, автоинкремент (Последовательный порт)
	6	PP M 9077	; Передача данных (Последовательный порт)
	R/S
.END 

Спасибо! Значит, можно (+) управлять сервоприводом через адаптер:
http://pmk.arbinada.com/node/220

Можно. Пожалуйста. Только наверняка потребуется что-то вроде 0Dh в конце строчки выводить.

Да и косвенная адресация поможет сделать подпрограмму вывода строки покороче.

Нет, 0Dh не нужен, парсер команд в avr-ке обрабатывает посимвольно, а не построчно. Должен сработать от этих 6 символов

Да, подпрограмму - это хорошо.

Если кто соберется сделать такую подпрограмму, то есть смысл
сразу подавать на вход подпрограммы (через стек?) угол в градусах от 0 до 180.

Еще можно доделать контроллер, чтобы можно было управлять
несколькими сервоприводами. Команда может выглядеть так:

-sNwAAA,
        где 
         N - номер серво,
         ААА - угол поворота в градусах

мышА. Давайте уже мышку подключите. :) Представляете, будет первый калькулятор с мышой!

Ага. И "Сапёра" для ПМК написать с поддержкой мышки. Только жаль, что COM-портовую мышку уже и не найти в магазине.

Блин, у меня этих СОМ мышей как грязи. на любой радиобарахолке даром отдадут.

Мыши. Мышь для PS/2 - по сути, то же самое, что и COM. А их и сейчас продают во множестве.

А если серьезно подключить? :) (+). Помимо Сапера пришло на ум - ввод текста с виртуальной клавы.
А там и до ФИДО с пакетной радиосввязью недалеко :)

Какие шутки? :) Тока боюсь это надо на ассемблере процессора делать и добавлять в прошивку и типа команду добавлять Мышь(on/off), иначе обработка мыши будет тормозить прогу юзера.

Понятно, что на асм-е было бы лучше, но вряд-ли место в прошивке есть для такой "фичи" :)

В прошивке. В прошивку уже вынесена вся универсальная тягомотина, связанная с COM-портом, включая генерацию прерываний.

Так что мыша вряд ли будет жрать ресурсы. Разве что чуть-чуть, когда мышу передвинешь.

Версия 0.5 UART контроллера для поддержки 8 серво. Обновил UART-контроллер в процессе конструирования робото-руки
http://pmk.arbinada.com/node/220

Робофорум. Кстати, как ты вот к этой тусовке относишься:
http://roboforum.ru/

Да, я их почитываю регулярно, но не (+) участвую активно. Нет времени что-то серьезное строить.
А такую робо-руку (если получится), соберу за пару вечеров.

Выложил исходники вер.0.5 и несколько фото (+) работы с двумя сервоприводами.