PDA

Просмотр полной версии : Измеритель длительности выдержки механических фотоаппаратов для классического ZX 48



SpecialistMK87
25.02.2013, 11:34
Есть кучка старинных фотиков, типа Любитель, Зоркий, ФЭД, Praktica, Смена, Москва... И есть серьезные сомнения по соответствию реальных выдержек и тех что на шкалах написаны. Хочется иметь возможность проконтролировать выдержки от 1/1000 с до 1/15, то есть самая короткая 1 мс.
Схема работающая на avr уже есть, хочу сделать тоже самое на ZX Spectrum 48
Схема сложности не представляет ( нужно опрашивать один бит, от фотодиода ), но по будущей программе есть вопросы.
Нужно измерить длительность импульса с точностью +-30мкс, лучше +-10 мкс.
С точки зрения программы - как можно чаще проверять не появился ли 0 в одном бите конкретного порта, как только появился - измерять время до появления 1 там же.
Как появится, вывести на экран измеренное время и ожидать нажатия клавиши для начала нового измерения.

Процесс измерения времени прерывать нельзя. Для обеспечения точности измерения.

Получится такое сделать на Спектруме?

SAM style
25.02.2013, 13:48
Получится. Примерно так (полагается, что сигнал прицеплен на младший бит порта кемпстона):

di
ld de,0
waitzero:
in a,(31)
rra
jr c,waitzero
waitone:
inc de
in a,(31)
rra
jr nc,waitone
ei
ret
После этого посмотреть, что получилось в de. Всего будет (de - 1)*33 + 28 тактов. 1 такт - примерно 280нс.

PS: А ну да, и предел - 0.6 сек, потом de переполнится. Но этого, вроде, хватит.

SpecialistMK87
25.02.2013, 14:19
SAM style, спасибо большое
получается дискретность измерения ~33 такта или ~9.4мкс
с головой хватит :)

еще вопрос по схеме... есть ли смысл полностью адрес порта дешифрировать? Или допустимо сделать урезанную дешифрацию, как на kempston joystick часто делают?

Slesar
27.02.2013, 17:12
А смысл мерить? У древней механики разброс +/- 50% на коротких выдержках.

Vadim
27.02.2013, 19:36
А смысл мерить?
Мне в середине 90-х тоже померять хотелось, что бы выяснить, какой именно разброс, как врали затворы. Но схемку не сделал, руки не дошли.