Цитата(Pepper @ Dec 21 2007, 15:40)

там все нормально... это код, который овечает за вывод значений на сигментах... он никак на чтение из RTC не влияет:
Digits: .db \
да.. должно быть не влияет.. Но только не корректно прибавлять значение только к младшему регистру.
если у вас преред массивом не стоит директива ".org" .К воросу это отношение не имеет но на будущее учтите что это грабли! :-) поясняю: Если к примеру у вас значение ZH:ZL = 0x23ff, то прибавив к ZL какоето значение, к примеру "2" вы не получите ожидаемого адреса 2401, а получите 2301.
делай те в следующий раз к примеру так:
Код
ldi ZH, high(Digits << 1) - загружается 0й элемент массива
ldi ZL, low(Digits << 1)
clr r20//любой свободный регистр
add ZL, r17 - прибавляю к адресу 0ого элемента цифру, которую необходимо показать
adc ZH, r20 // с учетом переноса
lpm r17, Z - считываю из памяти программ
Цитата(sergik_vrn @ Dec 21 2007, 15:51)

речь не о задержке, а о сдвиге синхронизации. запись-то идет по нарастающему фронту, а чтение - по спадающему (или наоборот). то есть при переходе от записи (команды) к чтению (данных) надо осуществить сдвих фазы CS на полтакта
Что Вы путаете.. По заднему фронту восьмого такта устанавливается Нулевой бит данных из микросхемы..См. DS
Сообщение отредактировал adc - Dec 21 2007, 13:05
Умный программист пишет тупым кодом гениальные вещи, а не наоборот...