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

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

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

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

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

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

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

 
Опции темы

PIC16F84A за гранью понимания!!!!!

Непрочитано 08.03.2005, 21:27  
Jerry86
Прохожий
 
Регистрация: 21.12.2004
Сообщений: 5
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Jerry86 на пути к лучшему
По умолчанию PIC16F84A за гранью понимания!!!!!

Есть некий девайс на оном ПИКе, которому требуется записать в память данных два значения.Естественно запись оформлена в виде двух прцедур которые вызываются по очереди.Так вот в ПИКе прописывается одна ячейка процедура которой была вызвана первой, вторая ячейка не пишется хоть тресни.В MPLAB все прописывается как надо. Может какие мысли будут по этому поводу или кто-то сталкивался чем-то подобным поделитесь.Заранее благодарен.
Реклама:
Jerry86 вне форума  
Непрочитано 09.03.2005, 02:01  
nml
Супер-модератор
 
Аватар для nml
 
Регистрация: 13.03.2004
Адрес: Minsk
Сообщений: 2,394
Сказал спасибо: 2,016
Сказали Спасибо 1,356 раз(а) в 591 сообщении(ях)
nml на пути к лучшему
По умолчанию Re: PIC16F84A за гранью понимания!!!!!

Сообщение от Jerry86
Есть некий девайс на оном ПИКе, которому требуется записать в память данных два значения.Естественно запись оформлена в виде двух прцедур которые вызываются по очереди.Так вот в ПИКе прописывается одна ячейка процедура которой была вызвана первой, вторая ячейка не пишется хоть тресни.В MPLAB все прописывается как надо. Может какие мысли будут по этому поводу или кто-то сталкивался чем-то подобным поделитесь.Заранее благодарен.
Как я понимаю, речь идет о записи в EEPROM? И супервизора питания нету? Попробуйте либо его поствить, либо по окончанию записи - в регистр адреса записать, ну например 0... А значния расположить в других адресах.
nml вне форума  
Непрочитано 09.03.2005, 19:58  
walrus
Временная регистрация
 
Регистрация: 26.12.2003
Сообщений: 46
Сказал спасибо: 0
Сказали Спасибо 9 раз(а) в 9 сообщении(ях)
walrus на пути к лучшему
По умолчанию

Не боюсь показаться занудой - код в студию!!!!! Телепатов тут нет.
walrus вне форума  
Непрочитано 13.03.2005, 00:03  
Гость
 
Сообщений: n/a
По умолчанию

Конечно информации мало, но очень похоже на отсутствие таймаута после записи - моделирование такие вещи не учитывает, а ошибка произойдет сразу после записи первого значения...
 
Непрочитано 17.03.2005, 19:18  
Serg_KHTW
Прохожий
 
Регистрация: 17.03.2005
Сообщений: 5
Сказал спасибо: 86
Сказали Спасибо 1 раз в 1 сообщении
Serg_KHTW на пути к лучшему
По умолчанию

Уж очень и очень похоже на ИМЕННО ОТСУТСТВИЕ таймаута. Попробуй писАть второе значение после получения прерывания о записи первого. Наступал когда-то на эти грабли...
Serg_KHTW вне форума  
Непрочитано 18.03.2005, 05:02  
Гость
 
Сообщений: n/a
По умолчанию

KRUTOI MP PIC BCE OPERACII DELAET ODNOVREMENO ???
PO IDEE ZAPISI DOLJNA SOOTVETSTBOBAT 1 PEREMENAIA ???
 
Непрочитано 18.03.2005, 09:31  
Serg_KHTW
Прохожий
 
Регистрация: 17.03.2005
Сообщений: 5
Сказал спасибо: 86
Сказали Спасибо 1 раз в 1 сообщении
Serg_KHTW на пути к лучшему
По умолчанию

