![]() |
написал прогу под проц, что не так ?
написал прогу под Z80.программа нужна для опроса кнопок, расчета данных и вывода всего на светодиодн6ые матрицы.Залил прогу в ПЗУ но не хочет записывать данные в порт. В самом начале запретил прерывая. Может их надо разрешить перед тем как выводить в порт ? как правильно сделать ?
|
Quote:
Для начала не плохо бы показать схему того устройства, для которого пишется программа. Порты у тебя адресуются как порты (выборка сигналом /IORQ) или как ячейки памяти (выборка сигналом /MREQ)? Ну и текст программы тоже не плохо увидеть. А так ставить вопрос практически бесполезно, для ответа не достаточно информации. |
кстати а стэк ты не забыл проинить в область РАМа куда нибудь? это самая распространенная ошибка если ты новичек. как правило много людей наступают на эти грабли! а без инита стэка вызов подпрограмм просто будет вешать машинку или отправлять по неизвестному адресу но как правило не по адресу возврата из процедуры.
|
стек прописал.схемку могу накидать но в P-CADe.
обращение к потрам происходит так LD C,251 LD A,'00000001' OUT (C),A |
ну а В ты иниш нулем то? почему бы не использовать IN A,(251) и OUT (251),A
|
в В ноль не прописывал. а вот что-то я тормознул, надо так переделать )
|
ага, дешифрация порта (который 251) каким образом происходит? исправный Z80 не может не выдавать на ША/ШД что положено. или прочий хардвер это не ловит, или чтото передавливает значения на шинах, или все изначально не работает, вроде нет других вариантов...
|
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 |
тебя больно бить или как? ты небось по светодиодам смотриш вывод идет или нет? а ты не прикидывал скорость смены состояний порта при работе твоей проги?
по твоему коду состояния будут меняться эдак килогерц под 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 проверь с вот таким дополнением |
смотрел частотомером на выходе 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.