PDA

Просмотр полной версии : Т34 ВВ55 просто ввод/вывод



azx987sa
17.08.2018, 13:39
Всем доброго!
Есть комп Мастер. На плате уже стоит ВВ55. Есть желание выводить и принимать произвольные данные. Он подключен к А5 и А6, прозвонил, точно они. По задумке на эту ВВ подключается кемпстон джойстик и принтер. Для принтера необходимо загружать драйвер.
познания в вводе/выводе весьма условные...
Беру калькулятор, считаю... А5- 65503, А6- 65471, А5иА6- 65439 или 31, 63, 95.
пробую
let a,in 31 - на джойстик реагирует корректно.
out 31, 255 - на выходе 0 - возможно этот порт только на ввод? познания в вводе/выводе весьма условные

let a,in 63 - a=0
out 31, 255 - на выходе 0

let a,in 95 -a=0
out 31, 255 - на выходе 0

Подскажите кто чем может, как правильно с этим обращаться? Может адреса не так посчитал?

Ewgeny7
17.08.2018, 13:57
Может адреса не так посчитал?
Ты просто не настроил порты микросхемы.
В самый старший, "четвертый" порт РУС (А5=1, А6=1) нужно вписать управляющее слово.
Биты этого слова укажут порту, в какую сторону необходимо передавать данные.
Скачай даташит на 82C55A. Там есть таблицы аж с картинками, чтобы вычислить управляющее слово.
Потом пишешь его в старший адрес ВВ55 и дальше пользуешься ею как заблагорассудится.

SoftFelix
17.08.2018, 14:16
let a,in 31 - на джойстик реагирует корректно.
Потому, что после сброса все порты ВВ55 настроены на ввод. Вот оно и читается нормально.

azx987sa
17.08.2018, 14:51
Потому, что после сброса все порты ВВ55 настроены на ввод. Вот оно и читается нормально.

только 31. остальные по нулям. Хотя должно быть 255. у меня там подключено через 100ом +5в.

- - - Добавлено - - -


Ты просто не настроил порты микросхемы.
В самый старший, "четвертый" порт РУС (А5=1, А6=1) нужно вписать управляющее слово.
Биты этого слова укажут порту, в какую сторону необходимо передавать данные.
Скачай даташит на 82C55A. Там есть таблицы аж с картинками, чтобы вычислить управляющее слово.
Потом пишешь его в старший адрес ВВ55 и дальше пользуешься ею как заблагорассудится.

ТОЧНО!! даташит. Вот только не пойму, какой адрес получится для "четвертого" порта? 127?

Ewgeny7
17.08.2018, 14:56
какой адрес получится для "четвертого" порта? 127?
Верно, 127.

azx987sa
17.08.2018, 15:24
Верно, 127.

out 127, 128(10000000) -вот так все на вывод
out 127, 155 (10011011) - вот так все на ввод
правильно мыслю?
[IMG]https://drive.google.com/open?id=16pUxI09fC_k3kBx3aSfwl1LTiw76mdFB

Ewgeny7
17.08.2018, 15:57
правильно мыслю?
Да, правильно.

azx987sa
17.08.2018, 16:02
Да, правильно.

Респект и уважуха! За "Невпадлу ответить на измусоленное" Отдельное спасибо!

azx987sa
17.08.2018, 21:50
В железе все работает.

azx987sa
18.08.2018, 11:30
А вот с 95-м портом странность...
10 out 127, 128
20 out 95, 255
30 out 95,0
40 goto 20
длительность высокого уровня 0.8 секунды. То есть 20-я и 30-я строка выполняются за 0.8сек
в 31 и 63 порту 20-я и 30-я строка выполняются за 3.5ms
смотрю осцилографом. можно вставить
35 print"" - разницу во времени видно и она ощутима.
что то делаю не так.?..

Barmaley_m
21.08.2018, 01:14
Странно. Попробуй в строках 20 и 30 вместо порта 95 подставить 254. Как быстро пойдет вывод на бордюр? Далее, проверь осциллографом тактовую частоту процессора и сигнал WAIT. Еще попробуй тестовую программу написать не на бейсике, а на ассемблере. Тогда, при такой короткой программе и запрещенных прерываниях, можно будет даже сигналы на ША/ШД проверять с помощью осциллографа.