24 февраля 2022 года в 5 утра, без объявления войны, россия напала на Украину.

Они пришли "освобождать народ от нацистов и националистов".
С этого момента наша жизнь изменилась на "до" и "после".
Нас освобождают от наших домов, от наших любимых, от наших родителей и от наших детей....
Тут я не буду никого агитировать или переубеждать, разумный человек найдёт всю информацию
в интернете, а для зомби никакие доводы и факты не послужат аргументом.

Я не умею много писать, да и без мата тут сложно что-то написать.
Поэтому выражу все мои чувства одним фото.

«Спасибо дедушка путин за счастливое детство и мое освобождение». ©

Дополню словами уважаемого человека, широко известного в узких кругах:
тут путин не виноват, не он нажал на кнопку сброса,
- виноват пилот, который нажал на кнопку сброса, мог промахнуться. виноваты жена/мать/брат/друг пилота, которые не позвонили ему, и не сказали "нет войне",
- виноват тот, кто отдал приказ, и виноваты его жена/мать/брат/друг,
- виноват тот, кто цеплял бомбу, потому что он мог её обезвредить, "ну бывает, не сработала",
- виноват кладовщик, виноват водитель, который перевозил эту бомбу. виноваты жена...и т.д., потому что не позвонили и не сказали "нет войне, не вези бомбы",
- виноваты все журналисты оркостана, потому что они врут,
- виноваты недограждане, потому что не сказали журналистам "не врите",
- виноваты все... все 160 миллионов,
- а те 2, 3, 5 тысяч, которые вышли, и которых запаковали, это даже не десятая процента, это погрешность... случайно оказавшиеся в мордоре люди. ©

PS: За несколько часов до вторжения был атакован и взломан крупный интернет хостинг в Киеве, где и размещался мой сайт. Только 16 марта отважным админам удалось частично восстановить работу хостинга. Далеко не все сайты выжили, т.к. были повреждены даже бэкапы.
Нет, нет, я не жалуюсь, нет. В цифровом мире нет ничего ценного, материального...


Due to periodic DDoS attacks, the forum may not be available.

Часы на ГРИ ин-14 (Atmega8-168)

Здесь только проекты на ATmega
Post Reply
Denis_K
Частенько бываю
Posts: 82
Joined: 16 Jun 2017 13:48
Location: Краснодарский край

Часы на ГРИ ин-14 (Atmega8-168)

Post by Denis_K »

... на схем.нет попалась мне год-два назад статья http://cxem.net/mc/mc282.php. Сделал быстро плату, взял исходник из статьи, а он не "работает" или у меня ума не хватает заставить его работать... Автор не хочет категорически выходить на контакт.
В исходнике не могу наладить работу с часами реального времени, остальное вроде бы работает...
Ах да, исходник написан в какой то другой среде, отличной от синтаксиса GCC, поэтому я перевел как знал... может просто чего то упустил?
Attachments
IN-14clock.rar
Вот исходник
(126.27 KiB) Downloaded 356 times
Denis_K
Частенько бываю
Posts: 82
Joined: 16 Jun 2017 13:48
Location: Краснодарский край

Re: Часы на ГРИ ин-14 (Atmega8-168)

Post by Denis_K »

Не пойму с DS1307 происходит только инициализация, остальные функции похоже не работают... обмен данными по I2C проходит сначала, а потом тишина.
IYra
Живу тут
Posts: 712
Joined: 01 Feb 2012 18:36
Location: Санкт-Петербург

Re: Часы на ГРИ ин-14 (Atmega8-168)

Post by IYra »

Denis_K wrote:Не пойму с DS1307 происходит только инициализация, остальные функции похоже не работают... обмен данными по I2C проходит сначала, а потом тишина.
Сравнил два файла I2c.c
IN-8_Clock

Code: Select all

#define I2C_SDA_PIN            PD1                         //линия SDA
#define I2C_SCL_PIN            PD0                         //линия SCL
IN-14clock

Code: Select all

