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

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

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

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

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

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

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

 
Опции темы
Непрочитано 22.11.2010, 09:59  
ESWANT
Временная регистрация
 
Регистрация: 30.04.2005
Сообщений: 99
Сказал спасибо: 1
Сказали Спасибо 3 раз(а) в 2 сообщении(ях)
ESWANT на пути к лучшему
По умолчанию использование FSR для обмена в ОЗУ и запись в EEPROM

Помогите разобраться с моим кодом:

Начиная с адреса 77h в ОЗУ хранится 3 байта (часы, минуты, секунды)
нужно эту группу (из трех байтов) переписать по адресам:

первое назначение ОЗУ:70h-72h EEPROM: 10h-12h
второе назначение ОЗУ:73h-75h EEPROM: 13h-15h

в какое назначение писать определяется selector-ом
если selector=2 то писать надо везде, при этом POINTER_REC=70h

если selector = 1 то писать надо только в какое то одно назначение. POINTER_REC при этом =70h или =73h




так как все по порядку то придумал такой код. но почемуто не работает?

#define _ADRES_BUFER_TIME=77h

..........

forAllNagrusok

movlw _ADRES_BUFER_TIME
movwf POINTER_BUFER_TIME ;настроим указатель

movlw .3
movwf i ;три раза надо делать
while_REC_HHMMSS ;ЗАПИШЕМ ИЗ БУФЕРА В ОЗУ и ЕЕ

movf POINTER_BUFER_TIME,0 ;w:=
movwf FSR
movf INDF , 0 ;W:= само значение
movwf uni_BUF ;uni_BUF:=W

movf POINTER_REC,0 ;w:=адрес назанчения
movwf FSR

movf uni_BUF , 0 ;W:=
movwf INDF

BSF STATUS,RP0 ;выберем 1 банк
movwf EEDATA
movlw 60h ;разница адресов ОЗУ и ЕЕПРОМ
subwf FSR,0 ;W:=FSR-60h 70-60=10h адрес часов
movwf EEADR
call REC_EEDATA_IN_EEADR ;и возврат в 0 банк

incf POINTER_BUFER_TIME,1 ;увеличим указатель
incf POINTER_REC,1 ;увеличим указатель

DECFSZ i,1 ;уменьшить на 1
GOTO while_REC_HHMMSS ; и переходить обратно пока не станет =0



DECFSZ selector,1 ;уменьшить на 1
GOTO forAllNagrusok ; и переходить обратно пока не станет =0

...............................................
...............................................

REC_EEDATA_IN_EEADR ;записать байт из EEDATA по адресу EEADR===

BSF STATUS,RP0 ;выберем 1 банк
BCF INTCON, GIE ;запретить прерыв
BSF EECON1,WREN ;разрешим запись
MOVLW 055h
MOVWF EECON2
MOVLW 0AAh
MOVWF EECON2
BSF EECON1, WR
nop
BSF INTCON, GIE ;разр прерыв
nop
BCF EECON1,WREN ;запретим запись в EEPROM
BCF STATUS,RP1 ;выберем банк 0
BCF STATUS,RP0
RETURN;========================


...................................
Реклама:
ESWANT вне форума  
 

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

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
FAQ (ЧаВО) по PROTEUS для начинающих и не только dosikus Proteus 221 07.03.2024 22:45
Использование HI - TECH для PIC контроллеров ST_Senya Микроконтроллеры, АЦП, память и т.д 27 22.10.2010 18:45
Нужен: атмел для (генератор + АЦП + ОЗУ) ramilkazus Микроконтроллеры, АЦП, память и т.д 7 15.12.2009 15:26
Помогите с ЦАП AD7708/AD7718 или их аналогами ST_Senya Микроконтроллеры, АЦП, память и т.д 9 30.11.2009 19:03
Расширение ОЗУ для IPAQ 4700 до 128МБ faru Микроконтроллеры, АЦП, память и т.д 2 27.09.2009 15:33


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


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