Записи м соответствует одна переменная (если я правильно понял написанное). Но запись не происходит за время одного цикла, там стоИт, грубо говоря, такая же ЕЕПРОМина как и 24С... только со своим генератором. То есть по факту окончания цикла записи ОДНОГО БАЙТА генерируется прерывание, которое НУЖНО обрабатывать в 99% случаев, особенно, когда пишется больше чем одно значение. Не ленитесь, если не обрабатываете прерывание, хотя бы проверяйте наличие флага прерывания.
Serg_KHTW вне форума  
Непрочитано 18.03.2005, 15:39  
VLM
Прописка
 
Регистрация: 21.01.2005
Сообщений: 192
Сказал спасибо: 9
Сказали Спасибо 30 раз(а) в 18 сообщении(ях)
VLM на пути к лучшему
По умолчанию

VSE PRAVILNO
VLM вне форума  
Непрочитано 22.03.2005, 19:33  
vsn
Прохожий
 
Регистрация: 15.09.2004
Сообщений: 8
Сказал спасибо: 0
Сказали Спасибо 2 раз(а) в 1 сообщении
vsn на пути к лучшему
По умолчанию

Ну, думаю прерывание на такой пустяк разрешать было бы роскошью (с одним-то вектором!), а почитать спецификацию на максимальное время записи не помешало бы. Если не критичны остальные операции, то можно в подпрограмме записи вначале опрашивать бит окончания предыдущей записи, далее сама процедура записи, ну и для надежности верификация...Я в свое время делал так:
;*************************************
WR_EE
;запись в память
;вход: W = адрес, по которому требуется запись
; RG1 = данные для записи
;выход:

BANKSEL PIR2 ;
BCF PIR2,EEIF ;сброс флага окончания записи
BANKSEL EEADR ;
MOVWF EEADR ; установка адреса
BANKSEL RG1 ;
MOVF RG1,W ;
BANKSEL EEADR ;
MOVWF EEDATA ; установка данных

WR_EE_ERR
BANKSEL EECON1 ;
BCF EECON1,EEPGD ;
BCF EECON1,WRERR ;
BSF EECON1,WREN ;

BCF INTCON,GIE ; запрет прерываний
BCF INTCON,GIE ; запрет прерываний

MOVLW 055H ;;необходимая последовательность
MOVWF EECON2 ;;для записи
MOVLW 0AAH ;;
MOVWF EECON2 ;;
BSF EECON1,WR ;;

BSF INTCON,GIE ;

BCF EECON1,WREN ;

NO_WR_EE
BANKSEL PIR2 ;
PAGESEL NO_WR_EE
BTFSS PIR2,EEIF ; проверка окончания записи
GOTO NO_WR_EE ;
BCF PIR2,EEIF ;
BANKSEL PORTA ;
RETURN
;**********************************
vsn вне форума  
Непрочитано 23.03.2005, 08:42  
Serg_KHTW
Прохожий
 
Регистрация: 17.03.2005
Сообщений: 5
Сказал спасибо: 86
Сказали Спасибо 1 раз в 1 сообщении
Serg_KHTW на пути к лучшему
По умолчанию

Совершенно согласен (только это под более навороченый PIC из серии более восьмикилобайтного F874), но принцип один - дал команду на запись - подождал - проверил флаг окончания записи.
Serg_KHTW вне форума  
 
Опции темы

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
PIC16F84A и MT-16S2D Runtime_error Микроконтроллеры, АЦП, память и т.д 2 09.05.2007 19:18
PIC16F84A документацыя макс Микроконтроллеры, АЦП, память и т.д 3 11.12.2005 14:03
PIC16F84A макс Микроконтроллеры, АЦП, память и т.д 1 11.12.2005 00:01
PIC16F84A??? RETAS Микроконтроллеры, АЦП, память и т.д 7 04.03.2005 04:20
pic16f84a khorght Микроконтроллеры, АЦП, память и т.д 1 09.09.2004 20:37


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


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.