Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы
Непрочитано 21.01.2008, 20:27  
J-t
Частый гость
 
Регистрация: 18.10.2007
Сообщений: 22
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
J-t на пути к лучшему
По умолчанию Запись в EEPROM pic16f628a

Всем привет. Такая ситуация, произвожу запись двух чисел в EEPROM, последовательно друг за другом, первое записывается, а второе нет.
Вот код:
КР set 0x9
;при первой записи SM = FF
clrwdt
bsf status,rp0
movlw 0xa
movwf eeadr
bsf eecon1,0
movf eedata,w
bcf status,rp0
movwf SM ; в регистр SM записан адрес по которому записана инфомация при прошлой записи
; проверка свободного адреса для записи нового кода
movf SM,w
sublw KP ; вычесть из W константу КР
btfsc status,2 ; если поднят флаг нулевого результата Z, исполнять программу далее
goto M13 ; переход в подпрограмму "нехватка памяти"
; определение нового адреса для записи
incf SM,1 ; к регистру SM прибавлена 1. В SM записан адрес для текущей записи кода карточки
; запись данных нового кода в EEPROM из Sum
movf SM,w
bsf status,rp0
movwf eeadr
bcf status,rp0
movf Sum,w
bsf status,rp0
movwf eedata
bsf eecon1,2
movlw 55h
movwf eecon2
movlw 0aah
movwf eecon2
bsf eecon1,1
bcf eecon1,2
bcf eecon1,4
bcf status,rp0
; запись нового адреса ячейки в EEPROM
movlw 0xa
bsf status,rp0
movwf eeadr
bcf status,rp0
movf SM,w
bsf status,rp0
movwf eedata
bsf eecon1,2
movlw 55h
movwf eecon2
movlw 0aah
movwf eecon2
bsf eecon1,1
bcf eecon1,4
bcf status,rp0
bsf portb,6 ; зажечь светодиод удачной записи в EEPROM

в чем ошибка?
Реклама:
J-t вне форума  
Непрочитано 21.01.2008, 20:37  
Kabron
Почётный гражданин KAZUS.RU
 
Аватар для Kabron
 
Регистрация: 12.11.2004
Адрес: Москва
Сообщений: 8,497
Сказал спасибо: 694
Сказали Спасибо 4,286 раз(а) в 1,962 сообщении(ях)
Kabron на пути к лучшему
По умолчанию

Вот это из листинга Протон васика для 16F628 может поможет:


0067 00436 EE@WR
0067 00437 EE@WR@W
0067 1683 00438 BSF 3,5
0068 009A 00439 MOVWF 154
0069 151C 00440 BSF 156,WREN
006A 3055 00441 MOVLW 85
006B 009D 00442 MOVWF 157
006C 30AA 00443 MOVLW 170
006D 009D 00444 MOVWF 157
006E 149C 00445 BSF 156,WR
006F 189C 00446 BTFSC 156,WR
0070 286F 00447 GOTO $ - 1
0071 111C 00448 BCF 156,WREN
0072 0A9B 00449 INCF 155,F
0073 291A 00450 GOTO I@NT
0074 01A7 00451 DL@US CLRF 39
0075 3EFC 00452 DLUS@W ADDLW 252
0076 00A6 00453 MOVWF 38
0077 09A7 00454 COMF 39,F
0078 1C03 00455 SKPC
0079 2880 00456 GOTO $ + 7
007A 30FF 00457 MOVLW 255
007B 0000 00458 NOP
007C 07A6 00459 ADDWF 38,F
007D 1803 00460 SKPNC
007E 287B 00461 GOTO $ - 3
007F 07A6 00462 ADDWF 38,F
0080 0000 00463 NOP
0081 0FA7 00464 INCFSZ 39,F
0082 287A 00465 GOTO $ - 8
0083 0008 00466 RETURN



011A 1383 00621 I@NT BCF 3,7
011B 1283 00622 I@NT2 BCF 3,5
011C 1303 00623 BCF 3,6
011D 0000 00624 NOP
011E 0008 00625 RETURN
Kabron вне форума  
Непрочитано 21.01.2008, 23:29  
vdlab
Гражданин KAZUS.RU
 
Аватар для vdlab
 
Регистрация: 17.07.2006
Адрес: PV.DP.UA
Сообщений: 620
Сказал спасибо: 3
Сказали Спасибо 60 раз(а) в 48 сообщении(ях)
vdlab на пути к лучшему
По умолчанию Re: Запись в EEPROM pic16f628a

Сообщение от J-t
Всем привет. Такая ситуация, произвожу запись двух чисел в EEPROM, последовательно друг за другом, первое записывается, а второе нет.
в чем ошибка?
А где пауза между процедурами записи?
__________________
Если ты читаешь это - значит тебе нечем заняться...
vdlab вне форума  
Непрочитано 22.01.2008, 00:36  
J-t
Частый гость
 
Регистрация: 18.10.2007
Сообщений: 22
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
J-t на пути к лучшему
По умолчанию

vdlab, спасибо.Уже все сделал.
Поставил паузу после окончания процессов записи 6,5 мсек.
Все в порядке. Всем спасибо.
J-t вне форума  
Непрочитано 22.01.2008, 04:13  
pfgx
Временная регистрация
 
Регистрация: 18.10.2007
Сообщений: 81
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
pfgx на пути к лучшему
По умолчанию

Правильней не просто паузу сделать, а дождаться сброса бита записи (см. документацию). При этом надо учесть, что бит может и не сброситься из-за неисправного кристалла, помех по питанию, большого пятна на солнце, фаз луны и т.п.
pfgx вне форума  
Непрочитано 22.01.2008, 10:01  
dimmich
Почётный гражданин KAZUS.RU
 
Аватар для dimmich
 
Регистрация: 12.05.2006
Адрес: Владимир
Сообщений: 2,791
Сказал спасибо: 2,966
Сказали Спасибо 4,205 раз(а) в 1,183 сообщении(ях)
dimmich на пути к лучшему
По умолчанию

pfgx, спасибо! Ценное замечание! Никогда не учитывал...
dimmich вне форума  
Непрочитано 22.01.2008, 16:10  
tim18
Частый гость
 
Регистрация: 01.01.2007
Сообщений: 49
Сказал спасибо: 2
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
tim18 на пути к лучшему
По умолчанию

Сообщение от pfgx
Правильней не просто паузу сделать, а дождаться сброса бита записи (см. документацию).....
Это точно! Пришлось когда-то читать документацию!
Делал запись 16 байт в EEPROM в PIC16F84A.
Ни сразу понял в чём косяк! Но после документации!!!
tim18 вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запись EEPROM Megi88 FedorChek Микроконтроллеры, АЦП, память и т.д 3 23.03.2009 18:42
PIC,запись в EEPROM ? retas Микроконтроллеры, АЦП, память и т.д 6 30.11.2007 19:13
Запись в I2C EEPROM yel Микроконтроллеры, АЦП, память и т.д 8 07.03.2007 16:08
Запись в eeprom в ATtiny2313 Violett Микроконтроллеры, АЦП, память и т.д 4 23.04.2006 23:19
Запись чтение в EEPROM gnom Микроконтроллеры, АЦП, память и т.д 2 24.02.2006 23:10


Часовой пояс GMT +4, время: 13:52.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot