Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
29.11.2008, 14:55
|
|
Временная регистрация
Регистрация: 17.11.2007
Сообщений: 67
Сказал спасибо: 0
Сказали Спасибо 6 раз(а) в 6 сообщении(ях)
|
Помогите Не получается запись в EEPROM
Я в этом деле новичок. Почему то не получается запись в EEPROM память микроконтроллера PIC16F84A.
Все делаю как требуется в инструкции. Но в симуляторе MPLAB (7.40) в данную ячейку данные не помещаются. В Debugger -› Select Tool выбран симулятор MPLAB SIM. После запуска и выполнения программы в View -› EEPROM данные не изменились. Подскажите в чем проблема?. Заранее благодарен.
код программы:
LIST p=16F84A
__CONFIG 3FFBh
#include ‹p16F84A.inc›
org 0x0000
START
movlw 1h ;адрес ячейки EEPROM
movwf EEADR
movlw 03h ;данные для записи
movwf EEDATA
bcf INTCON,GIE ;запретить прерывания
bsf STATUS,5 ;Выбрать банк 1
bsf EECON1,2 ;Разрешить запись
movlw 55h
movwf EECON2
movlw 0AAh
movwf EECON2
bsf EECON1,1 ;запись
bcf EECON1,4;сбрасываем флаг прерывания по ;запиcи в EEPROM
bsf INTCON,GIE;Разрешить прерывания
goto START
end
|
|
|
|
29.11.2008, 17:41
|
|
Почётный гражданин KAZUS.RU
Регистрация: 05.08.2007
Адрес: Болгария Перник
Сообщений: 1,771
Сказал спасибо: 74
Сказали Спасибо 357 раз(а) в 245 сообщении(ях)
|
Получается, просто MPLAB правильно симулирует поведение вещицы.
Program FLASH Memory Erase/Write cycle time : 4 - 8 ms.
Т.е. запись в EEPROM требует времени, типично 4мС, максимально 8. Просто надо подождать. Я тут осмелился немножко подправить код.
Код:
|
LIST p=16F84A
#include ‹p16F84A.inc›
__CONFIG _RC_OSC & _WDT_OFF & _PWRTE_OFF & _CP_OFF
org 0x0000
START
movlw 1h ;адрес ячейки EEPROM
movwf EEADR
movlw 03h ;данные для записи
movwf EEDATA
bcf INTCON,GIE ;запретить прерывания
bsf STATUS,RP0 ;Выбрать банк 1
bsf EECON1,WREN ;Разрешить запись
movlw 55h
movwf EECON2
movlw 0AAh
movwf EECON2
bsf EECON1,WR ;запись
bcf EECON1,EEIF;сбрасываем флаг прерывания по ;запиcи в EEPROM
bsf INTCON,GIE;Разрешить прерывания
Wait
goto Wait
end |
Удачи!
|
|
|
|
29.11.2008, 19:23
|
|
Частый гость
Регистрация: 12.02.2008
Сообщений: 14
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Помогите Не получается запись в EEPROM
Сообщение от ST_Senya
|
bsf EECON1,1 ;запись
bcf EECON1,4;сбрасываем флаг прерывания по ;запиcи в EEPROM
bsf INTCON,GIE;Разрешить прерывания
goto START
end
|
Я тоже с этим мучился и пришел к выводу что МПЛАБ не в сосотоянии это просимулировать. А в проге я бы сделал так:
bsf EECON1,1 ;запись
btfsс EECON1,1 ;
GOTO $-1
bcf EECON1,4;сбрасываем флаг прерывания по ;запиcи в EEPROM
bsf INTCON,GIE;Разрешить прерывания
goto START
|
|
|
|
30.11.2008, 03:59
|
|
Почётный гражданин KAZUS.RU
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,816
Сказал спасибо: 13
Сказали Спасибо 399 раз(а) в 214 сообщении(ях)
|
Re: Помогите Не получается запись в EEPROM
Сообщение от BJAKA
|
Я тоже с этим мучился и пришел к выводу что МПЛАБ не в сосотоянии это просимулировать. А в проге я бы сделал так:
bsf EECON1,1 ;запись
btfsс EECON1,1 ;
GOTO $-1
bcf EECON1,4;сбрасываем флаг прерывания по ;запиcи в EEPROM
bsf INTCON,GIE;Разрешить прерывания
goto START
|
Всё он в состоянии... ты когда смотриш результат в ЕЕПРОМ? он тебе что... сразу думаеш покажет?..
Сколько времени проходит после команды (bsf EECON1,1) по счётчику в симуляторе???
Вот в АВР Студио.. даные появляются через несколько циклов.. что не есть правильно.. а в МПЛАБ как положено через 4-8 миллисекунд процессорного времени...
;ЗАПИСЬ ВО ВНУТРЕННЮЮ ЕПРОМ В ЯЧЕЙКУ ПО ТЕКУЩЕМУ АДРЕСУ, ПРЕДПРОВЕРКОЙ ЕЕПРОМ И ПРОВЕРКОЙ ЗАНЯТОСТИ ЕЕПРОМ, INDF=DATA
Код:
|
WRITINTEEP
BANKSEL EECON1
BTFSC EECON1,WR
GOTO ERRWRITINTEEP
BANKSEL EEDATA
MOVF INDF,W
SUBWF EEDATA,W
BTFSC STATUS,Z
GOTO EXIWRITINTEEP
MOVF INDF,W
MOVWF EEDATA
BANKSEL EECON1
BCF INTCON,GIE
; BCF EECON1,EEPGD ;ДЛЯ 87Х СЕРИИ
BSF EECON1,WREN
MOVLW 055
MOVWF EECON2
MOVLW 0AA
MOVWF EECON2
BSF EECON1,WR
GOTO $+1
BCF EECON1,WREN
BSF INTCON,GIE
EXIWRITINTEEP
BANKSEL0
BСF STATUS,C ;ВСЁ ОК
RETURN
ERRWRITINTEEP
BSF STATUS,C ;ЕЕПРОМ ЗАНЯТЯ, ЗАЙДИТЕ ПОЗЖЕ
RETURN |
|
|
|
|
30.11.2008, 11:10
|
|
Частый гость
Регистрация: 12.02.2008
Сообщений: 14
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
PICAVR спасибо что прояснили ситуацию с симуляцией записи в EEPROM в MPLABe в дальнейшем буду это учитывать.
|
|
|
|
30.11.2008, 16:42
|
|
Почётный гражданин KAZUS.RU
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,816
Сказал спасибо: 13
Сказали Спасибо 399 раз(а) в 214 сообщении(ях)
|
Сообщение от BJAKA
|
PICAVR спасибо что прояснили ситуацию с симуляцией записи в EEPROM в MPLABe в дальнейшем буду это учитывать.
|
Странно.. а ты хотел что б В EEPROM писало МГНОВЕННО? ... эт же не РАМ..
вот так о возникает глюки...
кто то чего то недопонял..
|
|
|
|
30.11.2008, 21:54
|
|
Частый гость
Регистрация: 12.02.2008
Сообщений: 14
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
В конечном итоге не важно как себя ведет МПЛАБ ведь при правильном алгоритме записи в EEPROM в реальной программе все работает.
|
|
|
|
01.12.2008, 01:53
|
|
Почётный гражданин KAZUS.RU
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,816
Сказал спасибо: 13
Сказали Спасибо 399 раз(а) в 214 сообщении(ях)
|
Сообщение от BJAKA
|
В конечном итоге не важно как себя ведет МПЛАБ ведь при правильном алгоритме записи в EEPROM в реальной программе все работает.
|
Тебя не поймёш... то тебе в МПЛАБе нужно.. то в кристалле... если в кристалле, чего зря в форум кричать )))))
|
|
|
|
01.12.2008, 19:16
|
|
Частый гость
Регистрация: 12.02.2008
Сообщений: 14
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Ошибаться человеку свойственно, но окончательно все запутать может только компьютер.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
Запись EEPROM Megi88
|
FedorChek |
Микроконтроллеры, АЦП, память и т.д |
3 |
23.03.2009 18:42 |
Запись в EEPROM pic16f628a
|
J-t |
Микроконтроллеры, АЦП, память и т.д |
6 |
22.01.2008 16:10 |
PIC,запись в EEPROM ?
|
retas |
Микроконтроллеры, АЦП, память и т.д |
6 |
30.11.2007 19:13 |
Запись в I2C EEPROM
|
yel |
Микроконтроллеры, АЦП, память и т.д |
8 |
07.03.2007 16:08 |
Запись чтение в EEPROM
|
gnom |
Микроконтроллеры, АЦП, память и т.д |
2 |
24.02.2006 23:10 |
Часовой пояс GMT +4, время: 21:47.
|
|