	; загрузить значения из 24LC04
	;установка скорости обмена по TWI
		ldi	tmp,12
		out	TWBR,tmp
	; выдать команду СТАРТ
		ldi	tmp,(1<<TWINT)|(1<<TWSTA)|(1<<TWEN)
		out	TWCR,tmp
	; ждать окончания операции
	m24_1:	
		in	tmp,TWCR
		sbrs	tmp,TWINT
		rjmp	m24_1
	; проверка кода ответа 0x08
		in	tmp,TWSR
		andi	tmp,0xF8
		cpi	tmp,TW_START
		breq	m24_01
		rjmp	twi_err
	m24_01:	
	; если ОК зарузка и передача адреса
		ldi	tmp,SLA_W
		out	TWDR,tmp
		ldi	tmp,(1<<TWINT)|(1<<TWEN)
		out	TWCR,tmp
	; ждать окончания операции
	m24_2:	
		in	tmp,TWCR
		sbrs	tmp,TWINT
		rjmp	m24_2
	; проверка кода ответа 0x40
		in	tmp,TWSR
		andi	tmp,0xF8
		cpi	tmp,MT_SLA_ASK
		brne	twi_err
	; если ОК загрузка указателя адреса
		clr	tmp
		out	TWDR,tmp
		ldi	tmp,(1<<TWINT)|(1<<TWEN)
		out	TWCR,tmp
	; ждать окончания операции
	m24_3:	
		in	tmp,TWCR
		sbrs	tmp,TWINT
		rjmp	m24_3
	; проверка кода ответа 0x40
		in	tmp,TWSR
		andi	tmp,0xF8
		cpi	tmp,MT_DATA_ASK
		brne	twi_err
;=========================
	; повторный старт
		ldi	tmp,(1<<TWINT)|(1<<TWSTA)|(1<<TWEN)
		out	TWCR,tmp
	; ждать окончания операции
	m24_4:	
		in	tmp,TWCR
		sbrs	tmp,TWINT
		rjmp	m24_4
	; проверка кода ответа 0x08
		in	tmp,TWSR
		andi	tmp,0xF8
		cpi	tmp,TW_RESTART
		brne	twi_err
	; если ОК зарузка и передача адреса
		ldi	tmp,SLA_R
		out	TWDR,tmp
		ldi	tmp,(1<<TWINT)|(1<<TWEN)
		out	TWCR,tmp
	; ждать окончания операции
	m24_5:	
		in	tmp,TWCR
		sbrs	tmp,TWINT
		rjmp	m24_5
	; проверка кода ответа 0x40
		in	tmp,TWSR
		andi	tmp,0xF8
		cpi	tmp,MR_SLA_ASK
		brne	twi_err
twi_data:
		ldi	tmp,4
		mov	n0,tmp
		ldi	ZL,low(mls)
		ldi	ZH,high(mls)
	; прием данных с подтверждением
twR_dat_next:
		ldi	tmp,(1<<TWINT)|(1<<TWEA)|(1<<TWEN)
		out	TWCR,tmp
	; ждать окончания операции
	m24_6:	
		in	tmp,TWCR
		sbrs	tmp,TWINT
		rjmp	m24_6
	; проверка кода ответа 0x50
		in	tmp,TWSR
		andi	tmp,0xF8
		cpi	tmp,MR_DATA_ASK
		brne	twi_err
	; данные приняты считать и сохранить
		in	tmp,TWDR
		st	Z+,tmp
		dec	n0
		brne	twR_dat_next
	; пересылка 5 байта без подтверждения
		ldi	tmp,(1<<TWINT)|(0<<TWEA)|(1<<TWEN)
		out	TWCR,tmp
	; ждать окончания операции
	m24_7:	
		in	tmp,TWCR
		sbrs	tmp,TWINT
		rjmp	m24_7
	; проверка кода ответа 0x58
		in	tmp,TWSR
		andi	tmp,0xF8
		cpi	tmp,MR_DATA_NASK
		brne	twi_err
	; данные приняты считать и сохранить
		in	tmp,TWDR
		st	Z+,tmp
	; сформировать стоп
		ldi	tmp,(1<<TWINT)|(1<<TWSTO)|(1<<TWEN)
		out	TWCR,tmp
		
	
		
		