#define I2C_SDA_PIN            PINC1                         //линия SDA
#define I2C_SCL_PIN            PINC0                         //линия SCL
Может надо

Code: Select all

#define I2C_SDA_PIN            PC1                         //линия SDA
#define I2C_SCL_PIN            PC0                         //линия SCL
Denis_K
Частенько бываю
Posts: 82
Joined: 16 Jun 2017 13:48
Location: Краснодарский край

Re: Часы на ГРИ ин-14 (Atmega8-168)

Post by Denis_K »

Да пробовал и так и так. Работает что PC1, что PINC1...
При попытке настроить время в меню оно меняется, но не прописывается в ds-ку, так же сразу пытается показать истинное время из памяти ds, но тут же устанавливается на индикаторах 85 85. Может где-то по основной программе не вписано про чтение - запись? хотя вроде бы есть...
IYra
Живу тут
Posts: 712
Joined: 01 Feb 2012 18:36
Location: Санкт-Петербург

Re: Часы на ГРИ ин-14 (Atmega8-168)

Post by IYra »

Denis_K wrote:Да пробовал и так и так. Работает что PC1, что PINC1...
И все равно лучше придерживаться оригинала.
Запустил в Протеусе оригинал - на И2с раз в секунду идет обмен.
На исправленном - нет обмена. Только в начале строка инициализации и зачем-то добавлена строка
считывания времени. После этого затык. А что если убрать вначале rtc_get_date(&D, &m, &Y);
Оригинал

Code: Select all

	/*******************************настройка переферии******************************/
	i2c_init(); // иництализация протокола i2c

	rtc_init(0, 1, 1); // иництализация DS1307

	ow_set_bus(&PINB, &PORTB, &DDRB, PB5); // иництализация протокола 1-wire

Исправленный

Code: Select all

	i2c_init(); // иництализация протокола i2c

	rtc_init(0, 1, 1); // иництализация DS1307

	rtc_get_date(&D, &m, &Y);

	ow_set_bus(&PIND, &PORTD, &DDRD, PIND4); // иництализация протокола 1-wire
Denis_K
Частенько бываю
Posts: 82
Joined: 16 Jun 2017 13:48
Location: Краснодарский край

Re: Часы на ГРИ ин-14 (Atmega8-168)

Post by Denis_K »

на И2с раз в секунду идет обмен

это выход тактовой частоты с 1307... выставляется при инициализации rtc_init(0, 1, 1), кстати пробовал если rtc_init(0, 0, 1) то выхода нет, как и положено по ДШ. Значит И2С работает и инициализация тоже проходит. Мне кажется что-то не так с считыванием и записью даты дс1307...

Добавлено спустя 12 часов 50 минут 43 секунды:
IYra, здравствуйте. А вообще нормально что инициализация включена в основной программе? я так понимаю с циклом... а запись - чтение однократно. Или так и должно быть?
IYra
Живу тут
Posts: 712
Joined: 01 Feb 2012 18:36
Location: Санкт-Петербург

Re: Часы на ГРИ ин-14 (Atmega8-168)

Post by IYra »

Denis_K wrote:А вообще нормально что инициализация включена в основной программе? я так понимаю с циклом... а запись - чтение однократно. Или так и должно быть?
Инициализация происходит однократно вначале до цикла while
Оригинал (оставил для наглядности только I2c)

Code: Select all

	/*******************************настройка переферии******************************/
	i2c_init(); // иництализация протокола i2c

	rtc_init(0, 1, 1); // иництализация DS1307

	_delay_ms(100);
	/********************************************************************************/
	
	sei();       // включаем прерывания

	set = 10;

	out[0] = 10; out[1] = 10; out[2] = 0; // ндикация текущего режима отображения при включении
	out[3] = vid+1; out[4] = 10; out[5] = 10;

	_delay_ms(2000);

	set = 0;

	rtc_get_date(&d, &m, &y); //чтение даты для нормальной работы режимов отображения

	while(1){
                             // чтение даты
        }

такой порядок в оригинале и желательно его придерживаться (вплоть до задержек _delay)
Post Reply