|
|
 |
Ответов
(1 - 14)
|
Apr 23 2011, 18:10
|
Участник

Группа: Участник
Сообщений: 49
Регистрация: 15-10-07
Из: г.Екатеринбург
Пользователь №: 31 379

|
Цитата(rezident @ Apr 23 2011, 23:45)  А зачем при записи в EEPOM нужен еще какой-то свой протокол?  EEPOM обычно имеет свой физический интерфейс, который и определяет временные диаграммы чтения/записи. Может вы на самом деле хотите спросить не о протоколе связи, а о способе хранения произвольных записей в EEPROM? Некоем подобии файловой системы? Тогда встречный вопрос: про связанные списки знаете? нет не знаю.Где про них найти
|
|
|
|
|
Apr 23 2011, 18:16
|

Профессионал
    
Группа: Свой
Сообщений: 1 202
Регистрация: 26-08-05
Из: Донецк, ДНР
Пользователь №: 7 980

|
Цитата(Oleg_DI @ Apr 23 2011, 21:10)  Где про них найти В гугле  . 1-я же ссылка - http://ru.wikipedia.org/wiki/%D0%A1%D0%B2%...%81%D0%BE%D0%BAРеализовывать можно как угодно и на чем угодео. Полно примеров и на C и на др. языках.
--------------------
Чтобы возить такого пассажира, необходим лимузин другого класса. (с) Мария Эдуарда
|
|
|
|
|
Apr 23 2011, 18:35
|
Участник

Группа: Участник
Сообщений: 49
Регистрация: 15-10-07
Из: г.Екатеринбург
Пользователь №: 31 379

|
Цитата(rezident @ Apr 24 2011, 00:23)  Т.е. вы подтверждаете мою догадку о том, что вам на самом деле требуется файловая система для EEPROM? Да мне требуется файловая система для EEPROM, или её подобие.Мне надо записывать массив данных одной длинны,и при чтении знать верны ли данные.Спасибо за ссылки я нашел на си.надо осмыслить.
Сообщение отредактировал Oleg_DI - Apr 23 2011, 18:37
|
|
|
|
|
May 4 2011, 00:13
|
Частый гость
 
Группа: Участник
Сообщений: 149
Регистрация: 9-08-08
Пользователь №: 39 519

|
елементарно ватсон... запись в еепром идет долго, т.е. нужна задержка в программе при записи что бы записалось (цыклом вайл ждем пока не закончиться запись, и только тогда работаем дальше), если в ето (пока цыкв вайл ждет пока закончиться запись) время произойдет абсолютно любое прерывание, то запись может (а может и нет) заглючит и результат записи может быть любим, с такой фигней мне приборов уже 100 возвращали, и вообще голову ломал че слетают все время данные с еепрома... бод настроил и т.п... отключил прерывание при работы с еепром, как результат полтора года 800 устройств до сих пор работают замечательно
в своих устройствах очень часто работаю с прерываниями и очень много пишу данных в внутренюю еепром, вот и слет раз в 3-4 месяца ежедневнего использования наблюдался, а вдруг запись не успеет закончиться и будет команда начать новую запись? что угодно может быть...
поетому при работе с еепром нужно себе на лобе написать 2 больших пункта, это задержка вайлом пока закончиться запись и отключение прерываний на момент записи
Сообщение отредактировал Integral - May 4 2011, 00:30
|
|
|
|
|
May 4 2011, 01:05
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(Integral @ May 4 2011, 04:13)  ...если в ето (пока цыкв вайл ждет пока закончиться запись) время произойдет абсолютно любое прерывание, то запись может (а может и нет) заглючит и результат записи может быть любим Это не описание механизма. Цитата(Integral @ May 4 2011, 04:13)  а вдруг запись не успеет закончиться и будет команда начать новую запись? что угодно может быть... Так программы надо писать так, чтобы "что угодно" не случалось.
|
|
|
|
|
May 4 2011, 01:24
|
Частый гость
 
Группа: Участник
Сообщений: 149
Регистрация: 9-08-08
Пользователь №: 39 519

|
ну вот отключил прерывание и что угодно случится точно не сможет темболия если большой проект, то все предусмотреть ооочень тяжело, включаются/выключаются прерывания всего одной командой, поетому для меня в хорошем стиле программирования должны отключатся прерывания на момент записи в еепром
aaarrr как по другому лучше сделать? сделать глобальный флаг и при записи устанавливать в 1 а при окончании в 0 и при каждой записи проверять етот флаг? особенно если писать масивы в еепром, масив может быть недописан и по прерыванию пойдет команда записать в етот масив другие значения, при возврате с прерывания будет дальше запись идти, в результате фиг знает что будет в еепром, поетому можно и флаг делать глобальный, но я сделал уже по "настоящему", отключаю прерывания и спокоен... так как коректность данных в еепром была очень важна, и играться на угад как оно получиться нельзя, как месяц или как год поработает устройство
Сообщение отредактировал Integral - May 4 2011, 01:58
|
|
|
|
|
May 4 2011, 08:10
|
    
Группа: Свой
Сообщений: 1 928
Регистрация: 11-07-06
Пользователь №: 18 731

