Speccy - наш выбор!

Speccy - наш выбор! (http://zx-pk.ru/index.php)
-   Софт (http://zx-pk.ru/forumdisplay.php?f=10)
-   -   написал прогу под проц, что не так ? (http://zx-pk.ru/showthread.php?t=8620)

SergSV 12th October 2008 20:16

написал прогу под проц, что не так ?
 
написал прогу под Z80.программа нужна для опроса кнопок, расчета данных и вывода всего на светодиодн6ые матрицы.Залил прогу в ПЗУ но не хочет записывать данные в порт. В самом начале запретил прерывая. Может их надо разрешить перед тем как выводить в порт ? как правильно сделать ?

caro 12th October 2008 20:30

Quote:

Originally Posted by SergSV (Post 158535)
написал прогу под Z80.программа нужна для опроса кнопок, расчета данных и вывода всего на светодиодн6ые матрицы.Залил прогу в ПЗУ но не хочет записывать данные в порт. В самом начале запретил прерывая. Может их надо разрешить перед тем как выводить в порт ? как правильно сделать ?

Прерывания не влияют на работу с портами.
Для начала не плохо бы показать схему того устройства, для которого пишется программа.
Порты у тебя адресуются как порты (выборка сигналом /IORQ) или как ячейки памяти (выборка сигналом /MREQ)?
Ну и текст программы тоже не плохо увидеть.
А так ставить вопрос практически бесполезно, для ответа не достаточно информации.

balu_dark 12th October 2008 21:03

кстати а стэк ты не забыл проинить в область РАМа куда нибудь? это самая распространенная ошибка если ты новичек. как правило много людей наступают на эти грабли! а без инита стэка вызов подпрограмм просто будет вешать машинку или отправлять по неизвестному адресу но как правило не по адресу возврата из процедуры.

SergSV 12th October 2008 22:56

стек прописал.схемку могу накидать но в P-CADe.
обращение к потрам происходит так
LD C,251
LD A,'00000001'
OUT (C),A

balu_dark 12th October 2008 23:08

ну а В ты иниш нулем то? почему бы не использовать IN A,(251) и OUT (251),A

SergSV 12th October 2008 23:38

в В ноль не прописывал. а вот что-то я тормознул, надо так переделать )

boo_boo 12th October 2008 23:44

ага, дешифрация порта (который 251) каким образом происходит? исправный Z80 не может не выдавать на ША/ШД что положено. или прочий хардвер это не ловит, или чтото передавливает значения на шинах, или все изначально не работает, вроде нет других вариантов...

SergSV 14th October 2008 21:20

1 Attachment(s)
часть схемы выкладываю в формате P-CAD и в обычном формате
А писал самою простую прогу что бы проверить вывод в порты и что-то результата нет.Пробывал два проца. Процы рабочии100 %.При нажатии на кнопку "СБРОС" сигнад IORQ появляется и пропадает .Где я мог ошибиться?

10_______ DI
20________LD SP,#8050
30_MET___LD A,'01010101'
40________OUT (252),A
50________OUT (254),A
60________LD A,"10101010'
70________OUT (252),A
80________OUT (254),A
90________JR MET

balu_dark 14th October 2008 23:42

тебя больно бить или как? ты небось по светодиодам смотриш вывод идет или нет? а ты не прикидывал скорость смены состояний порта при работе твоей проги?
по твоему коду состояния будут меняться эдак килогерц под 200. причем даже переход из состояния в состояние - заметить чем то кроме осцилографа - не реально! наши глазки - все что более 25 герц - не различают! пробуй такую доработку проги:

10_______ DI
20________LD SP,#8050
30_MET___LD A,'01010101'
40________OUT (252),A
50________OUT (254),A
LD BC,20000
loop DEC BC
CMP BC,0 ;тут не уверен так как на зетке очень давно на асме не писал
JNZ loop
60________LD A,"10101010'
70________OUT (252),A
80________OUT (254),A
LD BC,20000
loop1 DEC BC
CMP BC,0 ;тут не уверен так как на зетке очень давно на асме не писал
JNZ loop1
90________JR MET

проверь с вот таким дополнением

SergSV 15th October 2008 00:05

смотрел частотомером на выходе IORQ . то есть то нет сигнала. попробую с задержкой сделать


All times are GMT +4. The time now is 14:26.

Powered by vBulletin® Version 3.8.3
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.