[QUOTE=Vslav;783647]
Код:
// Как оказалось если в качестве сигнала CS используется выход
// с микросхем 1801ВП1 (в частности -037) то к моменту ниспадающего
// SYNC матрица еще не успевает декодировать адрес и РЕ-мулятор
// не получает устойчивой комбинации сигналов на входе. Поэтому
// выполняем ожидание
//
@@WaitSel: ldr R4, [R2, #PIO_IDR] // загружаем управляющие
movs R0, R4, lsr #(SYNC_BIT+1) // сигналы и проверяем
bcs.n @@SyncFall // сигнал SYNC
movs R0, R4, lsr #(DIN_BIT+1) // проверим активность
bcs.n @@WaitSel // сигнала DIN
ubfx R0, R4, #SEL1_BIT, #6 //
ldr R3, [R6, R0, lsl #2] //
tst R3, R3 // при данной комбинации
beq.n @@WaitSel // нет доступа к ROM
Хотел бы поинтересоваться. В диаграмме адрес снимается с шины где-то одновременно с опусканием DIN, а здесь DIN ожидается и только после этого считывается адрес. В реальной системе адрес еще какое-то время висит на шине?