2. да, но ведь работает! просто изначально там стоял кварц на 10МГц, видимо забыл поменять на 3..8
3.у тебя есть Евстифеев
Код: Выделить всё
T1_OVF:
in tmp,sreg
push tmp
; проверка флага Т и ветвление
brts t1_001 ;если второй цикл переход
; если первое переполнение вкл запускающий импульс
sbi OutPort,(1<<OutPin> 2мкс
; выключаем упр.импульс и выходим. ; | 1NOP = 0,25мкс
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cbi OutPort,(1<<OutPin) ; -
rjmp t1_exit
t1_001:
; ; отключаем T1
; ldi tmp,0b00000000
; ldi tmp,(0<<TOV1)
; out TIMSK,tmp
ldi tmp,T1_off
out TCCR1B,tmp
; вкл ВТОРОЙ упр. импульс
sbi OutPort,(1<<OutPin) ; -
; записываем в счетчик Т1 текушего значения power
ldi tmp,low(power0)
ldi tmp1,high(power0)
out TCNT1H,tmp1
out TCNT1L,tmp
; таймер стоит, ничего не считает, в TCNT1 значение power!
; и меняем флаг Т на 0, для нового цикла
; pop tmp
; out sreg,tmp
; Т1 готов к новому циклу
; nop
; nop
; выключаем упр.импульс и выходим.
; ldi tmp,T1_off
; out TCCR1B,tmp
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cbi OutPort,(1<<OutPin) ; получается 2,5 мкс
pop tmp
out sreg,tmp
clt
t1_exit:
reti
Код: Выделить всё
;ldi tmp,(1<<ISC01)|(1<<ISC00) ;
ldi tmp,(1<<ISC01)|(0<<ISC00) ;
out MCUCR,tmp ;INT0
ldi tmp,(1<<INT0)
out GIMSK,tmp
вот я дебил ведь думали же что управляющий импульс мал , после 4 часов транса решил попробывать на дурака задержку Код: Выделить всё
clr tmp
d01:
dec tmp
brne d01
респект тебе и уважуха!!!!!