Слушайте я тут вычитал из умного шита что при таком построении линии все начинается по другому... голова совсем дырявая... стала :crying:
Короче когда таблеткой касаешься идет просадка линии на 15мс (зарядка внутреннего кондера) потом активность таблетки составляет 45 мс или 15мс+45мс=60... и в этот интервал (45мс) можно приступать к сбросу(470мс). Не кидайтесь помидорами но кажись оно работает... пока прошел сброс. Вот код
.include "tn2313def.inc";Define chip particulars
.def tmp=r16
.def tmp2=r17
.def delay_r=r18
.def delay_cc=r19
.def ADRS=r20
.def IADRS=r21
reset:
ldi tmp, low(ramend)
out spl, tmp
clr tmp
jdem:
sbis PIND,2 ; ждем контакта
rjmp jdem ; если есть контакт
sbi DDRB,2 ;зажигаем LED2
sbi PORTB,2
ldi delay_r, 1 ; инициализация задержки 50-60 us 8 Мгц
ldi delay_cc, 150
rcall delay
Res: ; подпрограмма RESET таблетки
sbi PORTB,0 ; линию в ноль
; замыкание на землю через n-p-n транзистор
ldi delay_r, 5 ; инициализация задержки 473 us 8 Мгц
ldi delay_cc, 250
rcall delay
cbi PORTB,0 ; линию в 1
ldi delay_r, 1 ; инициализация задержки 5.8 us 8 Мгц
ldi delay_cc, 10
rcall delay
jdem2: ; ждем ответа далласа
sbis PIND,2
rjmp jdem2 ; если есть идем дальше
end:
sbi DDRB,1
sbi PORTB,1 ;зажигаем LED1
rjmp end
; енддд
; модуль реализации задержки
delay: ; задержка устанавливается регистром delay_r
mov tmp,delay_r ; кол-во повторов циклов
mov tmp2,delay_cc ; цисло циклов 0-255
delay_b:
mov tmp2, delay_cc
delay_a:
dec tmp2
brne delay_a
nop
nop
dec tmp
brne delay_b
clr delay_r
clr delay_cc
ret
:smile3046: