Форум Микро-Чип
Поиск и заказ электронных компонентов
 

Вернуться   Форум Микро-Чип > Вопросы начинающих

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

Ответ
 
Опции темы Опции просмотра
Старый 26.11.2017, 00:08   #26
Vovka
Senior Member
 
Аватар для Vovka
 
Регистрация: 27.12.2007
Адрес: недалеко от г.Белгорода
Возраст: 51
Сообщений: 1,910
Вес репутации: 3177/93
Vovka has a reputation beyond reputeVovka has a reputation beyond reputeVovka has a reputation beyond reputeVovka has a reputation beyond reputeVovka has a reputation beyond reputeVovka has a reputation beyond reputeVovka has a reputation beyond reputeVovka has a reputation beyond reputeVovka has a reputation beyond reputeVovka has a reputation beyond reputeVovka has a reputation beyond repute
Отправить сообщение для Vovka с помощью ICQ
По умолчанию Re: Cложение времени и формах хранения в EEPROM

sdn_sdn, для ТС это уже лишнее, т.к:
Цитата:
Сообщение от Theyler Посмотреть сообщение
Поэтому, если раз в пять минут писать в течение рабочего дня (8 часов) - это ~100 раз в день, то 100.000 циклов наберёт за 1000 суток. А это три года.
Ну, там столько не выживет прибор. Быстрее ему сделаем апгрейд.
А поэтому:
Цитата:
Сообщение от siargy Посмотреть сообщение
ионистор ставь, не ошибешся :-)
И мониторить пропадание питания, а заряда ионистора хватит для сохранения данных в EEPROM
__________________
Настройся на хороший день и он таким будет!
Vovka вне форума   Ответить с цитированием
Старый 26.11.2017, 13:14   #27
Guaho
Senior Member
 
Аватар для Guaho
 
Регистрация: 28.06.2013
Возраст: 47
Сообщений: 725
Вес репутации: 1505/45
Guaho has a brilliant futureGuaho has a brilliant futureGuaho has a brilliant futureGuaho has a brilliant futureGuaho has a brilliant futureGuaho has a brilliant futureGuaho has a brilliant futureGuaho has a brilliant futureGuaho has a brilliant futureGuaho has a brilliant futureGuaho has a brilliant future
По умолчанию Re: Cложение времени и формах хранения в EEPROM

Можно вообще писать в EEPROM цифры, т.е. значения всех разрядов (числа в диапазоне 0...9) отображаемого на экране времени работы. При старте прочитали из EEPROM все разряды, занесли это всё добро в кучу счётчиков, да и модифицируем всю эту кучу по цепочке: младший разряд переполнился - наращиваем старший. Ну а при пропадании питания - писать текущие значения счётчиков в EEPROM. Не особо это и муторно, и не страшно много времени и места занимает, по сравнению с методом преобразований туда-сюда. Не вижу вообще смысла в таких преобразованиях. Писать "как есть" поразрядно - самый простой способ. Я так делал уже не раз, никаких проблем.
- Чё-то я очкую, Славик, если честно. Думаешь, прокатит?
- Да ты успокойся! Я сто раз так делал!
Guaho вне форума   Ответить с цитированием
Старый 26.11.2017, 13:21   #28
masterok999
Senior Member
 
Регистрация: 28.07.2015
Адрес: NA
Возраст: 55
Сообщений: 230
Вес репутации: 786/24
masterok999 is a splendid one to beholdmasterok999 is a splendid one to beholdmasterok999 is a splendid one to beholdmasterok999 is a splendid one to beholdmasterok999 is a splendid one to beholdmasterok999 is a splendid one to beholdmasterok999 is a splendid one to behold
По умолчанию Re: Cложение времени и формах хранения в EEPROM

FRAM память и больше никаких вопросов.
masterok999 вне форума   Ответить с цитированием
Старый 26.11.2017, 13:34   #29
Theyler
Member
 
Регистрация: 07.05.2017
Сообщений: 42
Вес репутации: 172/10
Theyler has a spectacular aura aboutTheyler has a spectacular aura about
По умолчанию Re: Cложение времени и формах хранения в EEPROM

В общем, взвесил всё (побайтово ) и запустил оба счётчика параллельно.
Для пущей важности и контроля вывел параллельно на морду:

(если код через задницу - критикуйте. Это мне хорошо и полезно)

Код:
IncEEtime
	incf	EE_1_S,f
	movlw	.60
	subwf	EE_1_S,w
	bnz	_Min
	clrf	EE_1_S
	incf	EE_1_M,f
_Min
	movlw	.60
	subwf	EE_1_M,w
	bnz	_Hour
	clrf	EE_1_M
	incf	EE_1_H,f
_Hour
	movlw	.24
	subwf	EE_1_H,w
	bnz	_DayLo
	clrf	EE_1_H
	incf	EE_1_D_Lo,f
_DayLo
	movlw	.100
	subwf	EE_1_D_Lo,w
	bnz	_DayHi
	clrf	EE_1_D_Lo
	incf	EE_1_D_Hi,f
_DayHi
	movlw	.100
	subwf	EE_1_D_Hi,w
	bnz	_EEtime
	clrf	EE_1_D_Hi
_EEtime
	return

SetEEtime
	BANK1
	movlw	0x08
	movwf	EEADR
	movfw	EE_1_D_Hi
	call	SetEEbyte
	movfw	EE_1_D_Lo
	call	SetEEbyte
	movfw	EE_1_H
	call	SetEEbyte
	movfw	EE_1_M
	call	SetEEbyte
	movfw	EE_1_S
	call	SetEEbyte
	return	

GetEEtime	;Получение общего времени наработки из EEprom
	BANK1
	movlw	0x08
	movwf	EEADR
	call	GetEEbyte
	movwf	EE_1_D_Hi
	call	GetEEbyte
	movwf	EE_1_D_Lo
	call	GetEEbyte
	movwf	EE_1_H
	call	GetEEbyte
	movwf	EE_1_M
	call	GetEEbyte
	movwf	EE_1_S
	return

SetEEbyte	;Запись одного байта в EEPROM
	BANK1
	movwf	EEDATA
	bsf	EECON1,WREN
	bcf	INTCON,GIE
	movlw	0x55
	movwf	EECON2
	movlw	0xAA	
	movwf	EECON2
	bsf	EECON1,WR
	btfsc   EECON1,WR
	goto	$-1	
	incf	EEADR,f
	bcf	EECON1,WREN
	BANK0
	bsf	INTCON,GIE
	return
	
GetEEbyte
	BANK1
	bcf	EECON1,WREN
	bsf	EECON1,RD
 	movfw	EEDATA
	incf	EEADR,f
	BANK0
	return  

;	org	2108h		;Общее время наработки агрегата
;		  Дни года  Час  Мин  Сек
;	de	.255, .255, .255, .01, .11

Осталось выловить появившиеся баги по портящимся где-то переменным и к понедельнику, думаю, можно будет воткнуть в агрегат.

Всем большое спасибо за советы.
Миниатюры
P1020191=.jpg  

Последний раз редактировалось Theyler; 26.11.2017 в 13:39.
Theyler вне форума   Ответить с цитированием
Старый 26.11.2017, 13:47   #30
Guaho
Senior Member
 
Аватар для Guaho
 
Регистрация: 28.06.2013
Возраст: 47
Сообщений: 725
Вес репутации: 1505/45
Guaho has a brilliant futureGuaho has a brilliant futureGuaho has a brilliant futureGuaho has a brilliant futureGuaho has a brilliant futureGuaho has a brilliant futureGuaho has a brilliant futureGuaho has a brilliant futureGuaho has a brilliant futureGuaho has a brilliant futureGuaho has a brilliant future
По умолчанию Re: Cложение времени и формах хранения в EEPROM

Не пойму, а зачем два счётчика (т.е. две группы счётчиков)?
Guaho вне форума   Ответить с цитированием
Старый 26.11.2017, 13:52   #31
DmitrijVDN
Senior Member
 
Регистрация: 09.04.2010
Сообщений: 816
Вес репутации: 1418/56
DmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud of
По умолчанию Re: Cложение времени и формах хранения в EEPROM

накой считать в хексе? считай сразу в двоично-десятичном
DmitrijVDN вне форума   Ответить с цитированием
Старый 26.11.2017, 14:02   #32
Theyler
Member
 
Регистрация: 07.05.2017
Сообщений: 42
Вес репутации: 172/10
Theyler has a spectacular aura aboutTheyler has a spectacular aura about
По умолчанию Re: Cложение времени и формах хранения в EEPROM

Цитата:
Сообщение от Guaho Посмотреть сообщение
Не пойму, а зачем два счётчика (т.е. две группы счётчиков)?
Директор хочет не только видеть, сколько аппарат проработал с момента последнего включения, но и иногда знать, сколько он всего наработал моточасов с момента производства.
Theyler вне форума   Ответить с цитированием
Старый 26.11.2017, 14:03   #33
Theyler
Member
 
Регистрация: 07.05.2017
Сообщений: 42
Вес репутации: 172/10
Theyler has a spectacular aura aboutTheyler has a spectacular aura about
По умолчанию Re: Cложение времени и формах хранения в EEPROM

Цитата:
Сообщение от DmitrijVDN Посмотреть сообщение
накой считать в хексе? считай сразу в двоично-десятичном
Можно подробнее? Я не совсем понял суть вопроса и предложения.
Theyler вне форума   Ответить с цитированием
Старый 26.11.2017, 14:11   #34
DmitrijVDN
Senior Member
 
Регистрация: 09.04.2010
Сообщений: 816
Вес репутации: 1418/56
DmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud of
По умолчанию Re: Cложение времени и формах хранения в EEPROM

ну у тебя минуты считаются в шестнадцатеричной системе , считай сразу в двоично-десятичной татрадами. вот смотри в память ты заносишь .11 , на самом деле туда записалось 0х0B , хотя визуально 0х11 читается лучше...
усложнение кода минимально , перевод в ASCII для индикатора вообще элементарный.
DmitrijVDN вне форума   Ответить с цитированием
Старый 26.11.2017, 14:18   #35
Theyler
Member
 
Регистрация: 07.05.2017
Сообщений: 42
Вес репутации: 172/10
Theyler has a spectacular aura aboutTheyler has a spectacular aura about
По умолчанию Re: Cложение времени и формах хранения в EEPROM

А, ну, у меня там BCD однажды было сделано.
Код:
HEX2ASCII			;Преобразование шестнадцатиричного числа в регистре BCD в 
				;двоично-десятичное в регистрах LCD1(старший), LCD2, LCD3
	movwf	BCD
	clrf	_100
	clrf	_10
	clrf	_1
L_100
	movlw	.100
	subwf	BCD, w		;W=A-W(100)
	btfss	STATUS, C	;Если С=0, значит W<0.
	goto	L_10		;Сюда попадаем если W<0
	incf	_100,f
	movwf	BCD
	goto	L_100
L_10
	movlw	.10
	subwf	BCD, w
	btfss	STATUS, C
	goto	L_1
	incf	_10,f
	movwf	BCD
	goto	L_10
L_1
	movf	BCD,W		;Остаток в BCD - значение единиц
	movwf	_1

	movlw	.48
	addwf	_100,f		;выход сотни ASCII
	addwf	_10,f		;выход десятки ASCII
	addwf	_1,f		;выход единицы ASCII
	return
Вот, крайние четыре инструкции перед return.
Как-то давно наколхозил, теперь и не заморачиваюсь.
Может, можно лучше и компактнее? ХЗ. Надо потом как-нить почесать..
Theyler вне форума   Ответить с цитированием
Старый 26.11.2017, 14:23   #36
DmitrijVDN
Senior Member
 
Регистрация: 09.04.2010
Сообщений: 816
Вес репутации: 1418/56
DmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud of
По умолчанию Re: Cложение времени и формах хранения в EEPROM

Цитата:
Сообщение от Theyler Посмотреть сообщение
А, ну, у меня там BCD однажды было сделано.
да оно на не нать... это ненужное увеличение времени выполнения кода , если данные хранятся в DEC тетрадами, то все что нужно сделать прочитать нужную тетраду и прибавить 0х30 - все получили ASCII
DmitrijVDN вне форума   Ответить с цитированием
Старый 26.11.2017, 14:28   #37
Theyler
Member
 
Регистрация: 07.05.2017
Сообщений: 42
Вес репутации: 172/10
Theyler has a spectacular aura aboutTheyler has a spectacular aura about
По умолчанию Re: Cложение времени и формах хранения в EEPROM

Цитата:
Сообщение от DmitrijVDN Посмотреть сообщение
все что нужно сделать прочитать нужную тетраду и прибавить 0х30 - все получили ASCII
Да.
Полностью согласен.
Не помню уже, почему так накрутил. Это было связано с тем форматом данных, которые приходили от из смежного девайса.
Писали несколько программеров, одни - наСильники, другие низкоуровневики. В целом, договорились передавать HEX, для общего формата.
Ну так и осталось. А потом было не нужно переделывать.
И, как всегда, дедлайны..

А через год начинаешь ковырять свой же исходник: мама дорогая, не уж-то это всё я писал? Вот же дебил!

Но а тут - 255 я разворачиваю в три цифры - 2 5 5. Всё, вроде, логично.
Так оно занимает один байт - FF, а если в тетрадах - три - 0х2 0х5 0х5
Theyler вне форума   Ответить с цитированием
Старый 26.11.2017, 14:32   #38
DmitrijVDN
Senior Member
 
Регистрация: 09.04.2010
Сообщений: 816
Вес репутации: 1418/56
DmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud of
По умолчанию Re: Cложение времени и формах хранения в EEPROM

алгоритм увеличения на +1 секунд следующий
1 к регистру прибавляешь 0х07
2 проверяешь флаг десятичного переноса STATUS,D
если 0 из регистра вычитаешь 0х06
если 1 проверяешь старшую тетраду на равенство =0х6
если 1 увеличиваешь регистр минут на +1 , старшую тетрада = 0
3 переходишь к минутам
DmitrijVDN вне форума   Ответить с цитированием
Старый 26.11.2017, 14:34   #39
DmitrijVDN
Senior Member
 
Регистрация: 09.04.2010
Сообщений: 816
Вес репутации: 1418/56
DmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud of
По умолчанию Re: Cложение времени и формах хранения в EEPROM

Цитата:
Сообщение от Theyler Посмотреть сообщение
Так оно занимает один байт - FF, а если в тетрадах - три - 0х2 0х5 0х5
нет оно занимает два байта
0х02 0х55
DmitrijVDN вне форума   Ответить с цитированием
Старый 26.11.2017, 16:12   #40
Theyler
Member
 
Регистрация: 07.05.2017
Сообщений: 42
Вес репутации: 172/10
Theyler has a spectacular aura aboutTheyler has a spectacular aura about
По умолчанию Re: Cложение времени и формах хранения в EEPROM

Коллеги, направьте на путь истинный:
работающая ранее прога стала сбоить: после записи в EE на дисплей посыпались заклинания, псевдографика и всё заклинивается.

Локализовал место и команду: запрет прерываний и является причиной.
Закомментил - всё работает.

Код:
SetEEbyte	;Запись одного байта в EEPROM
	BANK1			;bsf	STATUS,RP0
	movwf	EEDATA		;W => EEDATA
	bsf	EECON1,WREN	;разрешить запись
;/	bcf	INTCON,GIE	;запретить прерывания
;
	movlw	0x55		;обязательный кусок
	movwf	EECON2		;-"-
	movlw	0xAA		;-"-
	movwf	EECON2		;-"-
	bsf	EECON1,WR	;запись
;
	btfsc   EECON1,WR	;write complete?
	goto	$-1	
	incf	EEADR,f		;увеличить адрес для след. записи в EEPROM
	bcf	EECON1,WREN	;запретить запись
	BANK0			;bcf	STATUS,RP0
;/	bsf	INTCON,GIE	;разрешить прерывания
	return
Какие могут быть в дальнейшем проблемы с записью при разрешённых прерываниях?
Ибо в Писании сказано: Рекомендуется запрещать прерывания при выполнении обязательной последовательности команд. Если во время выполнения указанной последовательности произойдет переход по вектору прерывания, запись байта выполнена не будет

В проге прерывания использую, обрабатываю. Они нужны.
Именно в середине цикла и вызывается процедура записи в EEprom.
Код:
INTERRUPT
	movwf	W_temp		;Копировать W во временный регистр независимо от текущего банка
	swapf	STATUS,w	;Обменять полубайты в регистре STATUS и записать в W
	movwf	Status_temp	;Сохранить STATUS во временном регистре банка 0
	bcf	INTCON,T0IF	;Сброс флага прерывания от таймера

... 
где-то здесь вызываю запись..
...

	swapf	Status_temp, w	;Обменять полубайты оригинального значения STATUS и записать в W (восстановить текущий банк)
	movwf	STATUS		;Восстановить STATUS из регистра W
	swapf	W_temp,f	;Обменять полубайты в регистре W_temp и записать в W_temp
	swapf	W_temp,w	;Обменять полубайты в регистре W_temp и восстановить оригинальное значение W без воздействия на STSATUS
	retfie

Последний раз редактировалось Theyler; 26.11.2017 в 16:18.
Theyler вне форума   Ответить с цитированием
Старый 26.11.2017, 17:02   #41
DmitrijVDN
Senior Member
 
Регистрация: 09.04.2010
Сообщений: 816
Вес репутации: 1418/56
DmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud of
По умолчанию Re: Cложение времени и формах хранения в EEPROM

Цитата:
Сообщение от Theyler Посмотреть сообщение
В проге прерывания использую, обрабатываю. Они нужны.
Именно в середине цикла и вызывается процедура записи в EEprom.
Код:
INTERRUPT

... 
где-то здесь вызываю запись..
...

  retfie
это шутка такой? запись еепром делаем в прерывании?
DmitrijVDN вне форума   Ответить с цитированием
Старый 26.11.2017, 17:05   #42
Theyler
Member
 
Регистрация: 07.05.2017
Сообщений: 42
Вес репутации: 172/10
Theyler has a spectacular aura aboutTheyler has a spectacular aura about
Talking Re: Cложение времени и формах хранения в EEPROM

Цитата:
Сообщение от DmitrijVDN Посмотреть сообщение
запись еепром делаем в прерывании?
А что делать..
Иначе - только выставлять флаг где-нить и потом его обрабатывать за пределами обработчика прерываний.
Но мне было лениво (=
Theyler вне форума   Ответить с цитированием
Старый 26.11.2017, 18:19   #43
Theyler
Member
 
Регистрация: 07.05.2017
Сообщений: 42
Вес репутации: 172/10
Theyler has a spectacular aura aboutTheyler has a spectacular aura about
По умолчанию Re: Cложение времени и формах хранения в EEPROM

Цитата:
Сообщение от DmitrijVDN Посмотреть сообщение
это шутка такой?
Тупанул.
Спасибо огромное. Переделал.
Добавил переменную, если требуется запись, ставлю её в единичку, а за пределами обработчика гоняю проверку.
Вернул отключение прерываний - теперь работает.
Код:
INTERRUPT
...
	bsf	EE_Byte,0
...
	retfie

;*** Тут кручусь всё время. Фактически, единственный цикл программы.
	btfsc	EE_Byte,0
	call	SetEEtime
	goto	$-2
;***
SetEEtime
	BANK1
	movlw	0x08
	movwf	EEADR
	movfw	EE_1_D_Hi
	call	SetEEbyte
	movfw	EE_1_D_Lo
	call	SetEEbyte
	movfw	EE_1_H
	call	SetEEbyte
	movfw	EE_1_M
	call	SetEEbyte
	movfw	EE_1_S
	call	SetEEbyte
	clrf	EE_Byte
	return	

SetEEbyte	;Запись одного байта в EEPROM
	BANK1
	movwf	EEDATA
	bsf	EECON1,WREN
	bcf	INTCON,GIE

	movlw	0x55
	movwf	EECON2
	movlw	0xAA	
	movwf	EECON2
	bsf	EECON1,WR

	btfsc   EECON1,WR
	goto	$-1	
	incf	EEADR,f
	bcf	EECON1,WREN
	bsf	INTCON,GIE
	BANK0
	return
Я начинающий писатель. Не всё понимаю и знаю.
Поэтому сильно не бейте.

Последний раз редактировалось Theyler; 26.11.2017 в 18:24.
Theyler вне форума   Ответить с цитированием
Старый 27.11.2017, 09:08   #44
DimaS
Senior Member
 
Регистрация: 05.04.2008
Адрес: Israel
Возраст: 46
Сообщений: 1,618
Вес репутации: 2378/81
DimaS has a reputation beyond reputeDimaS has a reputation beyond reputeDimaS has a reputation beyond reputeDimaS has a reputation beyond reputeDimaS has a reputation beyond reputeDimaS has a reputation beyond reputeDimaS has a reputation beyond reputeDimaS has a reputation beyond reputeDimaS has a reputation beyond reputeDimaS has a reputation beyond reputeDimaS has a reputation beyond repute
По умолчанию Re: Cложение времени и формах хранения в EEPROM

Цитата:
Сообщение от Theyler Посмотреть сообщение
]Я начинающий писатель. Не всё понимаю и знаю.
Поэтому сильно не бейте.
За время, потраченное на написание всех соообщений этой темы можно было уже выяснить как делается разбрасывание данных по eeprom (хоотя fram конечно решит эту проблему кратинально, но это лишнний компонент на плате), и написать всю эту примитивную программу на Си - и пусть у компилятора болит голова как преобразовывать секунды в хексы или в дни/столетия.
И да, даже в 628-й это все прекрасно вместится И не такое в него вмещал....
DimaS вне форума   Ответить с цитированием
Старый 27.11.2017, 12:33   #45
Theyler
Member
 
