| 
 | 
Ребята такой вопрос работаю с EEPROM, в процессе записи нужен ли  обнулять регистор EEDATA. Если идет обнуление на остальных ячейках записывает значение 00.  Подскажите как быть...  | 
  
 | 
| 
 | 
Для чтения: * нужно записать в соответствующий регистр адресс и затем прочитать с регистра EEDATA значение. * для записи: занести значение в EEDATA, занести адресс, выполнить "волшебную последовательность"  | 
  
 | 
| 
 | 
Учтите, что данный товарищ так и не предоставил доказательств того, что это не "развод".  | 
  
 | 
| 
 | 
Уважаемый Gregory я что то Вас не понимаю о чем вы можно конкретно.
   | 
  
 | 
| 
 | 
peling: обнулять регистор EEDATA.  нет, читайте ДШ, там всё разжёвано При записи в память EEPROM, необходимо сначала записать требуемый адрес в EEADR регистр и данные в EEDATA регистр. Затем выполнить специальную последовательность команд, производящуюю непосредственную запись: bcf INTCON,GIE movlv   55h movwf   EECON2 movlv   AAh movwf   EECON2 bsf     EECON1,WR   ;установить WR бит, начать запись  | 
  
 | 
| 
 | 
Сергей К я считоваю инфо. с компьютера через LPT  порт порт работает в режыме ECP портом (микрокотроллером)управляет программа написанн-й на C++ ::::::::: начало>>>> 1 передача лог"1" на микроконтроллер после принятие 	        ORG 0X000 START 	CLRF PORTA 	CLRF PORTB 	BSF STATUS,RP0 MOVLW B'01001' 	MOVWF TRISA 	MOVLW B'11111111' 	MOVWF TRISB 	BCF STATUS,RP0 i movf PORTA,w movwf count btfss count,0 goto i MOVLW B'00010'   ; передача ответ сигнала MOVWF PORTA после получения ответ сигнала компьютер выставляет первый блок(8бит) в регистор DATA порт LPT контроллер считовает и записивает в первую ячейку ; scan2 	    bcf status,2 	     movf PORTB,w 	    btfsc status,2 	    goto scan2 movwf EEDATA 	    movlw 0x0000 	     movwf EEADR 	   bsf status,5 bsf EECON1,WREN 		MOVLW 0x055 		MOVWF EECON2 		MOVLW 0x0AA 		MOVWF EECON2 k 		BSF EECON1,WR btfsc EECON1,WR goto t 		goto k t bcf EECON1,WREN 	             bcf status,RP0 RETURN таким же образом записиваю  2 ой блок но во время считование ошыбки  послед.число оказовается в обоех ячейках?????????  | 
  
 | 
| 
 | 
А подождать, пока запись закончится? Посмотрите документацию на МК. Там пример есть. (microchip.ru) Запись 1 байта в EEPROM длится некоторое время (не зависит от тактовой частоты). Сейчас под рукой документации нету, там нужно проверить флаг "завершения записи".  | 
  
 | 
| 
 | 
кусок из рабочей программы:	 	RD_EE	BCF	STATUS,RP0 ;----------подпрограмма ЧТЕНИЯ  из EEPROM	\ 		MOVLW	01h		;адрес ячейки EEPROM, где хранится TB	 	 \ 		MOVWF	EEADR 		BSF	STATUS,RP0 		BSF	EECON1,RD 		BCF	STATUS,RP0 		MOVF	EEDATA,0	;W=EEDATA				 				 		RETURN			;										/ WR_EE	;------ЗАПИСЬ в EEPROM\________________________ 	BSF	STATUS,RP0 	;банк1								\ 	BSF	EECON1,WREN	;разрешить ЗП						 \ 	BCF	INTCON,GIE	;запрет прерываний 	MOVLW	055h		;ЗП 55 	MOVWF	EECON2		; 	MOVLW	0AAh		;ЗП АА 	MOVWF	EECON2		; 	BSF	EECON1,WR	;установить бит начала записи 	 	BCF	STATUS,RP0 	;банк0 	CALL DELAY1						 	BCF	STATUS,WREN	;запрет записи в EEPROM				/	 		RETURN			;	_______________________________/  | 
  
 | 
| 
 | 
Незабывайте "ждать"(пауза) до начала новой записи в ячейку. P.S.: Там есть бит об окончании записи!  | 
  
 | 
| 
 | 
Мужики как сказали сделал все отлично работает спасибо Вам всем.  | 
  
 |