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

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

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

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

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

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


 
Опции темы
Непрочитано 30.04.2009, 00:24  
DimAlt
Временная регистрация
 
Регистрация: 11.06.2006
Сообщений: 60
Сказал спасибо: 17
Сказали Спасибо 6 раз(а) в 4 сообщении(ях)
DimAlt на пути к лучшему
По умолчанию

[quote="IOPA4"]
Сообщение от Panda_Y2k
Я бы представлял дату не в формате ddmmgggg а в виде массива дней 1..365 и тогда
unsigned int day;
if ((day ›= summer_time) && (day ‹ winter_time))
Hcor = H-1
else
Hcor = H;

вроде и все [/quote
С массивом еще сложней будет: годы имеют разное количество дней, дата перевода времени вперед-назад из года в год меняется
Речь идет о летнем и зимнем времени?
Я для себя так сделал
Код:
//переход летние/зимние время
			//на летнее время осуществляется в ночь на последнее воскресенье марта в 2:00 переводом часовых стрелок на 1 час вперед
			//обратный переход осуществляется в ночь на последнее воскресенье октября в 3:00 переводом стрелок на 1 час назад.
			if ( hour[h_month]==3-1 ){//на летнее время
				if ( hour[h_num]›24-1 )//если число 25 и далее
					if ( hour[h_day]==7-1 )//если воскресенье
						if (hour[h_hour]==2) hour[h_hour]=3;
				}
			if ( hour[h_month]==10-1 ){//на зимние время
				if ( hour[h_num]›24-1 )//если число 25 и далее
					if ( hour[h_day]==7-1 )//если воскресенье
						if (hour[h_hour]==3) hour[h_hour]=2;
				}
h_day - день недели.
Реклама:
DimAlt вне форума  
Непрочитано 30.04.2009, 09:41  
yuriji
Прописка
 
Регистрация: 09.02.2007
Сообщений: 108
Сказал спасибо: 1
Сказали Спасибо 1 раз в 1 сообщении
yuriji на пути к лучшему
По умолчанию

[quote="DimAlt"]
Сообщение от IOPA4
Сообщение от Panda_Y2k
Я бы представлял дату не в формате ddmmgggg а в виде массива дней 1..365 и тогда
unsigned int day;
if ((day ›= summer_time) && (day ‹ winter_time))
Hcor = H-1
else
Hcor = H;

вроде и все [/quote
С массивом еще сложней будет: годы имеют разное количество дней, дата перевода времени вперед-назад из года в год меняется
Речь идет о летнем и зимнем времени?
Я для себя так сделал
Код:
//переход летние/зимние время
			//на летнее время осуществляется в ночь на последнее воскресенье марта в 2:00 переводом часовых стрелок на 1 час вперед
			//обратный переход осуществляется в ночь на последнее воскресенье октября в 3:00 переводом стрелок на 1 час назад.
			if ( hour[h_month]==3-1 ){//на летнее время
				if ( hour[h_num]›24-1 )//если число 25 и далее
					if ( hour[h_day]==7-1 )//если воскресенье
						if (hour[h_hour]==2) hour[h_hour]=3;
				}
			if ( hour[h_month]==10-1 ){//на зимние время
				if ( hour[h_num]›24-1 )//если число 25 и далее
					if ( hour[h_day]==7-1 )//если воскресенье
						if (hour[h_hour]==3) hour[h_hour]=2;
				}
h_day - день недели.

Вот и Дмитрий подтянулся!
Дмитрий, с летним и зимним переводом мы вроде разобрались, ты лучше подскажи как настройки
В еепром сохранить, а то мы не придумали не чего лучше как батарейку воткнуть, хотя батарейку конечно тоже нужно для часов. И все же хотелось бы все настройки сохранять в энергонезависимой памяти.
С уважением Юрий И. К.
yuriji вне форума  
Непрочитано 30.04.2009, 09:52  
sio_66
Частый гость
 
Регистрация: 02.12.2008
Сообщений: 32
Сказал спасибо: 23
Сказали Спасибо 4 раз(а) в 4 сообщении(ях)
sio_66 на пути к лучшему
По умолчанию

Ув. IOPA4.
Выложите, пожалуйста, схему последней версии устройства в gif (или др. распространенном) формате.
Сам я протеусом пока не пользуюсь, а свои работы выполняю в ACCEL (P-Cad)-схемы, IAR-программы и EWB -модели для аналоговой части.
Достаточно давно применяю EEPROM и внешнюю память с резервным питанием (только памяти) - может чего и пригодится.

Сергей.
sio_66 вне форума  
Непрочитано 30.04.2009, 15:14  
DimAlt
Временная регистрация
 
Регистрация: 11.06.2006
Сообщений: 60
Сказал спасибо: 17
Сказали Спасибо 6 раз(а) в 4 сообщении(ях)
DimAlt на пути к лучшему
По умолчанию

Сообщение от yuriji
...
как настройки В еепром сохранить, а то мы не придумали не чего лучше как батарейку воткнуть, хотя батарейку конечно тоже нужно для часов. И все же хотелось бы все настройки сохранять в энергонезависимой памяти.
С уважением Юрий И. К.
Не понял какие трудности, если при выключении питания сохранять, то я так никогда не пробовал, советовать нечего. А так у меня всегда заведена структура на настройки, для нее написана функция сохранения ее полностью с рассчитанной срк и чтения тож. Сохранять полностью времени требуется не намного больше чем сохранять отдельный параметр, так как при записи проверяется на совпадения значений и не измененные параметры только читаются но не записываются. Удобно еще тем, что структуру можно менять как угодно код записи и чтения из еепром при этом менять не надо.
DimAlt вне форума  
Непрочитано 30.04.2009, 18:22  
yuriji
Прописка
 
Регистрация: 09.02.2007
Сообщений: 108
Сказал спасибо: 1
Сказали Спасибо 1 раз в 1 сообщении
yuriji на пути к лучшему
По умолчанию

Сообщение от DimAlt
Сообщение от yuriji
...
как настройки В еепром сохранить, а то мы не придумали не чего лучше как батарейку воткнуть, хотя батарейку конечно тоже нужно для часов. И все же хотелось бы все настройки сохранять в энергонезависимой памяти.
С уважением Юрий И. К.
Не понял какие трудности, если при выключении питания сохранять, то я так никогда не пробовал, советовать нечего. А так у меня всегда заведена структура на настройки, для нее написана функция сохранения ее полностью с рассчитанной срк и чтения тож. Сохранять полностью времени требуется не намного больше чем сохранять отдельный параметр, так как при записи проверяется на совпадения значений и не измененные параметры только читаются но не записываются. Удобно еще тем, что структуру можно менять как угодно код записи и чтения из еепром при этом менять не надо.
С наступающим праздником, всех с 1 мая!!!
Да Дима, вот про свою функцию сохранения, если можно подробней.
yuriji вне форума  
Непрочитано 30.04.2009, 19:12  
DimAlt
Временная регистрация
 
Регистрация: 11.06.2006
Сообщений: 60
Сказал спасибо: 17
Сказали Спасибо 6 раз(а) в 4 сообщении(ях)
DimAlt на пути к лучшему
По умолчанию

Код:
struct	{
		unsigned char day_light;
		unsigned char night_light;
		unsigned char tim_c_light;
		unsigned char tim_do_light;
		unsigned char budilnik[5][3];
		unsigned char regim_state_time[Nreg_st];
		unsigned char corr_flag;
		unsigned char correction;
		unsigned int crc;
} t_stat;

unsigned char EEPROM_READ(unsigned int uiAddress)
{
	while(EECR & (1‹‹EEWE));/* Ожидание  завершения предыдущей записи*/
	EEAR = uiAddress;/* Установка адресного регистра */
	EECR |= (1‹‹EERE);/* Разрешение чтения из ЭППЗУ путем установки EERE */
	return EEDR;/* Возврат данных из регистра данных ЭСППЗУ*/
}

void EEPROM_write(unsigned int uiAddress, unsigned char ucData)
{
	if ( EEPROM_READ(uiAddress)!=ucData){
		while(EECR & (1‹‹EEWE));/* Ожидаем окончание предыдущей записи */
		cli();
		EEAR = uiAddress;/* Указание адреса и данных */
		EEDR = ucData;
		EECR |= (1‹‹EEMWE);/* Запись лог. 1 в  EEMWE */
		EECR |= (1‹‹EEWE);/* Запуск записи в ЭСППЗУ путем установки EEWE */
		sei();
		}
}
//*********************************************
void read_data_EEPROM(void)
{
unsigned char  *a, i;
unsigned int crc=0;
	a=(unsigned char *)&t_stat;
	for( i=0 ; i‹sizeof(t_stat); i++, a++){
		*a=EEPROM_READ(i);
		if (i‹sizeof(t_stat)-2){
			crc+=*a;
			}
		}
	if ( crc!=t_stat.crc ) eeprom_err=1;
}

void EEPROM_save_parametr_all( void )
{
 unsigned char i, *p;
 
	if (time_flag & fl_eeprom_write)
	{
	time_flag&= ~fl_eeprom_write;
	t_stat.crc=eeprom_err=0;
	
	p=(unsigned char *) &t_stat;
	for(i=0; i‹sizeof(t_stat) ; i++, p++){
		EEPROM_write( i, *p );
		if (i‹sizeof(t_stat)-2)
			t_stat.crc+=*p;
		}
	}
}
Вот, выдрал кусок из часов на 5 индикаторах.
Структуру можно менять как вздумается, не меняя функций чтения и записи в еепром. Возможно есть куда более удобные решения, хотелось бы посмотреть на другие примеры.
DimAlt вне форума  
Непрочитано 30.04.2009, 20:16  
yuriji
Прописка
 
Регистрация: 09.02.2007
Сообщений: 108
Сказал спасибо: 1
Сказали Спасибо 1 раз в 1 сообщении
yuriji на пути к лучшему
По умолчанию

Спасибо Дмитрий, бум подумать, покумекать.
Кстати часики твои пытаюсь повторить, на больших индикаторах как Юрий сделал, только, платы сам развожу.
yuriji вне форума  
Непрочитано 30.04.2009, 21:16  
IOPA4
Почётный гражданин KAZUS.RU
 
Аватар для IOPA4
 
Регистрация: 07.05.2008
Адрес: Мурманск
Сообщений: 1,300
Сказал спасибо: 461
Сказали Спасибо 526 раз(а) в 273 сообщении(ях)
IOPA4 на пути к лучшему
По умолчанию

Резервное питание от трех элементов типа АА по 10 р., что проще?
Теперь о сохранении настроек в еепром:
Сохранить настройки при пропадании сети - через 3-4 часа эти настройки кому будут нужны? Все-равно нужно корректировать. Код сохранения и считывания данных с еепром весит прилично в Атмегу8 не сунуть. Нужна Атмега выше и цена соответственно. Так зачем эти ухищрения с еепром?
IOPA4 вне форума  
Непрочитано 30.04.2009, 22:03  
IOPA4
Почётный гражданин KAZUS.RU
 
Аватар для IOPA4
 
Регистрация: 07.05.2008
Адрес: Мурманск
Сообщений: 1,300
Сказал спасибо: 461
Сказали Спасибо 526 раз(а) в 273 сообщении(ях)
IOPA4 на пути к лучшему
По умолчанию

Сообщение от sio_66
Ув. IOPA4.
Выложите, пожалуйста, схему последней версии устройства в gif (или др. распространенном) формате.
Сам я протеусом пока не пользуюсь, а свои работы выполняю в ACCEL (P-Cad)-схемы, IAR-программы и EWB -модели для аналоговой части.
Достаточно давно применяю EEPROM и внешнюю память с резервным питанием (только памяти) - может чего и пригодится.
Сергей.
Очень советую Протеус, ну а пока схемы:

Прикрепленный файл: 6926183.zip
IOPA4 вне форума  
Непрочитано 30.04.2009, 22:07  
IOPA4
Почётный гражданин KAZUS.RU
 
Аватар для IOPA4
 
Регистрация: 07.05.2008
Адрес: Мурманск
Сообщений: 1,300
Сказал спасибо: 461
Сказали Спасибо 526 раз(а) в 273 сообщении(ях)
IOPA4 на пути к лучшему
По умолчанию

Небольшая поправка:

-- Прилагается рисунок: --

IOPA4 вне форума  
 

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

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Видео уроки dosikus Микроконтроллеры, АЦП, память и т.д 61 23.01.2012 21:06
Видео уроки (flash) Proteus 7.1 fmssp Proteus 5 13.08.2007 03:56
AVR уроки Рюмика chipic128 Proteus, KiCAD и другие ECAD 9 07.03.2007 21:46
уроки от LABCENTRE(PIC12F675+C) dosikus Микроконтроллеры, АЦП, память и т.д 22 09.10.2006 10:16


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


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