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

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

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

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

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

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

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

 
Опции темы
Непрочитано 27.01.2010, 07:42  
Sergey_ritm
Прохожий
 
Регистрация: 05.10.2009
Сообщений: 7
Сказал спасибо: 3
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Sergey_ritm на пути к лучшему
Печаль PIC16f684 и EEPROM

Здравствуйте, у меня такая проблема:
по адресу 0х02 записал 0х22, теперь нужно прочитать - сравнить, если это так - переход на "ST2", нет - "ST1_1"..
Записывается все верно (проверял считывая EEPROM программатором), и при записи проверка проходит успешно, но при попытке прочитать и сравнить в другой части программы, к сожалению не удается, точнее переход к "ST1_1".

Код:

Код:
EEREAD

    BSF STATUS, RP0   ; Bank1
    MOVLW 0X02              ; Any location in Data EEPROM memory space
    MOVWF EEADR            ; Address to read 

    BSF EECON1, RD     ; YES, Read the value written 
    BCF STATUS, RP0   ; Bank0 
    MOVF EEDATA,W
    MOVWF registr
    MOVLW 0X22
    SUBWF registr, W   
    BTFSS STATUS, Z      ; Is difference 0? 

    GOTO ST1_1            ;NO
    GOTO ST2               ; YES
Заранее благодарен.
Реклама:
Sergey_ritm вне форума  
Непрочитано 27.01.2010, 10:25  
otest
Почётный гражданин KAZUS.RU
 
Регистрация: 29.01.2005
Адрес: Воронеж
Сообщений: 1,384
Сказал спасибо: 24
Сказали Спасибо 243 раз(а) в 182 сообщении(ях)
otest на пути к лучшему
По умолчанию Re: PIC16f684 и EEPROM

Сначала перепутал с 16F84. Увас EEDATA не в том банке и имя ему EEDAT
Миниатюры:
Нажмите на изображение для увеличения
Название: banc.png
Просмотров: 57
Размер:	24.1 Кб
ID:	4049   Нажмите на изображение для увеличения
Название: bank.png
Просмотров: 59
Размер:	24.1 Кб
ID:	4050  

Последний раз редактировалось otest; 27.01.2010 в 11:21.
otest вне форума  
Сказали "Спасибо" otest
Sergey_ritm (28.01.2010)
Непрочитано 28.01.2010, 18:04  
Sergey_ritm
Прохожий
 
Регистрация: 05.10.2009
Сообщений: 7
Сказал спасибо: 3
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Sergey_ritm на пути к лучшему
По умолчанию Re: PIC16f684 и EEPROM

Все исправил, проблема со считыванием - сравнением, перепробовал все варианты...

Код:
EEWRITE
; Запись
    BSF        STATUS,RP0        ; Bank1
    MOVLW    0x05        
    MOVWF    EEADR
    MOVLW    0x01
    MOVWF    EEDAT

    BSF        EECON1,WREN        ; Enable Write
    BCF        INTCON,GIE        ; Disable INTs.
    
       MOVLW    0x55         
       MOVWF    EECON2       
       MOVLW    0xAA        
       MOVWF    EECON2      
       BSF        EECON1,WR  

    BTFSC    EECON1,WR
    GOTO    $-1  
    BCF        PIR1,EEIF
    BSF        INTCON,GIE        ; Enable INTs.
; CHECK
    BSF     STATUS,RP0        ; Bank1
    MOVLW    0x05        
    MOVWF    EEADR
    BSF        EECON1,RD        ; YES, Read the value written 
    BCF        STATUS,RP0        ; Bank0 
    MOVLW    0x01
    SUBWF    EEDAT,W   
    BTFSS    STATUS,Z        ; Is difference 0? 

    GOTO LOOP        ;NO
    RETURN            ;OK
Sergey_ritm вне форума  
Непрочитано 28.01.2010, 18:15  
Popeye
Почётный гражданин KAZUS.RU
 
Аватар для Popeye
 
Регистрация: 05.08.2007
Адрес: Болгария Перник
Сообщений: 1,771
Сказал спасибо: 74
Сказали Спасибо 357 раз(а) в 245 сообщении(ях)
Popeye на пути к лучшему
По умолчанию Re: PIC16f684 и EEPROM

Сообщение от Sergey_ritm Посмотреть сообщение
BCF STATUS,RP0 ; Bank0
MOVLW 0x01
SUBWF EEDAT,W
В PIC16F684 ВСЕ регистры EEPROM в банке 1
__________________
Мыслю, следовательно существую
Popeye вне форума  
Непрочитано 28.01.2010, 18:20  
Sergey_ritm
Прохожий
 
Регистрация: 05.10.2009
Сообщений: 7
Сказал спасибо: 3
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Sergey_ritm на пути к лучшему
По умолчанию Re: PIC16f684 и EEPROM

Сообщение от Popeye Посмотреть сообщение
Сообщение от Sergey_ritm Посмотреть сообщение
BCF STATUS,RP0 ; Bank0
MOVLW 0x01
SUBWF EEDAT,W
В PIC16F684 ВСЕ регистры EEPROM в банке 1
Ставлю
BSF STATUS,RP0
SUBWF EEDAT,W

процессор зависает...
Sergey_ritm вне форума  
Непрочитано 28.01.2010, 18:33  
Popeye
Почётный гражданин KAZUS.RU
 