|
Цитата(Integral @ May 4 2011, 05:24)  поетому для меня в хорошем стиле программирования должны отключатся прерывания на момент записи в еепром Вероятно, Вам не попадались задачи, где приоритет записи в еепром чуть пониже плинтуса. Прерывания и надёжность записи (в еепром), имхо, никак не пересекаются. Цитата aaarrr как по другому лучше сделать? сделать глобальный флаг и при записи устанавливать в 1 а при окончании в 0 и при каждой записи проверять етот флаг? особенно если писать масивы в еепром, масив может быть недописан и по прерыванию пойдет команда записать в етот масив другие значения, при возврате с прерывания будет дальше запись идти, в результате фиг знает что будет в еепром, поетому можно и флаг делать глобальный, но я сделал уже по "настоящему", отключаю прерывания и спокоен... так как коректность данных в еепром была очень важна, и играться на угад как оно получиться нельзя, как месяц или как год поработает устройство Оцениваете потребную среднюю скорость записи; если укладываетесь в спецификацию еепром, то организуете, н-р, кольцевой буфер достаточной длины, из которого пишете по мере возникновений прерывания окончания записи в еепром; если не укладываетесь, выбираете более приличную случаю энергонезависимую память.
|
|
|
|
|
May 4 2011, 08:11
|
Участник

Группа: Участник
Сообщений: 49
Регистрация: 15-10-07
Из: г.Екатеринбург
Пользователь №: 31 379

|
Цитата(Integral @ May 4 2011, 07:24)  ну вот отключил прерывание и что угодно случится точно не сможет темболия если большой проект, то все предусмотреть ооочень тяжело, включаются/выключаются прерывания всего одной командой, поетому для меня в хорошем стиле программирования должны отключатся прерывания на момент записи в еепром
aaarrr как по другому лучше сделать? сделать глобальный флаг и при записи устанавливать в 1 а при окончании в 0 и при каждой записи проверять етот флаг? особенно если писать масивы в еепром, масив может быть недописан и по прерыванию пойдет команда записать в етот масив другие значения, при возврате с прерывания будет дальше запись идти, в результате фиг знает что будет в еепром, поетому можно и флаг делать глобальный, но я сделал уже по "настоящему", отключаю прерывания и спокоен... так как коректность данных в еепром была очень важна, и играться на угад как оно получиться нельзя, как месяц или как год поработает устройство контрольная сумма и есть этот флаг.Правильная контрольная сумма при чтении правильные данные.а если данные не правильные поможет кольцевой счётчик адреса ЕЕПром если данные не верны делаешь откат и читаешь предыдущие данные.
|
|
|
|
|
May 4 2011, 08:52
|
дятел
    
Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065

|
Цитата(Integral @ May 4 2011, 02:41)  самое главное при записи в еепром отключать прерывания, так как будут глюкы 100% при записи данных Нда... отключать прерывания нужно ТОЛЬКО на время копирования данных во временный буфер который используется для записи в EEPROM, все остальное ошибки программиста...
|
|
|
|
|
May 4 2011, 15:49
|
Частый гость
 
Группа: Участник
Сообщений: 149
Регистрация: 9-08-08
Пользователь №: 39 519

|
Цитата(singlskv @ May 4 2011, 11:52)  Нда... отключать прерывания нужно ТОЛЬКО на время копирования данных во временный буфер который используется для записи в EEPROM, все остальное ошибки программиста... ошибок никогда не бывает, прогто любая программа работает так, как ее написал ррограммист, а не так как она должна работать? В любое время в любов приреванни может быть команда записи в еепром, в таком случае, или глобальную переменную мутите ли отключайте прерыванич??? я еще имел глюк с лсмд при прерываниях, кому интересно роскажу, [CENSORED] я на своем опыте работы имею след. полезный совет: Если вы работаете с еепром и нет критического требования на реакцию мк на все прервания - отключайте еепром при записи, иначе в любой программе найдеться не предусмотернный глюк где 1 пишетться 2 раза в одно и то время по приреванич??? глюк роз в 3-4 месяца возникап, вот мне перед клиентами удоно было тол??? + еще, при работе за ЖКИ где 4 битная ШД, так вот..... при записи 4 бит если возникает прерывание и там нуно опять дынные возобновить, так пишем еще 8 бит.... потом возвращаемся с прерывания... и дописываеи еще 4 бит.. кароче глюки слош и рядом, ну вот если вы такие умные, просвятите как избавится ог глюков работы дисплеся при 2 командал lcd_gotoxy(0, 1); strchis("А"); ели запустить данній код в прерівание по входу, и дать на вхоод несколько десятком кГц??? вот, значит при работе с дисплеем тоже прерівания отклювать? ато при ежедневном использовании раз в 3-4 месяца клиент находит как заглючить устроство? так вам токо на угад, написал и досвидание??? кому перрівания не критьичні оключайте... ато как исправить глюк просвятите lcd_gotoxy(0, 1); strchis("А"); ПС, писать свои функции и делать на асембллерере 10000% не позволяет заказчит, поетому вот такая задача... как исправить глюк в етих 2 строках без отключения прерываний? ПС. еемпром обновляю с частотой окколо 1кгц в 1с, статистиу тамм прибор храмин, уж очень точную, и часто туда пишет, и преріваний тьма вот какк просвятите как избавиться от глюков бисплея без откл преріванич поверю что умныу Мнение о пользователях скрыто по поступившей жалобе. Автор сообщения получил предупреждение и статус read only на неделю. Модератор.
Сообщение отредактировал IgorKossak - May 5 2011, 17:36
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|