Форум за електроника Форуми Форум за електроника
Български форум за електроника, ремонти, схеми, документация
 
 Въпроси/ОтговориВъпроси/Отговори   ТърсенеТърсене   ПотребителиПотребители   ГрупиГрупи   Регистрирайте сеРегистрирайте се 
 ПрофилПрофил   Влезте, за да видите съобщенията сиВлезте, за да видите съобщенията си   ВходВход 

Въпрос за вградената EEPROM на PIC16F877

 
Създайте нова тема   Напишете отговор    Форум за електроника Форуми -> Общи приказки - Just talking



Предишната тема :: Следващата тема  
Автор Съобщение
emil74
Опитен потребител
Опитен потребител


Регистриран на: 16 Мар 2007
Мнения: 1111

МнениеПуснато на: Нед Окт 12, 2008 14:20    Заглавие: Въпрос за вградената EEPROM на PIC16F877 Отговорете с цитат

От известно време се опитвам да модифицирам една програма, която правих в началото на годината, като записвам данните и в EEPROM. Програмата е доста голяма и е разположена на три от страниците на процесора. Има mnogo смени и на банките памет. Като начало се опитвам само да изведа на дисплей записаните с ORG h'2100' данни, като използвам процедура за четене, която си намерих в Нета, но нищо не става. Ако някой може да ми посочи какво греша, ето тази част от кода на Асемблер:

Въвеждане:

ORG H'2100'
DE H'65'

ORG H'2101'
DE H'6D'

;------------------------------------

Четене:

READ_EEPROM

movf h'0000',w ;ZAREZDA TEKU6T ADRES
bsf STATUS,RP1
BCF STATUS, RP0
MOVWF EEADR

bsf STATUS,RP0
bcf EECON1,EEPGD
bsf EECON1,RD
bcf STATUS,RP0
movf EEDATA,w

BCF STATUS,6
BSF STATUS,5

movwf SYM1


Забележка: SYM1 е дефиниран тук:

CBLOCK H'A0'
SYM1
_________________
http://www.youtube.com/watch?v=yqoy8aGFRAU
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение Изпрати мейла Посетете сайта на потребителя
Niakoi
Опитен потребител
Опитен потребител


Регистриран на: 20 Авг 2006
Мнения: 356
Местожителство: Каръктаун

МнениеПуснато на: Нед Окт 12, 2008 19:26    Заглавие: Отговорете с цитат

Да не би да грешиш тука:
movf h'0000',w ;ZAREZDA TEKU6T ADRES

защото така не зареждаш "0" във W регистъра, а по принцип числото което се намира на адрес 0, а понеже там е INDF, вече не се знае Very Happy , освен ако не ползваш индиректна адресация, ама не си го упоменал!
Затова, вместо movf h'0000',w напиши movlw 0 и пробвай пак!
_________________
Жица, на която не виждам двата края, не я пипам!
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение Изпрати мейла
emil74
Опитен потребител
Опитен потребител


Регистриран на: 16 Мар 2007
Мнения: 1111

МнениеПуснато на: Нед Окт 12, 2008 20:12    Заглавие: Отговорете с цитат

Сега ще опитам и ще кажа какво става.
Почти сигурно бъркам и това, което казваш. Толкова очевадна грешка правя, че чак като ми обърна внимание схванах част от кашата, която съм направил!
От проверката на кода си установих, че въпреки достата неточности в обръщането към различни страници, програмата неясно как работи Shocked. Чак като си поразгледах разположението на кода чрез софтуера на програматора, успях да въведа ред със страниците.
-----------------------------------------------------------------------------------

Благодаря ти, niakoi, сега работи! Направо невероятно какви грешки правя!
_________________
http://www.youtube.com/watch?v=yqoy8aGFRAU
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение Изпрати мейла Посетете сайта на потребителя
Покажи мнения от преди:   
Създайте нова тема   Напишете отговор    Форум за електроника Форуми -> Общи приказки - Just talking Часовете са според зоната GMT + 2 Часа
Страница 1 от 1

 
Към:  
Не Можете да пускате нови теми
Не Можете да отговаряте на темите
Не Можете да променяте съобщенията си
Не Можете да изтривате съобщенията си
Не Можете да гласувате в анкети


Powered by phpBB © 2001, 2005 phpBB Group
Translation by: Boby Dimitrov
Where to Find Free Service Manuals