Аватар для Popeye
 
Регистрация: 05.08.2007
Адрес: Болгария Перник
Сообщений: 1,771
Сказал спасибо: 74
Сказали Спасибо 357 раз(а) в 245 сообщении(ях)
Popeye на пути к лучшему
Сообщение Re: PIC16f684 и EEPROM

Предлагаю
Код:
; CHECK
    BSF     STATUS,RP0        ; Bank1
    MOVLW    0x05        
    MOVWF    EEADR
    BSF        EECON1,RD        ; YES, Read the value written 
    MOVFW  EEDAT
    BCF        STATUS,RP0        ; Bank0 
    SUBLW   0x01  
    BTFSS    STATUS,Z        ; Is difference 0? 

    GOTO LOOP        ;NO
    RETURN            ;OK
Таким образом останетесь в банке 0
__________________
Мыслю, следовательно существую
Popeye вне форума  
Сказали "Спасибо" Popeye
Sergey_ritm (28.01.2010)
Непрочитано 28.01.2010, 18:33  
otest
Почётный гражданин KAZUS.RU
 
Регистрация: 29.01.2005
Адрес: Воронеж
Сообщений: 1,384
Сказал спасибо: 24
Сказали Спасибо 243 раз(а) в 182 сообщении(ях)
otest на пути к лучшему
По умолчанию Re: PIC16f684 и EEPROM

Перенесите EEDAT в TEMP и сравнивайте.
otest вне форума  
Непрочитано 28.01.2010, 19:28  
Sergey_ritm
Прохожий
 
Регистрация: 05.10.2009
Сообщений: 7
Сказал спасибо: 3
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Sergey_ritm на пути к лучшему
По умолчанию Re: PIC16f684 и EEPROM

Сообщение от Popeye Посмотреть сообщение
MOVFW EEDAT BCF STATUS,RP0 ; Bank0 SUBLW 0x01
Ух ты! это вроде бы работает..
Спасибо огромное, Popeye.
otest, без ваших советов, тоже ничего бы не получилось, спасибо!

пока протестирую еще со всякими вариантами...

Последний раз редактировалось Sergey_ritm; 28.01.2010 в 19:33.
Sergey_ritm вне форума  
Непрочитано 29.01.2010, 21:27  
Popeye
Почётный гражданин KAZUS.RU
 
Аватар для Popeye
 
Регистрация: 05.08.2007
Адрес: Болгария Перник
Сообщений: 1,771
Сказал спасибо: 74
Сказали Спасибо 357 раз(а) в 245 сообщении(ях)
Popeye на пути к лучшему
По умолчанию Re: PIC16f684 и EEPROM

Sergey_ritm, знаете ли, есть воспоминание что нелишне поставить между BSF ECON1,RD и MOVFW EEDAT несколько инструкций NOP. Я доходил до семи, параноя. Хотя это было в силе для 16F877A версии 4 (5 лет назад), в даташите на 16F684 ничего подобного нет. Но как говорится кашу маслом..... За глаза может быть двух NOP хватит.
А PIC16F684 на мой взгляд удачная находка. Для себя искал нечто подешевле, чтоб имелось в магазинах, поменьше размером, с АЦП и ECCP модулями. И чтоб могло работать от батарейного питания 2-3V. Микрочипский селектор MAPS дал именно его. Один проект сделал, однако на втором получилось очень неприятное недоразумение со сторожевым таймером. Тупо просмотрел его структуру, вообще не вник, положился на информацию на картинке. В результате 10 дней бился как идиот, ругал компилятор. Как почти всегда ошибка моя. Что то не дочитал, не просмотрел, не разобрался. Плачу дань самоуверености. Такие дела.
Удачи!
Миниатюры:
Нажмите на изображение для увеличения
Название: WDT684.JPG
Просмотров: 63
Размер:	10.7 Кб
ID:	4114  
__________________
Мыслю, следовательно существую
Popeye вне форума  
Непрочитано 30.01.2010, 16:48  
picavr
Почётный гражданин KAZUS.RU
 
Аватар для picavr
 
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,816
Сказал спасибо: 13
Сказали Спасибо 399 раз(а) в 214 сообщении(ях)
picavr на пути к лучшему
По умолчанию Re: PIC16f684 и EEPROM

Сообщение от Sergey_ritm Посмотреть сообщение
Ставлю
BSF STATUS,RP0
SUBWF EEDAT,W
пишите так
BANKSEL EEDAT
SUBWF EEDAT,W

BANKSEL EECON1
MOVWF EECON1

и не думайте, в каком банке в каком роцессоре находится требуемый регистр.. и какое количество бит требуется установить или сбросить...
компилятор сам подставить нужное...

Последний раз редактировалось picavr; 30.01.2010 в 16:51.
picavr вне форума  
Сказали "Спасибо" picavr
viktormor (26.02.2011)
 

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

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите EEPROM PIC18F452 Sergey8870 Микроконтроллеры, АЦП, память и т.д 18 03.03.2010 15:34
Proteus и EEPROM alex28411 Proteus 2 02.01.2010 15:52
Как на Си создать EEPROM segment? chapa Микроконтроллеры, АЦП, память и т.д 6 13.10.2009 12:10
[Решено] Проблема с eeprom в Proteus Memfis666 Proteus, KiCAD и другие ECAD 1 01.10.2009 15:38


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


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