задержку и правда надо от дребезга. да и в таких циклах полезно хальт ставить по возможности.
Вид для печати
задержку и правда надо от дребезга. да и в таких циклах полезно хальт ставить по возможности.
ничего спорного. хальт - обеспечивает тебе как бы антидребезг. у меня была клавиатура, которая дребезжала просто одуренно, и вот я видел такие программы, где нажимаешь кнопку 1 раз, а печатается 10-15 букаф... так что чётко чечётко...
плюс ваитовые контроллеры клав не особо поощряют частый их опрос.
другие - легко! через 20 мс все уже стихало:) почти;) бейсик и прочие zx-word'ы работали замечательно. грамотный опрос решит все проблемы, а неграмотно полагать, что это единичный случай.....
Опрос клавиатуры обычно делается на прерываниях, поэтому получается тот самый halt между опросом. Пользуйтесь возможностью ПЗУ и используйте стандартные scan-коды, генерируемые ПЗУ. Если нет возможности делать прерывание/ждать его/использовать ПЗУ - то воспользуйтесь способом, указанным выше (т.е. ожидайте отжатия кнопки). Если же нет возможности ждать отпускания (например - если надо опрашивать много кнопок) - делайте программную паузу счётчиком типа:
ld bc,<pause>
dec bc
ld a,b
or c
jr nz,$-3
Чтоб не плодить темы спрошу тут еще кое что....
Как значение в аккумуляторе разделить на 2 или 4 или 8 ??? не прибегая к процедуре деления типо этой:
Код:DIV LD B,16
LD HL,0
LD A,H
DV1 RL E
RL D
RLA
SUB C
JR NC,DV2
ADD A,C
DV2 CCF
RL L
RL H
DJNZ DV1
RET
на 2:
на 4:Код:and a
rra
на 8:Код:and a
rra
and a
rra
Код:rrca
rrca
rrca
and %00011111
Огромедное спасибо) С 99 не брался за асм... ух и тяжко)))
---------- Post added at 15:09 ---------- Previous post was at 15:03 ----------
А за одно можно код генератора случайных чисел с возможностью задания пределов???