Регистрация: 07.05.2017
Сообщений: 42
Вес репутации: 172/10
Theyler has a spectacular aura aboutTheyler has a spectacular aura about
По умолчанию Re: Cложение времени и формах хранения в EEPROM

Цитата:
Сообщение от DimaS Посмотреть сообщение
выяснить как делается разбрасывание данных по eeprom, и написать всю эту примитивную программу на С
Я не пишу на Си.
Ассемблер, Паскаль, Дельфи.
Микроконтроллеры предпочитаю писать на Ассемблере.
Люблю низкий уровень.

Что касается данных в EEprom, то как они там располагаются, я знаю - сам их там располагаю.
Меня больше интересовало, как люди обычно это делают - "влоб" пишут туда DEC, HEX, или побайтно либо длинным интеджером.
По-уму, нужно бы написать один раз процедуру преобразования глобальных секунд в ГГ:ММ:ДД:ЧЧ:ММ:СС и всё.
Но всё должно было быть готово уже к сегодняшнему утру. Поэтому, изучать Си не было времени. (=
Выкрутился на Asm. Уже установил, запустили. Всё работает.

Спасибо за пару умных мыслей всем, кто их озвучил.
Theyler вне форума   Ответить с цитированием
Старый 27.11.2017, 12:36   #46
ampersant
Senior Member
 
Аватар для ampersant
 
Регистрация: 26.02.2008
Адрес: IgorV
Сообщений: 2,497
Вес репутации: 4829/114
ampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond repute
По умолчанию Re: Cложение времени и формах хранения в EEPROM

Цитата:
Сообщение от Theyler Посмотреть сообщение
Я не пишу на Си.
Ассемблер, Паскаль, Дельфи.
Микроконтроллеры предпочитаю писать на Ассемблере.
Люблю низкий уровень.

Что касается данных в EEprom, то как они там располагаются, я знаю - сам их там располагаю.
Меня больше интересовало, как люди обычно это делают - "влоб" пишут туда DEC, HEX, или побайтно либо длинным интеджером.
Люди пишут под контроллеры на Си, и чем больше камень тем больше вероятность того, что на Си.
ampersant вне форума   Ответить с цитированием
Старый 27.11.2017, 13:23   #47
paul
Senior Member
 
Регистрация: 23.08.2007
Адрес: Lipetsk
Возраст: 43
Сообщений: 223
Вес репутации: 425/50
paul is just really nicepaul is just really nicepaul is just really nicepaul is just really nicepaul is just really nice
По умолчанию Re: Cложение времени и формах хранения в EEPROM

Цитата:
Сообщение от Theyler Посмотреть сообщение
Я не пишу на Си.
Микроконтроллеры предпочитаю писать на Ассемблере.
Люблю низкий уровень.
Раньше, когда на Си переходить не хотелось (просто потому, что привык), тоже отговорку такую использовал. После того, как на Си перешел - в ассемблер даже не тянет, хотя развлекаюсь иногда просмотром сгенерированного ассемблерного листинга на предмет оптимизации критичных участков.

На счет EEPROM - когда свободное место позволяет, я использую например 16 блоков с записью по очереди и с контрольной суммой в конце. Во-первых ресурс увеличивается в 16 раз, во-вторых, если вдруг питания не хватило для полноценной записи нового значения, то это сразу видно по контрольной сумме и берем предыдущее значение, у которого КС сходится. Иначе можно потерять всю наработку.
А если памяти СОВСЕМ много, можно писать новое значение в новый блок после каждой остановки, риск потери будет минимальным. Прикинуть только на сколько времени в среднем хватит ресурса EEPROM. Как правило, выходит, что устройство столько не проработает по моральным качествам. В конце концов, 24С256 выделить под это дело и писать туда хоть каждые 10 минут.
paul вне форума   Ответить с цитированием
Старый 27.11.2017, 23:00   #48
pal1222@yandex.ru
Senior Member
 
Регистрация: 30.09.2008
Сообщений: 1,484
Вес репутации: 2578/79
pal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond repute
По умолчанию Re: Cложение времени и формах хранения в EEPROM

Цитата:
Сообщение от DimaS Посмотреть сообщение
За время, потраченное на написание всех соообщений этой темы можно было уже выяснить как делается разбрасывание данных по eeprom (хоотя fram конечно решит эту проблему кратинально, но это лишнний компонент на плате), и написать всю эту примитивную программу на Си - и пусть у компилятора болит голова как преобразовывать секунды в хексы или в дни/столетия.
И да, даже в 628-й это все прекрасно вместится И не такое в него вмещал....
Не решит решит "стрессоусточивая" (вероятно, разбрасывание это твоё...) структура хранения (не FAT ни в коем разе , и вообще не файловая система, ибо с записью в несколько сегментов в процессе повер офф не успеть хоть удавись). Самоописываемый, размером в минимально стираемый"железный" сектор или "стандартного" формата (такого же размера) элемент хранилища это наше ффсё
pal1222@yandex.ru вне форума   Ответить с цитированием
Старый 27.11.2017, 23:14   #49
masterok999
Senior Member
 
Регистрация: 28.07.2015
Адрес: NA
Возраст: 55
Сообщений: 230
Вес репутации: 786/24
masterok999 is a splendid one to beholdmasterok999 is a splendid one to beholdmasterok999 is a splendid one to beholdmasterok999 is a splendid one to beholdmasterok999 is a splendid one to beholdmasterok999 is a splendid one to beholdmasterok999 is a splendid one to behold
По умолчанию Re: Cложение времени и формах хранения в EEPROM

Цитата:
Сообщение от pal1222@yandex.ru Посмотреть сообщение
Не решит решит "стрессоусточивая" (вероятно, разбрасывание это твоё...) структура хранения (не FAT ни в коем разе , и вообще не файловая система, ибо с записью в несколько сегментов в процессе повер офф не успеть хоть удавись). Самоописываемый, размером в минимально стираемый"железный" сектор или "стандартного" формата (такого же размера) элемент хранилища это наше ффсё
Вот интересно, еще кто то понял о чем ЭТО?
masterok999 вне форума   Ответить с цитированием
Старый 27.11.2017, 23:26   #50
pal1222@yandex.ru
Senior Member
 
Регистрация: 30.09.2008
Сообщений: 1,484
Вес репутации: 2578/79
pal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond repute
По умолчанию Re: Cложение времени и формах хранения в EEPROM

Цитата:
Сообщение от masterok999 Посмотреть сообщение
Вот интересно, еще кто то понял о чем ЭТО?
В смысле - кроме меня? Просто когда пишешь для контроллера имей в виду, что выключить тебя это, как правило, выдернуть из розетки и на завершение работы у тебя от силы миллисекунд двадцать
pal1222@yandex.ru вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Опции просмотра

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Время записи в EEPROM PIC12F683 kaligraf Вопросы начинающих 2 12.04.2016 02:00
Вопрос по прерываниям RB7-RB4 KSB31 Продукция MICROCHIP 4 15.08.2010 23:53
EEPROM 93LC46 nayabuka Продукция MICROCHIP 16 20.07.2009 08:29
PIC18F452 не пишет в EEPROM tzirulnicov Продукция MICROCHIP 2 03.01.2008 16:10
проблемка с PIC16F628A bereg_ok Продукция MICROCHIP 72 07.09.2007 11:00


Часовой пояс GMT +3, время: 06:33.


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